[OpenJDK 2D-Dev] JDK-8068529 XSync when xrender is turned off
Clemens Eisserer
linuxhippy at gmail.com
Thu Jan 22 23:18:53 UTC 2015
Hi Jeroen,
I'm the submitter of JDK-8068529
> <https://bugs.openjdk.java.net/browse/JDK-8068529> and I'd like to
> respond to the comments of this bug
>
Thanks for reporting this issue.
> In reply to the comments of 2015-01-12: without xrender, XSync is indeed
> called in X11SurfaceData.c, in function X11SD_GetSharedImage. If you change
> the code to include a counter and a printf/fflush statement, you can see
> that XSync is called each time the Java-method paint() is called.
> This XSync call causes each paint to be displayed on the screen.
>
Great that you were able to find the spot where the sync happens, thanks!
It seems it is what I suspected, an implementation artifact.
However at least on my system I don't get a completly smooth animation even
with the X11 pipeline - although it is a lot better than with the xrender
pipeline.
The D3D & OpenGL pipelines have some code to work around the issue by
performing a sync for blits which are equal to the blits of Swing's
backbuffer operations.
However, I am not very satisfied with the D3d/OpenGL way.
X is a network based system where sync/flush-operations are quite expensive
and it would actually slow down every direct blit to screen.
My plan was to introduce flush-points in AWT to get the content on screen
where appropriate instead of guessing in the pipeline which operations
could be backbuffer blits. However I am not even sure this is feasable, so
it will take some time for to figure out a sane way.
Best regards and thanks for your investigations, Clemens
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/2d-dev/attachments/20150123/fc58fc47/attachment.html>
More information about the 2d-dev
mailing list