This is still an issue in Ubuntu 11.04 and 11.10beta2.
Since I have uploaded fixes to the relevant compiz code recently, I have two suggestions that might fix this for compiz:
1. Switch GLX contexts at the right time. It seems like compiz is still in the context of screen 0 when it's doing the wait for sync on screen N>0. I got this idea from the official docs: http://www.opengl.org/registry/specs/SGI/video_sync.txt
I have *partially* implemented #2 in compiz as part of the fix for bug 763005 already. However we won't be able to remove the Vsync waiting logic until/unless the compiz opengl plugin is changed to use glXSwapBuffers for every single frame. Presently compiz only calls glXSwapBuffers occasionally, so SGI_GLX_swap_control can't yet be used for all frames.
This is still an issue in Ubuntu 11.04 and 11.10beta2.
Since I have uploaded fixes to the relevant compiz code recently, I have two suggestions that might fix this for compiz:
1. Switch GLX contexts at the right time. It seems like compiz is still in the context of screen 0 when it's doing the wait for sync on screen N>0. I got this idea from the official docs: http:// www.opengl. org/registry/ specs/SGI/ video_sync. txt
2. Remove the old-fashioned Vsync waiting calls from compiz and use SGI_GLX_ swap_control for everything: www.opengl. org/wiki/ Swap_Interval www.opengl. org/registry/ specs/SGI/ swap_control. txt
http://
http://
I have *partially* implemented #2 in compiz as part of the fix for bug 763005 already. However we won't be able to remove the Vsync waiting logic until/unless the compiz opengl plugin is changed to use glXSwapBuffers for every single frame. Presently compiz only calls glXSwapBuffers occasionally, so SGI_GLX_ swap_control can't yet be used for all frames.