151 lines
6.7 KiB
Diff
151 lines
6.7 KiB
Diff
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-07-09 14:35:28.000000000 -0400
|
|
@@ -185,6 +185,8 @@ void radeonSetCliprects(radeonContextPtr
|
|
|
|
if (radeon->state.scissor.enabled)
|
|
radeonRecalcScissorRects(radeon);
|
|
+
|
|
+ radeon->lastStamp = drawable->lastStamp;
|
|
}
|
|
|
|
|
|
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-07-09 14:35:28.000000000 -0400
|
|
@@ -90,7 +90,6 @@ static void r300RegainedLock(radeonConte
|
|
#else
|
|
radeonUpdateScissor(radeon->glCtx);
|
|
#endif
|
|
- radeon->lastStamp = drawable->lastStamp;
|
|
}
|
|
|
|
if (sarea->ctx_owner != radeon->dri.hwContext) {
|
|
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 );
|
|
}
|
|
-
|
|
- if ( (newCtx->dri.drawable != driDrawPriv)
|
|
- || (newCtx->dri.readable != driReadPriv) ) {
|
|
+
|
|
+ newCtx->dri.readable = driReadPriv;
|
|
+
|
|
+ if ( (newCtx->dri.drawable != driDrawPriv) ||
|
|
+ newCtx->lastStamp != driDrawPriv->lastStamp ) {
|
|
newCtx->dri.drawable = driDrawPriv;
|
|
- newCtx->dri.readable = driReadPriv;
|
|
|
|
+ radeonSetCliprects(newCtx);
|
|
radeonUpdateWindow( newCtx->glCtx );
|
|
radeonUpdateViewportOffset( newCtx->glCtx );
|
|
}
|
|
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-07-09 14:35:28.000000000 -0400
|
|
@@ -96,7 +96,6 @@ void radeonGetLock( radeonContextPtr rme
|
|
radeonSetCliprects( rmesa );
|
|
radeonUpdateViewportOffset( rmesa->glCtx );
|
|
driUpdateFramebufferSize(rmesa->glCtx, drawable);
|
|
- rmesa->lastStamp = drawable->lastStamp;
|
|
}
|
|
|
|
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
|