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