[OpenJDK 2D-Dev] [9] request for review: 8087201: OGL: rendering of lcd text is slow
Phil Race
philip.race at oracle.com
Wed Jul 8 16:12:31 UTC 2015
I think that is a reasonable compromise. Miminis 8ux risk but let's get
some exposure in 9 ..
So approved.
Still, very interesting what Andrew notes about D3D being so much faster ..
seems like a subject for further study at some point.
-phil.
On 7/8/15 9:02 AM, Sergey Bylokhov wrote:
> HI, Andrew.
> The fix looks fine, but in my opinion we can add this ifdef to jdk8
> fix to skip possible regression, but in jdk9 it is better to avoid
> this ifdef for two reasons:
> - This will increase a coverage of a new code not only on osx but
> also on other platforms and drivers.
> - It should be safe because, OGL is used by default only on osx.
>
> I am fine with any decision, it is up to you and Phil.
>
> On 03.07.15 17:24, Andrew Brygin wrote:
>> Roughly speaking, the rendering of lcd text with d3d pipeline is
>> 10-20 times
>> faster that with ogl:
>> http://cr.openjdk.java.net/~bae/8087201/9/perf/windows/ogl-d3d-hg5700.txt
>>
>> http://cr.openjdk.java.net/~bae/8087201/9/perf/windows/ogl-d3d-nvs5400.txt
>>
>>
>> On windows, the suggested fix gives mixed results. It does not affect
>> the case of
>> rendering to the screen, because in this case destination SD does not
>> have a texture.
>> The effect on rendering to a volatile image depends on
>> hardware/drivers config.
>>
>> * Intel HD graphics
>> There is no NV_texture_barrier extension, so effective parts of
>> the change here is
>> cache separation and the increase of cache celll size. It gives
>> about x4 speedup
>> for big glyphs. All other cases are not affected.
>> http://cr.openjdk.java.net/~bae/8087201/9/perf/windows/intel/hd4000.txt
>>
>> * ATI(AMD)
>> The NV_texture_barrier is available here, and the fix makes the
>> rendering 2-3 times
>> faster:
>> http://cr.openjdk.java.net/~bae/8087201/9/perf/windows/ati/hd5700.txt
>> http://cr.openjdk.java.net/~bae/8087201/9/perf/windows/ati/hd5770.txt
>>
>> * NV
>> here the fix causes significant performance degradation. A reason
>> of this is
>> is not clear to me yet. Probably it is due to significant overhead
>> on synchronization:
>> http://cr.openjdk.java.net/~bae/8087201/9/perf/windows/nv/nvs5400m.txt
>> http://cr.openjdk.java.net/~bae/8087201/9/perf/windows/nv/quadro410.txt
>>
>> So, the fix does not give significant advantage on windows (ogl is
>> still far
>> slower than d3d in lcd text rendering), and even makes thing worse in
>> some
>> cases. On osx (at least on 10.9 - 10.10) the fix helps to increase
>> the rendering
>> speed up to 10 times.
>>
>> Probably we can consider to use this approach for osx only (see
>> OGLTextRenderer.c,
>> lines 1007 - 1029):
>> http://cr.openjdk.java.net/~bae/8087201/9/webrev.01/
>>
>> What do you think?
>>
>> Thanks,
>> Andrew
>>
>>
>>
>>
>>
>> On 6/25/2015 8:08 PM, Phil Race wrote:
>>> On 06/25/2015 03:33 AM, Andrew Brygin wrote:
>>>>
>>>>> Given that it is a unified driver it sounds like we may be want
>>>>> to disable this code path when on windows at least for NV but I
>>>>> guess we
>>>>> may also want to validate that on some other cards - from Nvidia - to
>>>>> see if it is a driver or h/w limitation.
>>>> Probably, we should to run the text benchmarks on relatively big
>>>> set of windows
>>>> machines, and if we see that good performance of
>>>> glCopyTexSubImage() is sooner
>>>> a rule than an exception, then we can just disable the new code
>>>> path on windows.
>>>>
>>>> Wat do you think?
>>>
>>> Yes.
>>>
>>> Also it occurs to me to wonder why we have not had the same
>>> performance complaints
>>> when using D3D on Windows .. different APIs but they have the same
>>> limitation.
>>> It would be interesting to know if objective performance tests on
>>> the same hardware
>>> show that Windows users are more forgiving or it really is not a
>>> problem there ...
>>>
>>> -phil.
>>
>
>
More information about the 2d-dev
mailing list