On Mon, 2006-09-25 at 18:18 -0700, Soup Laddy wrote: > Something I've been worried about: I have an nVidia GeForce FX 5500 > card, and I'd been noticing some extreme tearing in XGL when > rotating/manipulating the cube and moving around windows... a somewhat > of a fix to that was to start XGL with __GL_SYNC_TO_VBLANK=1 ... but > that then reduced performance. Is the tearing problem at all resolved > with Compiz + AIGLX?
Both xgl and aiglx implement indirect GL rendering. Hence all blits and buffer swaps are done on the server side. If you force the driver to sync to vblank (e.g. __GL_SYNC_TO_VBLANK), you usually force the server to block and wait for the vblank. You get horrible performance this way as this leaves the server very little time to process other X requests. I have a patch that makes it possible for xgl to do buffer swaps in a separate thread, hence making sure the main thread that is processing X requests isn't blocked. However, last time I checked, there were no drivers that could handle GL drawing from multiple threads to one drawable properly. nvidia's new driver with GLX_EXT_tfp, support direct rendering. When using this driver with direct rendering all blits and buffer swaps are done on the client side by compiz itself. Blocking and waiting for vblank in compiz will not stop the server from continuing to process X requests so there's no performance impact on the server. The compiz code for doing this is already in head and if you use the new nvidia driver with direct rendering it should be turned on by default. There's a sync_to_vblank option which allow you turn it off. Don't use __GL_SYNC_TO_VBLANK, compiz is using GLX_SGI_video_sync to sync even partial screen updates to vblank. -David _______________________________________________ compiz mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/compiz
