[Rev 03] RFR: 8088198: Exception thrown from snapshot if dimensions are larger than max texture size

Frederic Thevenet github.com+7450507+fthevenet at openjdk.java.net
Fri Jan 24 16:56:03 UTC 2020


On Fri, 24 Jan 2020 16:34:29 GMT, Nir Lisker <nlisker at openjdk.org> wrote:

>> And here are the results with the change in this PR, on the same machine under Windows 10:
>> 
>> |    | 1024 |2048 |3072 |4096 |5120 |6144 |7168 |8192 |
>> |---|---|---|---|---|---|---|---|---|
>> | 1024 | 6.957774 | 10.461498 | 14.721024 | 19.279638 | 47.508266 | 56.585089 | 64.522117 | 53.448326 |
>> | 2048 | 10.990480 | 19.284461 | 28.235822 | 41.067555 | 92.818088 | 106.782334 | 120.907050 | 112.852554 |
>> | 3072 | 15.642648 | 28.502151 | 59.541998 | 55.663658 | 130.654226 | 149.805330 | 205.212356 | 169.002232 |
>> | 4096 | 19.882252 | 41.287722 | 59.493687 | 73.809264 | 169.212467 | 200.212097 | 247.934609 | 246.412543 |
>> | 5120 | 49.986204 | 97.986781 | 126.127089 | 167.274104 | 217.063815 | 276.812929 | 307.276073 | 366.800463 |
>> | 6144 | 66.546156 | 104.339809 | 150.171765 | 206.282107 | 272.486419 | 321.178983 | 365.822047 | 410.087087 |
>> | 7168 | 66.894654 | 119.510866 | 176.002883 | 248.937222 | 314.721516 | 380.834398 | 430.858648 | 482.499047 |
>> | 8192 | 67.040207 | 112.831977 | 161.852173 | 237.588749 | 319.667719 | 382.151556 | 437.810832 | 451.865266 |
> 
>> Here are the results when running JavaFX 14-ea+7.
>> The columns of the table correspond the width of the target snapshot, while the rows correspond to the height and the content of the cells is the average time* spent (in ms) in `Node::snapshot`
>> (*) each test is ran 10 times and the elapsed time is averaged after pruning outliers, using Grubbs' test.
>> 
>> 1024	2048	3072	4096	5120	6144	7168	8192
>> 1024	6.304272	10.303935	15.052336	35.929304	23.860095	28.828812	35.315288	27.867205
>> 2048	11.544367	21.156326	28.368750	28.887164	47.134738	54.354708	55.480251	56.722649
>> 3072	15.503187	30.215269	41.304645	39.789648	82.255091	82.576379	96.618722	106.586547
>> 4096	20.928336	38.768648	64.255423	52.608217	101.797347	132.516816	158.525192	166.872889
>> 5120	28.693431	67.275306	68.090280	76.208412	133.974510	157.120373	182.329784	210.069066
>> 6144	29.972591	54.751002	88.171906	104.489291	147.788597	185.185643	213.562819	228.643761
>> 7168	33.668398	63.088490	98.756212	130.502678	196.367121	225.166481	239.328794	260.162501
>> 8192	40.961901	87.067460	128.230351	178.127225	198.479068	225.806211	266.170239	325.967840
> 
> Any idea why 4096x1024 and 1024x4096 are so different? Same for 8192x1024 and 1024x8192.

I don't, to be honest. 
The results for some dimensions  (not always the same) can vary pretty widely from one run to another, despite all my effort to repeat results and remove outliers.
Out of curiosity, I also tried to eliminate the GC as possible culprit by running it with epsilon, but it seems to make a significant difference.
I ran that test on a laptop with Integrated Intel graphics and no dedicated vram (Intel UHD Graphics 620), though, so this might be why. 
Maybe someone could try and run the bench on hardware with a discreet GPU?

-------------

PR: https://git.openjdk.java.net/jfx/pull/68


More information about the openjfx-dev mailing list