I past I thought this is a bug of IOQuake3, but during switching between Mesa-Classic and Mesa-Gallium I recognized, that the problem only exists with Mesa-Gallium!
1. $export vblank_mode=0 // switching of vsync
2. Launch an IOQuake3 based game (Quake3 Arena, OpenArena, World of Padman...)
3. check that VSYNC in IOQuake3 is also disabled!
4. Start a game and set "cg_drawpfs 1", know you should have at the top right corner a display with your current framerate which is hopefully over 60 fps
5. switch to a tty during playing (should be no problem with Kernel-Mode-Setting)
6. #pm-suspend (as root)
7. resume from suspend
8. switch back to X11/IOQuake3 -> framerate is limited to 60 fps
To fix this you have to relaunch IOQuake3 or simply type into quake-console "vid_restart".
With Mesa-Classic and the R600-Driver this is not necessary, it displays always the maximum possible framerate.
Maybe Gallium doesn't read or forget the environment-variable export_vblank during resume from suspend?
Created attachment 43710 [details]
output of dmesg
Created attachment 43711 [details]
output of glxinfo
Created attachment 43712 [details]
.config of kernel-2.6.38-rc6
Created attachment 43713 [details]
output of lspci
Created attachment 43714 [details]
output of complete package-list
(In reply to comment #7)
> 5. switch to a tty during playing (should be no problem with
> 6. #pm-suspend (as root)
> 7. resume from suspend
> 8. switch back to X11/IOQuake3 -> framerate is limited to 60 fps
Does the problem also occur if you switch to console and back to X without a suspend/resume cycle in between?
> Maybe Gallium doesn't read or forget the environment-variable export_vblank
> during resume from suspend?
No, the 3D driver is blissfully unaware of the suspend/resume cycle. The problem is more likely in the X server/driver or kernel.
If I only switch between console and X everything keeps fine.
I've tested this in the meantime also with a Intel based grapcis solution (Ironlake), it is not affected. But the Intel driver doesn't need the var vblank_mode for switching vsync off (only SwapbuffersWait). Maybe the setting of the var gets "lost" during suspend cycle?
-- GitLab Migration Automatic Message --
This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.
You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/drm/amd/issues/180.