xf86-video-intel: src/i830_driver.c

Eric Anholt anholt at kemper.freedesktop.org
Tue Mar 25 10:07:03 PDT 2008


 src/i830_driver.c |    9 +++++++++
 1 file changed, 9 insertions(+)

New commits:
commit 8cdbd55f8075cd18b563badde35815665d7d053e
Author: Eric Anholt <eric at anholt.net>
Date:   Tue Mar 25 10:06:14 2008 -0700

    Fix 965+ rendering issues with DRI disabled.
    
    The new chips no longer automatically flush the rendering cache, so if we
    don't flush the RC at blockhandler, the last rendering done may not
    appear on the screen.  This was particularly noticable with a bare Xorg with
    some missing root weave, and terminals where the last character wouldn't
    appear until the cursor blinked.  A flush in the DRI blockhandler path had
    hidden this issue for most people.

diff --git a/src/i830_driver.c b/src/i830_driver.c
index 50d9808..b0bb9da 100644
--- a/src/i830_driver.c
+++ b/src/i830_driver.c
@@ -2387,6 +2387,15 @@ I830BlockHandler(int i,
     pI830->BlockHandler = pScreen->BlockHandler;
     pScreen->BlockHandler = I830BlockHandler;
 
+    /* Emit a flush of the rendering cache, or on the 965 and beyond
+     * rendering results may not hit the framebuffer until significantly
+     * later.  In the direct rendering case this is already done just
+     * after the page flipping updates, so there's no need to duplicate
+     * the effort here.
+     */
+    if (!pI830->noAccel && !pI830->directRenderingEnabled)
+	I830EmitFlush(pScrn);
+
     I830VideoBlockHandler(i, blockData, pTimeout, pReadmask);
 }
 


More information about the xorg-commit mailing list