Bug 28097 - Page flipping broken; shows wrong buffer for fullscreen/compiz
Summary: Page flipping broken; shows wrong buffer for fullscreen/compiz
Status: RESOLVED FIXED
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/intel (show other bugs)
Version: git
Hardware: x86-64 (AMD64) All
: medium major
Assignee: Chris Wilson
QA Contact: Xorg Project Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-05-13 22:54 UTC by Brian Rogers
Modified: 2010-05-14 09:33 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments

Description Brian Rogers 2010-05-13 22:54:30 UTC
With the latest DDX on my i965 laptop, Compiz and fullscreen games appear to be showing me the back buffer being rendered to, rather than the front buffer. So I see the frontmost objects (those drawn last) flickering in and out of existence.

If I run 'metacity --replace', then all updates cease, though X is still running. If I connect x11vnc to the session, I can see what is supposed to be displayed on the screen and interact will it fine over VNC.

Reverting this commit fixes the problem:

commit 9f54107f866a25cf670f81f7c52b8c108728c6a5
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Tue May 11 14:55:16 2010 +0100

    dri2: Handle reference counting across page flipping
    
    1. Instead of swapping bos, swap the entire private structure.
    
    2. If we update the pixmap bo for the Screen, make sure we update the
    reference inside intel->front_buffer so that xrandr still functions.
    
    Fixes:
    
      Bug 27922 - i965: Rapidly resizing OpenGL window causes GPU to hang.
      https://bugs.freedesktop.org/show_bug.cgi?id=27922
    
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Comment 1 Chris Wilson 2010-05-14 09:33:12 UTC
commit 030d56279bf14d9ddd42d8fdbeaa66ef3f557b4d
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri May 14 16:53:40 2010 +0100

    drm: don't overwrite the old intel->front_buffer
    
    It's now handled in the common ExchangeBuffers() path.


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.