OK, I've spent hours testing various options. The bug is much harder to reproduce in Ubuntu 12.10 because the default rendering method in Compiz 0.9.8 is the same as the workaround (1) listed at the top of the bug. To reproduce the bug I had to force the rendering method that Compiz 0.9.7 uses:
CCSM > OpenGL >
Framebuffer object = OFF
Vertex buffer object = OFF
Always use buffer swapping = OFF
Then I could reproduce the bug. And this time I noticed that glXWaitVideoSyncSGI is not returning. The spin is happening below glXWaitVideoSyncSGI, but above uki_firegl_WaitVBlank (which returns constantly). And because glXWaitVideoSyncSGI is never returning it means we have little hope of even working around the bug in compiz. It's happening 100% inside the fglrx driver, out of reach of compiz.
Interestingly even with the native compiz 0.9.8 rendering method I could reproduce a similar spin in the glxgears process (not compiz). So again, the problem applies to any OpenGL application.
If neither of the workarounds listed at the top of the bug work for you, then please consider uninstalling fglrx and using the default radeon driver instead. And if you haven't already, then upgrading to Ubuntu 12.10 might help, but you don't really need to because that's equivalent to the workaround at the top of the bug.
Finally, I have contacted AMD directly and asked them to review the bug because even their copy has not been touched since it was logged 5 months ago: http://ati.cchtml.com/show_bug.cgi?id=535
OK, I've spent hours testing various options. The bug is much harder to reproduce in Ubuntu 12.10 because the default rendering method in Compiz 0.9.8 is the same as the workaround (1) listed at the top of the bug. To reproduce the bug I had to force the rendering method that Compiz 0.9.7 uses:
CCSM > OpenGL >
Framebuffer object = OFF
Vertex buffer object = OFF
Always use buffer swapping = OFF
Then I could reproduce the bug. And this time I noticed that glXWaitVideoSyncSGI is not returning. The spin is happening below glXWaitVideoSyn cSGI, but above uki_firegl_ WaitVBlank (which returns constantly). And because glXWaitVideoSyncSGI is never returning it means we have little hope of even working around the bug in compiz. It's happening 100% inside the fglrx driver, out of reach of compiz.
Interestingly even with the native compiz 0.9.8 rendering method I could reproduce a similar spin in the glxgears process (not compiz). So again, the problem applies to any OpenGL application.
If neither of the workarounds listed at the top of the bug work for you, then please consider uninstalling fglrx and using the default radeon driver instead. And if you haven't already, then upgrading to Ubuntu 12.10 might help, but you don't really need to because that's equivalent to the workaround at the top of the bug.
Finally, I have contacted AMD directly and asked them to review the bug because even their copy has not been touched since it was logged 5 months ago: http:// ati.cchtml. com/show_ bug.cgi? id=535