The Troubleshooting Java2D section in the desktop guide has
  some information on how to find out if your images are being
  cached:
    http://java.sun.com/javase/6/webnotes/trouble/TSG-Desktop/html/index.html

  Dmitri


Dmitri Trembovetski wrote:


jav...@javadesktop.org wrote:
<p>When running a Java application and routing the output to another display using X Windows, I see a trade-off between performance (frame rate) and horizontal image tearing. To remove the complexities of my application from the issue, I'll use the <a href=http://java.sun.com/products/java-media/2D/samples/java2demo/Java2Demo.html>Java 2D Demo</a> as my example. </p>

  Note that Java2Demo is not a good sample case as it uses most of
  2d operations


<p>When I set the DISPLAY environment variable to another machine on my gigabit network and launch the Java2D Demo, the performance is fairly slow. Going to the Transforms tab and enlarging the lower panel - demos.Transforms.TransformAnim - for example, shows a fairly slow animation. Running again with <a href=http://java.sun.com/javase/6/docs/technotes/guides/2d/flags.html>off-screen pixmaps disabled</a> (-Dsun.java2d.pmoffscreen=false) results in a significant performance boost, with the unpleasant side effect of horizontal tearing.</p>

<p>I realize I may be asking to have my cake and eat it too, but is there any way to get the best of both worlds here? Or, if not the same performance without tearing, is there any middle ground? Any fancy alternatives I could try to reduce tearing without the performance hit seen when pixmaps are enabled. My app makes heavy use of moving images and the tearing seen without pixmaps renders it almost unusable, while the performance hit when using pixmaps makes a remote solution definitely unusable.</p>
[Message sent by forum member 'javajason83' (javajason83)]

  Usually image-heavy applications would benefit from using X11 pixmaps for
offscreen rendering since at least 1-bit transparent and opaque images can be cached
  in pixmaps, and rendering to swing's back-buffer uses X11
  rendering primitives whenever possible.

  What kills performance over remote X is operations which require
  readbacks from the Pixmap (like antialiasing, alpha compositing,
  transforms, gradients).

  You can change your application to behave better in remote X case.
  Make sure that you use only 1-bit transparent and opaque images,
  and minimize the use of AA and AC if possible. Cache rendering in
  images. If you do cache images, don't touch them on every frame
  (or they'll never get cached).

Until we have an accelerated rendering pipeline using xrender, for example,
  that would be the only approach.

  Thanks,
    Dmitri



http://forums.java.net/jive/thread.jspa?messageID=321294

=========================================================================== To unsubscribe, send email to lists...@java.sun.com and include in the body of the message "signoff JAVA2D-INTEREST". For general help, send email to
lists...@java.sun.com and include in the body of the message "help".

===========================================================================
To unsubscribe, send email to lists...@java.sun.com and include in the body
of the message "signoff JAVA2D-INTEREST".  For general help, send email to
lists...@java.sun.com and include in the body of the message "help".

Reply via email to