JDK-8059944 : [OGL] Metrics for a method choice copying of texture should be improved
Type:Bug
Component:client-libs
Priority:P3
Status:Resolved
Resolution:Fixed
OS:os_x
CPU:generic
Submitted:2014-10-08
Updated:2015-06-04
Resolved:2014-11-28
The Version table provides details related to the release that this issue/RFE will be addressed.
Unresolved : Release in which this issue/RFE will be addressed. Resolved: Release in which this issue/RFE has been resolved. Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.
See http://mail.openjdk.java.net/pipermail/2d-dev/2014-October/004873.html
Looks like blit via texture almost always faster in case of intel hd on osx + retina.
The difference is 30% in swingmark-native.
Comments
This fix initially was sent as a fix for JDK-8029253 [1], but was postponed because another issue became a bottleneck [2]
Description:
We have two codepaths to draw a raster to the opengl surface:
- via glDrawPixels
- via intermediate texture.
We empirically checked, what way is better, based on benchmarks. Became
obvious that on intel devices the glDrawPixels is slower than intermediate texture.
Bug: https://bugs.openjdk.java.net/browse/JDK-8059944
Webrev can be found at: http://cr.openjdk.java.net/~serb/8059944/webrev.00
[1] http://mail.openjdk.java.net/pipermail/2d-dev/2014-June/004642.html
[2] http://mail.openjdk.java.net/pipermail/2d-dev/2014-October/004870.html
SwingMark on OSX 10.9.5, macbook pro retina, Intel HD Graphics 4000:
Base: http://cr.openjdk.java.net/~serb/8059944/perf/swingmark/base
Will run test 5 times in the same VM
Setting L&F to: com.apple.laf.AquaLookAndFeel
......
Score: 54629
Fix: http://cr.openjdk.java.net/~serb/8059944/perf/swingmark/fix
Will run test 5 times in the same VM
Setting L&F to: com.apple.laf.AquaLookAndFeel
......
Score: 35296
J2DBench: Note that results are better on a newer devices and the fix is usually lose when 1x1 image is used
=======================================================================
Windows 7 x64, lenovo T410, Intel 3200
http://cr.openjdk.java.net/~serb/8059944/perf/win_intel_hg3200/results_ogl.txt
Comparison to basis:
Best result: 177.62% of basis
Worst result: 53.73% of basis
Number of wins: 618
Number of ties: 238
Number of losses: 296
=======================================================================
OSX 10.9.5, macbook pro retina, Intel HD Graphics 4000
http://cr.openjdk.java.net/~serb/8059944/perf/osx_intel_hd4000/results.txt
Comparison to basis:
Best result: 22151.35% of basis
Worst result: 50.28% of basis
Number of wins: 880
Number of ties: 168
Number of losses: 104
=======================================================================
OSX 10.9.5, macbook pro retina, Intel Iris (HD 5100)
http://cr.openjdk.java.net/~serb/8059944/perf/osx_intel_hd5100/results.txt
Comparison to basis:
Best result: 25422.21% of basis
Worst result: 37.94% of basis
Number of wins: 863
Number of ties: 193
Number of losses: 96