glXWaitVideoSyncSGI() function freezes at resolution change
Submitted by alanw
Assigned to mes..@..op.org
I am testing some recent Intel platforms like Ironlake and Sandy Bridge. With the multiplatform XBMC Media Center software i realized a bug probably in mesa drivers.
The movie player adjusts the refresh rate of the resolution while watching a movie to match the film fps the best. The problem is that if we use this function the program hangs. It doesn't not hang when i don't change refresh rate or i don't have vblank syncronization on. This refresh rate change function perfectly works with Nvidia hardware and drivers. Also it works with Intel hw but the windows build of this software.
Consulting with the developers and using gdb debugging we found out that the reason of the hang is that the call glXWaitVideoSyncSGI() hangs in case there is a resolution change happened.
There is another scenario when this function fails. When i am in GUI menu and checking the actual framerate (with vblank on) it shows the good framerate, until i start changing to the virtual terminals with ctrl+f2 and than back to Xorg screen. If the refresh rate of KMS differs from the refresh rate i set in xorg.conf, strangely the framerate starts going up maxed at ca. 120. Just like if i turn on sync to vblank completely. So i loose vblank sync again.
It would be really good to fix this, so that a lot of Media Center users can have a full experience with mesa and Intel hardware.
Ubuntu Natty, Kernel 2.6.38