Created attachment 21287 [details] [review]
Patch to glxgears that adds a teartest.
While one opengl window, rendering less than the capacity of the graphics hardware, is synchronised to the vertical refresh, once two windows or more are opened, tearing is apparent at the top of the window, especially if it is placed near the top of the screen.
While the mesa demo program glsync may be used to investigate this problem, it doesn't quite highlight it enough because glsync creates too low a graphics load. I have attached a patch to glxgears that causes alternating vertical sidebars to be drawn, if a "-teartest" option is set. So running the following commands together with a patched glxgears:
$ glxgears -geometry 600x600+0+0 -teartest > /dev/null 2>&1 &
$ glxgears -geometry 600x600+600+0 -teartest > /dev/null 2>&1 &
will usually demonstrate the problem. (The graphics must load the system enough so that the rendering of one of the windows exceeds the vertical blank time, the time that no display occurs.)
This has been observed on ICH7 and ICH9 with pci ids 8086:2a42 and 8086:27a6, with the latest tip (as of 18 December 2008)
This used to work via the DRM_I915_VBLANK_SWAP ioctl.
Freedesktop's Bugzilla instance is EOLed and open bugs are about to be migrated to http://gitlab.freedesktop.org.
To avoid migrating out of date bugs, I am now closing all the bugs that did not see any activity in the past year. If the issue is still happening, please create a new bug in the relevant project at https://gitlab.freedesktop.org/drm (use misc by default).
Sorry about the noise!