From 28881f2428e7718dc789f3cc2b8709a2d2f9895f Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Mon, 9 Jul 2007 18:59:27 +0000 Subject: [PATCH] - mesa-6.5.2-radeon-backports-231787.patch: One more fix for r300. (#231787) --- mesa-6.5.2-radeon-backports-231787.patch | 197 ++++++++++++----------- mesa.spec | 5 +- 2 files changed, 111 insertions(+), 91 deletions(-) diff --git a/mesa-6.5.2-radeon-backports-231787.patch b/mesa-6.5.2-radeon-backports-231787.patch index 0f836aa..87d22b8 100644 --- a/mesa-6.5.2-radeon-backports-231787.patch +++ b/mesa-6.5.2-radeon-backports-231787.patch @@ -1,76 +1,7 @@ ---- Mesa-6.5.2/src/mesa/main/texstore.c.radeon-231787 2006-11-02 17:57:11.000000000 -0500 -+++ Mesa-6.5.2/src/mesa/main/texstore.c 2007-04-10 14:52:22.000000000 -0400 -@@ -808,7 +808,8 @@ - - /* _mesa_printf("map %d %d %d %d\n", map[0], map[1], map[2], map[3]); */ - -- if (srcRowStride == srcWidth * srcComponents && -+ if (srcRowStride == dstRowStride && -+ srcRowStride == srcWidth * srcComponents && - dimensions < 3) { - /* 1 and 2D images only */ - GLubyte *dstImage = (GLubyte *) dstAddr ---- Mesa-6.5.2/src/mesa/drivers/dri/r200/r200_lock.c.radeon-231787 2006-11-15 14:54:40.000000000 -0500 -+++ Mesa-6.5.2/src/mesa/drivers/dri/r200/r200_lock.c 2007-04-10 14:51:44.000000000 -0400 -@@ -98,7 +98,6 @@ - r200SetCliprects( rmesa, GL_FRONT_LEFT ); - r200UpdateViewportOffset( rmesa->glCtx ); - driUpdateFramebufferSize(rmesa->glCtx, drawable); -- rmesa->lastStamp = drawable->lastStamp; - } - - R200_STATECHANGE( rmesa, ctx ); ---- Mesa-6.5.2/src/mesa/drivers/dri/r200/r200_state.c.radeon-231787 2006-11-15 14:54:40.000000000 -0500 -+++ Mesa-6.5.2/src/mesa/drivers/dri/r200/r200_state.c 2007-04-10 14:51:44.000000000 -0400 -@@ -1890,6 +1890,8 @@ - - if (rmesa->state.scissor.enabled) - r200RecalcScissorRects( rmesa ); -+ -+ rmesa->lastStamp = drawable->lastStamp; - } - - ---- Mesa-6.5.2/src/mesa/drivers/dri/r200/r200_context.c.radeon-231787 2007-04-10 14:50:43.000000000 -0400 -+++ Mesa-6.5.2/src/mesa/drivers/dri/r200/r200_context.c 2007-04-10 14:51:44.000000000 -0400 -@@ -694,11 +694,13 @@ - &newCtx->vbl_seq ); - } - -+ newCtx->dri.readable = driReadPriv; -+ - if ( newCtx->dri.drawable != driDrawPriv || -- newCtx->dri.readable != driReadPriv ) { -+ newCtx->lastStamp != driDrawPriv->lastStamp ) { - newCtx->dri.drawable = driDrawPriv; -- newCtx->dri.readable = driReadPriv; - -+ r200SetCliprects(newCtx, GL_BACK_LEFT); - r200UpdateWindow( newCtx->glCtx ); - r200UpdateViewportOffset( newCtx->glCtx ); - } ---- Mesa-6.5.2/src/mesa/drivers/dri/r300/radeon_context.c.radeon-231787 2006-11-15 09:55:48.000000000 -0500 -+++ Mesa-6.5.2/src/mesa/drivers/dri/r300/radeon_context.c 2007-04-10 14:52:07.000000000 -0400 -@@ -51,6 +51,7 @@ - #include "radeon_macros.h" - #include "radeon_reg.h" - -+#include "radeon_state.h" - #include "r300_state.h" - - #include "utils.h" -@@ -279,6 +280,8 @@ - - r300UpdateWindow(radeon->glCtx); - r300UpdateViewportOffset(radeon->glCtx); -+ -+ radeonSetCliprects(radeon); - } - - _mesa_make_current(radeon->glCtx, +diff -up Mesa-6.5.2/src/mesa/drivers/dri/r300/radeon_state.c.radeon-231787 Mesa-6.5.2/src/mesa/drivers/dri/r300/radeon_state.c --- Mesa-6.5.2/src/mesa/drivers/dri/r300/radeon_state.c.radeon-231787 2006-11-15 09:55:48.000000000 -0500 -+++ Mesa-6.5.2/src/mesa/drivers/dri/r300/radeon_state.c 2007-04-10 14:52:07.000000000 -0400 -@@ -185,6 +185,8 @@ ++++ Mesa-6.5.2/src/mesa/drivers/dri/r300/radeon_state.c 2007-07-09 14:35:28.000000000 -0400 +@@ -185,6 +185,8 @@ void radeonSetCliprects(radeonContextPtr if (radeon->state.scissor.enabled) radeonRecalcScissorRects(radeon); @@ -79,9 +10,37 @@ } +diff -up Mesa-6.5.2/src/mesa/drivers/dri/r300/radeon_context.c.radeon-231787 Mesa-6.5.2/src/mesa/drivers/dri/r300/radeon_context.c +--- Mesa-6.5.2/src/mesa/drivers/dri/r300/radeon_context.c.radeon-231787 2006-11-15 09:55:48.000000000 -0500 ++++ Mesa-6.5.2/src/mesa/drivers/dri/r300/radeon_context.c 2007-07-09 14:37:08.000000000 -0400 +@@ -51,6 +51,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DE + #include "radeon_macros.h" + #include "radeon_reg.h" + ++#include "radeon_state.h" + #include "r300_state.h" + + #include "utils.h" +@@ -272,11 +273,13 @@ GLboolean radeonMakeCurrent(__DRIcontext + &radeon->vbl_seq); + } + ++ radeon->dri.readable = driReadPriv; ++ + if (radeon->dri.drawable != driDrawPriv || +- radeon->dri.readable != driReadPriv) { ++ radeon->lastStamp != driDrawPriv->lastStamp) { + radeon->dri.drawable = driDrawPriv; +- radeon->dri.readable = driReadPriv; + ++ radeonSetCliprects(radeon); + r300UpdateWindow(radeon->glCtx); + r300UpdateViewportOffset(radeon->glCtx); + } +diff -up Mesa-6.5.2/src/mesa/drivers/dri/r300/radeon_lock.c.radeon-231787 Mesa-6.5.2/src/mesa/drivers/dri/r300/radeon_lock.c --- Mesa-6.5.2/src/mesa/drivers/dri/r300/radeon_lock.c.radeon-231787 2006-11-01 13:52:11.000000000 -0500 -+++ Mesa-6.5.2/src/mesa/drivers/dri/r300/radeon_lock.c 2007-04-10 14:52:07.000000000 -0400 -@@ -90,7 +90,6 @@ ++++ Mesa-6.5.2/src/mesa/drivers/dri/r300/radeon_lock.c 2007-07-09 14:35:28.000000000 -0400 +@@ -90,7 +90,6 @@ static void r300RegainedLock(radeonConte #else radeonUpdateScissor(radeon->glCtx); #endif @@ -89,9 +48,22 @@ } if (sarea->ctx_owner != radeon->dri.hwContext) { ---- Mesa-6.5.2/src/mesa/drivers/dri/radeon/radeon_context.c.radeon-231787 2007-04-10 14:50:43.000000000 -0400 -+++ Mesa-6.5.2/src/mesa/drivers/dri/radeon/radeon_context.c 2007-04-10 14:51:44.000000000 -0400 -@@ -615,12 +615,14 @@ +diff -up Mesa-6.5.2/src/mesa/drivers/dri/radeon/radeon_state.c.radeon-231787 Mesa-6.5.2/src/mesa/drivers/dri/radeon/radeon_state.c +--- Mesa-6.5.2/src/mesa/drivers/dri/radeon/radeon_state.c.radeon-231787 2006-11-01 13:52:11.000000000 -0500 ++++ Mesa-6.5.2/src/mesa/drivers/dri/radeon/radeon_state.c 2007-07-09 14:35:28.000000000 -0400 +@@ -1676,6 +1676,8 @@ void radeonSetCliprects( radeonContextPt + + if (rmesa->state.scissor.enabled) + radeonRecalcScissorRects( rmesa ); ++ ++ rmesa->lastStamp = drawable->lastStamp; + } + + +diff -up Mesa-6.5.2/src/mesa/drivers/dri/radeon/radeon_context.c.radeon-231787 Mesa-6.5.2/src/mesa/drivers/dri/radeon/radeon_context.c +--- Mesa-6.5.2/src/mesa/drivers/dri/radeon/radeon_context.c.radeon-231787 2007-07-09 14:35:28.000000000 -0400 ++++ Mesa-6.5.2/src/mesa/drivers/dri/radeon/radeon_context.c 2007-07-09 14:35:28.000000000 -0400 +@@ -615,12 +615,14 @@ radeonMakeCurrent( __DRIcontextPrivate * driDrawableInitVBlank( driDrawPriv, newCtx->vblank_flags, &newCtx->vbl_seq ); } @@ -110,20 +82,10 @@ radeonUpdateWindow( newCtx->glCtx ); radeonUpdateViewportOffset( newCtx->glCtx ); } ---- Mesa-6.5.2/src/mesa/drivers/dri/radeon/radeon_state.c.radeon-231787 2006-11-01 13:52:11.000000000 -0500 -+++ Mesa-6.5.2/src/mesa/drivers/dri/radeon/radeon_state.c 2007-04-10 14:51:44.000000000 -0400 -@@ -1676,6 +1676,8 @@ - - if (rmesa->state.scissor.enabled) - radeonRecalcScissorRects( rmesa ); -+ -+ rmesa->lastStamp = drawable->lastStamp; - } - - +diff -up Mesa-6.5.2/src/mesa/drivers/dri/radeon/radeon_lock.c.radeon-231787 Mesa-6.5.2/src/mesa/drivers/dri/radeon/radeon_lock.c --- Mesa-6.5.2/src/mesa/drivers/dri/radeon/radeon_lock.c.radeon-231787 2006-10-19 10:32:06.000000000 -0400 -+++ Mesa-6.5.2/src/mesa/drivers/dri/radeon/radeon_lock.c 2007-04-10 14:51:44.000000000 -0400 -@@ -96,7 +96,6 @@ ++++ Mesa-6.5.2/src/mesa/drivers/dri/radeon/radeon_lock.c 2007-07-09 14:35:28.000000000 -0400 +@@ -96,7 +96,6 @@ void radeonGetLock( radeonContextPtr rme radeonSetCliprects( rmesa ); radeonUpdateViewportOffset( rmesa->glCtx ); driUpdateFramebufferSize(rmesa->glCtx, drawable); @@ -131,3 +93,58 @@ } RADEON_STATECHANGE( rmesa, ctx ); +diff -up Mesa-6.5.2/src/mesa/drivers/dri/r200/r200_state.c.radeon-231787 Mesa-6.5.2/src/mesa/drivers/dri/r200/r200_state.c +--- Mesa-6.5.2/src/mesa/drivers/dri/r200/r200_state.c.radeon-231787 2006-11-15 14:54:40.000000000 -0500 ++++ Mesa-6.5.2/src/mesa/drivers/dri/r200/r200_state.c 2007-07-09 14:35:28.000000000 -0400 +@@ -1890,6 +1890,8 @@ void r200SetCliprects( r200ContextPtr rm + + if (rmesa->state.scissor.enabled) + r200RecalcScissorRects( rmesa ); ++ ++ rmesa->lastStamp = drawable->lastStamp; + } + + +diff -up Mesa-6.5.2/src/mesa/drivers/dri/r200/r200_context.c.radeon-231787 Mesa-6.5.2/src/mesa/drivers/dri/r200/r200_context.c +--- Mesa-6.5.2/src/mesa/drivers/dri/r200/r200_context.c.radeon-231787 2007-07-09 14:35:28.000000000 -0400 ++++ Mesa-6.5.2/src/mesa/drivers/dri/r200/r200_context.c 2007-07-09 14:35:28.000000000 -0400 +@@ -694,11 +694,13 @@ r200MakeCurrent( __DRIcontextPrivate *dr + &newCtx->vbl_seq ); + } + ++ newCtx->dri.readable = driReadPriv; ++ + if ( newCtx->dri.drawable != driDrawPriv || +- newCtx->dri.readable != driReadPriv ) { ++ newCtx->lastStamp != driDrawPriv->lastStamp ) { + newCtx->dri.drawable = driDrawPriv; +- newCtx->dri.readable = driReadPriv; + ++ r200SetCliprects(newCtx, GL_BACK_LEFT); + r200UpdateWindow( newCtx->glCtx ); + r200UpdateViewportOffset( newCtx->glCtx ); + } +diff -up Mesa-6.5.2/src/mesa/drivers/dri/r200/r200_lock.c.radeon-231787 Mesa-6.5.2/src/mesa/drivers/dri/r200/r200_lock.c +--- Mesa-6.5.2/src/mesa/drivers/dri/r200/r200_lock.c.radeon-231787 2006-11-15 14:54:40.000000000 -0500 ++++ Mesa-6.5.2/src/mesa/drivers/dri/r200/r200_lock.c 2007-07-09 14:35:28.000000000 -0400 +@@ -98,7 +98,6 @@ void r200GetLock( r200ContextPtr rmesa, + r200SetCliprects( rmesa, GL_FRONT_LEFT ); + r200UpdateViewportOffset( rmesa->glCtx ); + driUpdateFramebufferSize(rmesa->glCtx, drawable); +- rmesa->lastStamp = drawable->lastStamp; + } + + R200_STATECHANGE( rmesa, ctx ); +diff -up Mesa-6.5.2/src/mesa/main/texstore.c.radeon-231787 Mesa-6.5.2/src/mesa/main/texstore.c +--- Mesa-6.5.2/src/mesa/main/texstore.c.radeon-231787 2006-11-02 17:57:11.000000000 -0500 ++++ Mesa-6.5.2/src/mesa/main/texstore.c 2007-07-09 14:35:28.000000000 -0400 +@@ -808,7 +808,8 @@ _mesa_swizzle_ubyte_image(GLcontext *ctx + + /* _mesa_printf("map %d %d %d %d\n", map[0], map[1], map[2], map[3]); */ + +- if (srcRowStride == srcWidth * srcComponents && ++ if (srcRowStride == dstRowStride && ++ srcRowStride == srcWidth * srcComponents && + dimensions < 3) { + /* 1 and 2D images only */ + GLubyte *dstImage = (GLubyte *) dstAddr diff --git a/mesa.spec b/mesa.spec index 96b5009..44eb8bd 100644 --- a/mesa.spec +++ b/mesa.spec @@ -31,7 +31,7 @@ Summary: Mesa graphics libraries Name: mesa Version: 6.5.2 -Release: 12%{?dist} +Release: 13%{?dist} License: MIT Group: System Environment/Libraries URL: http://www.mesa3d.org @@ -330,6 +330,9 @@ rm -rf $RPM_BUILD_ROOT %{_bindir}/glxinfo %changelog +* Mon Jul 09 2007 Adam Jackson 6.5.2-13 +- mesa-6.5.2-radeon-backports-231787.patch: One more fix for r300. (#231787) + * Mon Jul 09 2007 Adam Jackson 6.5.2-12 - Don't install header files for APIs that we don't provide. (#247390)