mesa: Branch 'master' - 2 commits

Roland Scheidegger sroland at kemper.freedesktop.org
Tue Mar 27 14:17:45 UTC 2007


 src/mesa/drivers/dri/r128/r128_lock.c     |    6 ++++--
 src/mesa/drivers/dri/r200/r200_lock.c     |    6 ++++--
 src/mesa/drivers/dri/r300/radeon_lock.c   |    4 ++--
 src/mesa/drivers/dri/radeon/radeon_lock.c |    6 ++++--
 4 files changed, 14 insertions(+), 8 deletions(-)

New commits:
diff-tree 3b8ab881312f36a948913653ed3c471017f811f0 (from 32225d06b9ade78df612b3fd8c3aff93afa3b7ff)
Author: Roland Scheidegger <sroland at tungstengraphics.com>
Date:   Tue Mar 27 16:27:34 2007 +0200

    r300: Fix radeonUpdatePageFlipping() function.
    
    Always call driFlipRenderbuffers() with pfCurrentPage value, in case it's
    initially 1 instead of 0. May fix some issues with pageflip, the same fix was
    applied to r128, radeon and r200 (6e0e6eff05727ac8833c2b2dffc51c6619427e77).

diff --git a/src/mesa/drivers/dri/r300/radeon_lock.c b/src/mesa/drivers/dri/r300/radeon_lock.c
index b331cfa..ec501c3 100644
--- a/src/mesa/drivers/dri/r300/radeon_lock.c
+++ b/src/mesa/drivers/dri/r300/radeon_lock.c
@@ -55,8 +55,8 @@ static void radeonUpdatePageFlipping(rad
 	int use_back;
 
 	radeon->doPageFlip = radeon->sarea->pfState;
-        if (!radeon->doPageFlip && radeon->glCtx->WinSysDrawBuffer) {
-           driFlipRenderbuffers(radeon->glCtx->WinSysDrawBuffer, GL_FALSE);
+        if (radeon->glCtx->WinSysDrawBuffer) {
+           driFlipRenderbuffers(radeon->glCtx->WinSysDrawBuffer, radeon->sarea->pfCurrentPage);
         }
 
 	use_back = (radeon->glCtx->DrawBuffer->_ColorDrawBufferMask[0] == BUFFER_BIT_BACK_LEFT);
diff-tree 32225d06b9ade78df612b3fd8c3aff93afa3b7ff (from a83593922218b3fc88d3e553f8db079b188bd068)
Author: Roland Scheidegger <sroland at tungstengraphics.com>
Date:   Tue Mar 27 16:22:00 2007 +0200

    r128, radeon, r200: Check ctx->WinSysDrawBuffer before calling function that dereferences it.
    
    Same fix as for r300 (which fixed https://bugs.freedesktop.org/show_bug.cgi?id=10417),
    since it's likely an issue with those drivers too.

diff --git a/src/mesa/drivers/dri/r128/r128_lock.c b/src/mesa/drivers/dri/r128/r128_lock.c
index 393dd1e..ea23b00 100644
--- a/src/mesa/drivers/dri/r128/r128_lock.c
+++ b/src/mesa/drivers/dri/r128/r128_lock.c
@@ -52,8 +52,10 @@ static void
 r128UpdatePageFlipping( r128ContextPtr rmesa )
 {
    rmesa->doPageFlip = rmesa->sarea->pfAllowPageFlip;
-   driFlipRenderbuffers(rmesa->glCtx->WinSysDrawBuffer,
-                        rmesa->sarea->pfCurrentPage);
+   if (rmesa->glCtx->WinSysDrawBuffer) {
+      driFlipRenderbuffers(rmesa->glCtx->WinSysDrawBuffer,
+                           rmesa->sarea->pfCurrentPage);
+   }
    rmesa->new_state |= R128_NEW_WINDOW;
 }
 
diff --git a/src/mesa/drivers/dri/r200/r200_lock.c b/src/mesa/drivers/dri/r200/r200_lock.c
index 9ffdb2b..b050dd7 100644
--- a/src/mesa/drivers/dri/r200/r200_lock.c
+++ b/src/mesa/drivers/dri/r200/r200_lock.c
@@ -53,8 +53,10 @@ static void
 r200UpdatePageFlipping( r200ContextPtr rmesa )
 {
    rmesa->doPageFlip = rmesa->sarea->pfState;
-   driFlipRenderbuffers(rmesa->glCtx->WinSysDrawBuffer,
-                        rmesa->sarea->pfCurrentPage);
+   if (rmesa->glCtx->WinSysDrawBuffer) {
+      driFlipRenderbuffers(rmesa->glCtx->WinSysDrawBuffer,
+                           rmesa->sarea->pfCurrentPage);
+   }
 }
 
 
diff --git a/src/mesa/drivers/dri/radeon/radeon_lock.c b/src/mesa/drivers/dri/radeon/radeon_lock.c
index cdf8a19..312041e 100644
--- a/src/mesa/drivers/dri/radeon/radeon_lock.c
+++ b/src/mesa/drivers/dri/radeon/radeon_lock.c
@@ -56,8 +56,10 @@ static void
 radeonUpdatePageFlipping( radeonContextPtr rmesa )
 {
    rmesa->doPageFlip = rmesa->sarea->pfState;
-   driFlipRenderbuffers(rmesa->glCtx->WinSysDrawBuffer,
-                        rmesa->sarea->pfCurrentPage);
+   if (rmesa->glCtx->WinSysDrawBuffer) {
+      driFlipRenderbuffers(rmesa->glCtx->WinSysDrawBuffer,
+                           rmesa->sarea->pfCurrentPage);
+   }
 }
 
 



More information about the mesa-commit mailing list