With the 310.19 drivers, I notice that CPU usage goes upto 100% even when I sync to vblank (for things as simple as glxgears). But if I set the __GL_YIELD to USLEEP, things are back to normal.
From the below naive experiments.
- __GL_SYNC_TO_VBLANK=1 __GL_YIELD= glxgears
- __GL_SYNC_TO_VBLANK=1 __GL_YIELD=USLEEP glxgears
- __GL_SYNC_TO_VBLANK=0 __GL_YIELD= glxgears
- __GL_SYNC_TO_VBLANK=0 __GL_YIELD=USLEEP glxgears
In pption 1 CPU usage is high (100%), 2 uses acceptable CPU cycles (~10 %), 3 gives me high FPS, and 4 gives me low FPS. It appears, using USLEEP, even though solve the high cpu usage problem, it affects rendering (low FPS).
Any idea what could be causing this? I am basically trying to leave the __GL_YIELD option to default and get a decent performance when sync to vblank is set.
FYI: I am running OpenSuSE 12.1 (32 bit), Quadro FX 1800.