<AWT Dev> [OpenJDK 2D-Dev] [9] Review Request: 8041129 and 8017626
Sergey Bylokhov
Sergey.Bylokhov at oracle.com
Fri May 30 08:10:00 UTC 2014
added @awt-dev
On 16.05.2014 19:33, Sergey Bylokhov wrote:
> Hello.
> Any volunteers? This change is targeted to 8u20, so I would like to
> push it to jdk9/8 as soon as possible and to catch a possible
> regressions.
>
> On 5/13/14 5:00 AM, Sergey Bylokhov wrote:
>> Hello.
>> Please review the fix for jdk 9. This a second iteration of the fix
>> for 8041129, because it was changed to cover 8017626 as well.
>>
>> Description of the problem:
>> 8041129: [OGL] surface->sw blit is extremely slow
>> - The problem is in the glReadPixels(), which is really slow and we
>> call it very often for each image to make a flip.
>> Solution:
>> - We call glReadPixels() only once and then flip is done using
>> memcpy after the whole image was moved from gpu to the memory.
>> - glPixelStorei were added/removed when necessary.
>> - Note: actually on my mac the slow path and the fast path(memcpy)
>> works in the same time. I left it as is, because on other system it
>> can be faster.
>>
>> 8017626: [OGL] Translucent VolatileImages don't paint correctly
>> - The problem is in OGLSurfaceToSwBlit. It was implemented with
>> assumption that the source(ogl) surface contain argb color format,
>> this is wrong because it use premultiplied alpha.
>> Solution:
>> - The new ogl blit was added to cover the old behavior
>> OGLSurfaceToSwBlit(SurfaceType.IntArgbPre,OGLSurfaceData.PF_INT_ARGB_PRE),
>> - The blit was changed to properly restore the color components if
>> the source is transparent and destination does not use premultiplied
>> alpha.
>>
>> Bugs:
>> https://bugs.openjdk.java.net/browse/JDK-8041129
>> https://bugs.openjdk.java.net/browse/JDK-8017626
>> Webrev can be found at:
>> http://cr.openjdk.java.net/~serb/8041129/webrev.10
>>
>> Benchmarks:
>> Note that each benchmark was executed 3 times(25 seconds each) to be
>> protected from such spread:
>> D3D-base-nvidia-windows: 61796.32109 (var=308.77%) (5857.64%)
>> |*************
>> |*********************************************************
>> |**************************************************
>> So check the full report for additional information, since the spread
>> for most of the test is small.
>>
>> ==========================================================
>> Windows 7 x64, lenovo T410, nvidia NVS 3100M
>> http://cr.openjdk.java.net/~serb/8041129/webrev.10/benchmarks/results_win.txt
>>
>> Summary:
>> OGL-base-nvidia-windows:
>> Number of tests: 40
>> Overall average: 1538.6158105111376
>> Best spread: 0.26% variance
>> Worst spread: 51.66% variance
>> (Basis for results comparison)
>>
>> D3D-base-nvidia-windows:
>> Number of tests: 40
>> Overall average: 25477.2292224911
>> Best spread: 0.03% variance
>> Worst spread: 308.77% variance
>> Comparison to basis:
>> Best result: 11192.65% of basis
>> Worst result: 9.13% of basis
>> Number of wins: 28
>> Number of ties: 0
>> Number of losses: 12
>>
>> OGL-fix-nvidia-windows:
>> Number of tests: 40
>> Overall average: 125053.84134106003
>> Best spread: 0.08% variance
>> Worst spread: 11.96% variance
>> Comparison to basis:
>> Best result: 12631.78% of basis
>> Worst result: 84.45% of basis
>> Number of wins: 33
>> Number of ties: 6
>> Number of losses: 1
>> ==========================================================
>> OSX 10.8.5, macbook pro retina, nvidia GeForce GT 650M 1024 MB
>> http://cr.openjdk.java.net/~serb/8041129/webrev.10/benchmarks/results_osx_nvidia.txt
>>
>> Summary:
>> OGL-base-nvidia-osx:
>> Number of tests: 20
>> Overall average: 714.8688065382015
>> Best spread: 0.16% variance
>> Worst spread: 2.12% variance
>> (Basis for results comparison)
>>
>> OGL-fix-nvidia-osx:
>> Number of tests: 20
>> Overall average: 10497.046970040716
>> Best spread: 0.11% variance
>> Worst spread: 5.55% variance
>> Comparison to basis:
>> Best result: 4479.08% of basis
>> Worst result: 172.49% of basis
>> Number of wins: 20
>> Number of ties: 0
>> Number of losses: 0
>> ==========================================================
>> OSX 10.8.5, macbook pro retina, Intel HD Graphics 4000
>> http://cr.openjdk.java.net/~serb/8041129/webrev.10/benchmarks/results_osx_intel.txt
>>
>> Summary:
>> OGL-base-intel-osx:
>> Number of tests: 20
>> Overall average: 3912.1181498636274
>> Best spread: 0.25% variance
>> Worst spread: 22.52% variance
>> (Basis for results comparison)
>>
>> OGL-fix-intel-osx:
>> Number of tests: 20
>> Overall average: 9647.033915964947
>> Best spread: 0.2% variance
>> Worst spread: 23.32% variance
>> Comparison to basis:
>> Best result: 457.06% of basis
>> Worst result: 104.3% of basis
>> Number of wins: 20
>> Number of ties: 0
>> Number of losses: 0
>>
>
>
--
Best regards, Sergey.
More information about the awt-dev
mailing list