- mesa-6.5.2-radeon-backports-231787.patch: One more fix for r300.

(#231787)
This commit is contained in:
Adam Jackson 2007-07-09 19:00:05 +00:00
parent 7700ba6760
commit eeb7caada7
2 changed files with 111 additions and 91 deletions

View file

@ -1,76 +1,7 @@
--- Mesa-6.5.2/src/mesa/main/texstore.c.radeon-231787 2006-11-02 17:57:11.000000000 -0500 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/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,
--- 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.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 +++ Mesa-6.5.2/src/mesa/drivers/dri/r300/radeon_state.c 2007-07-09 14:35:28.000000000 -0400
@@ -185,6 +185,8 @@ @@ -185,6 +185,8 @@ void radeonSetCliprects(radeonContextPtr
if (radeon->state.scissor.enabled) if (radeon->state.scissor.enabled)
radeonRecalcScissorRects(radeon); 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.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 +++ Mesa-6.5.2/src/mesa/drivers/dri/r300/radeon_lock.c 2007-07-09 14:35:28.000000000 -0400
@@ -90,7 +90,6 @@ @@ -90,7 +90,6 @@ static void r300RegainedLock(radeonConte
#else #else
radeonUpdateScissor(radeon->glCtx); radeonUpdateScissor(radeon->glCtx);
#endif #endif
@ -89,9 +48,22 @@
} }
if (sarea->ctx_owner != radeon->dri.hwContext) { 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 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_context.c 2007-04-10 14:51:44.000000000 -0400 --- Mesa-6.5.2/src/mesa/drivers/dri/radeon/radeon_state.c.radeon-231787 2006-11-01 13:52:11.000000000 -0500
@@ -615,12 +615,14 @@ +++ 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, driDrawableInitVBlank( driDrawPriv, newCtx->vblank_flags,
&newCtx->vbl_seq ); &newCtx->vbl_seq );
} }
@ -110,20 +82,10 @@
radeonUpdateWindow( newCtx->glCtx ); radeonUpdateWindow( newCtx->glCtx );
radeonUpdateViewportOffset( 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 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_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;
}
--- 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.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 +++ Mesa-6.5.2/src/mesa/drivers/dri/radeon/radeon_lock.c 2007-07-09 14:35:28.000000000 -0400
@@ -96,7 +96,6 @@ @@ -96,7 +96,6 @@ void radeonGetLock( radeonContextPtr rme
radeonSetCliprects( rmesa ); radeonSetCliprects( rmesa );
radeonUpdateViewportOffset( rmesa->glCtx ); radeonUpdateViewportOffset( rmesa->glCtx );
driUpdateFramebufferSize(rmesa->glCtx, drawable); driUpdateFramebufferSize(rmesa->glCtx, drawable);
@ -131,3 +93,58 @@
} }
RADEON_STATECHANGE( rmesa, ctx ); 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

View file

@ -31,7 +31,7 @@
Summary: Mesa graphics libraries Summary: Mesa graphics libraries
Name: mesa Name: mesa
Version: 6.5.2 Version: 6.5.2
Release: 12%{?dist} Release: 13%{?dist}
License: MIT License: MIT
Group: System Environment/Libraries Group: System Environment/Libraries
URL: http://www.mesa3d.org URL: http://www.mesa3d.org
@ -330,6 +330,9 @@ rm -rf $RPM_BUILD_ROOT
%{_bindir}/glxinfo %{_bindir}/glxinfo
%changelog %changelog
* Mon Jul 09 2007 Adam Jackson <ajax@redhat.com> 6.5.2-13
- mesa-6.5.2-radeon-backports-231787.patch: One more fix for r300. (#231787)
* Mon Jul 09 2007 Adam Jackson <ajax@redhat.com> 6.5.2-12 * Mon Jul 09 2007 Adam Jackson <ajax@redhat.com> 6.5.2-12
- Don't install header files for APIs that we don't provide. (#247390) - Don't install header files for APIs that we don't provide. (#247390)