rpms/mesa/devel mesa-6.5.2-via-respect-my-cliplist.patch, NONE, 1.1 mesa.spec, 1.129, 1.130

Adam Jackson (ajax) fedora-extras-commits at redhat.com
Fri Jul 6 22:52:02 UTC 2007


Author: ajax

Update of /cvs/pkgs/rpms/mesa/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv8822

Modified Files:
	mesa.spec 
Added Files:
	mesa-6.5.2-via-respect-my-cliplist.patch 
Log Message:
* Fri Jul 06 2007 Adam Jackson <ajax at redhat.com> 6.5.2-11
- mesa-6.5.2-via-respect-my-cliplist.patch: Backport a via fix. (#247254)


mesa-6.5.2-via-respect-my-cliplist.patch:

--- NEW FILE mesa-6.5.2-via-respect-my-cliplist.patch ---
From: Miguel Marte <miguelmarte at gmail.com>
Date: Sun, 18 Mar 2007 17:08:29 +0000 (-0600)
Subject: screen offset changes, bug 9965
X-Git-Tag: pre-merge-glsl-compiler-1
X-Git-Url: http://gitweb.freedesktop.org/?p=mesa/mesa.git;a=commitdiff;h=c41d6ab6f062ebce1076ca79f9ad0c7368a0e2d0

screen offset changes, bug 9965
---

--- a/src/mesa/drivers/dri/unichrome/via_context.c
+++ b/src/mesa/drivers/dri/unichrome/via_context.c
@@ -768,9 +768,7 @@ void viaXMesaWindowMoved(struct via_cont
 				  drawable);
    }
 
-   draw_buffer->drawXoff = (GLuint)(((drawable->x * bytePerPixel) & 0x1f) / 
-			      bytePerPixel);  
-   draw_buffer->drawX = drawable->x - draw_buffer->drawXoff;
+   draw_buffer->drawX = drawable->x;
    draw_buffer->drawY = drawable->y;
    draw_buffer->drawW = drawable->w;
    draw_buffer->drawH = drawable->h;
@@ -782,9 +780,7 @@ void viaXMesaWindowMoved(struct via_cont
 				     readable);
       }
 
-      read_buffer->drawXoff = (GLuint)(((readable->x * bytePerPixel) & 0x1f) / 
-				       bytePerPixel);  
-      read_buffer->drawX = readable->x - read_buffer->drawXoff;
+      read_buffer->drawX = readable->x;
       read_buffer->drawY = readable->y;
       read_buffer->drawW = readable->w;
       read_buffer->drawH = readable->h;
@@ -795,13 +791,24 @@ void viaXMesaWindowMoved(struct via_cont
 			draw_buffer->drawX * bytePerPixel);
 
    vmesa->front.origMap = (vmesa->front.map + 
-			   draw_buffer->drawY * vmesa->front.pitch + 
-			   draw_buffer->drawX * bytePerPixel);
+			draw_buffer->drawY * vmesa->front.pitch + 
+			draw_buffer->drawX * bytePerPixel);
+
+   vmesa->back.orig = (vmesa->back.offset +
+			draw_buffer->drawY * vmesa->back.pitch +
+			draw_buffer->drawX * bytePerPixel);
 
-   vmesa->back.orig = vmesa->back.offset;
-   vmesa->depth.orig = vmesa->depth.offset;   
-   vmesa->back.origMap = vmesa->back.map;
-   vmesa->depth.origMap = vmesa->depth.map;
+   vmesa->back.origMap = (vmesa->back.map +
+			draw_buffer->drawY * vmesa->back.pitch +
+			draw_buffer->drawX * bytePerPixel);
+
+   vmesa->depth.orig = (vmesa->depth.offset +
+			draw_buffer->drawY * vmesa->depth.pitch +
+			draw_buffer->drawX * bytePerPixel);   
+
+   vmesa->depth.origMap = (vmesa->depth.map +
+			draw_buffer->drawY * vmesa->depth.pitch +
+			draw_buffer->drawX * bytePerPixel);
 
    viaCalcViewport(vmesa->glCtx);
 }
--- a/src/mesa/drivers/dri/unichrome/via_context.h
+++ b/src/mesa/drivers/dri/unichrome/via_context.h
@@ -104,11 +104,6 @@ struct via_renderbuffer {
    int drawW;                  
    int drawH;    
 
-   int drawXoff;		/* drawX is 32byte aligned - this is
-				 * the delta to the real origin, in
-				 * pixel units.
-				 */
-
    __DRIdrawablePrivate *dPriv;
 };
 
--- a/src/mesa/drivers/dri/unichrome/via_ioctl.c
+++ b/src/mesa/drivers/dri/unichrome/via_ioctl.c
@@ -187,7 +187,7 @@ static void viaFillBuffer(struct via_con
       int w = pbox[i].x2 - pbox[i].x1;
       int h = pbox[i].y2 - pbox[i].y1;
 
-      int offset = (buffer->orig + 
+      int offset = (buffer->offset + 
 		    y * buffer->pitch + 
 		    x * bytePerPixel);
 
@@ -276,7 +276,7 @@ static void viaClear(GLcontext *ctx, GLb
 
       /* flip top to bottom */
       cy = dPriv->h - cy - ch;
-      cx += vrb->drawX + vrb->drawXoff;
+      cx += vrb->drawX;
       cy += vrb->drawY;
         
       if (!all) {
@@ -359,8 +359,8 @@ static void viaDoSwapBuffers(struct via_
       GLint w = b->x2 - b->x1;
       GLint h = b->y2 - b->y1;
 	
-      GLuint src = back->orig + y * back->pitch + x * bytePerPixel;
-      GLuint dest = front->orig + y * front->pitch + x * bytePerPixel;
+      GLuint src = back->offset + y * back->pitch + x * bytePerPixel;
+      GLuint dest = front->offset + y * front->pitch + x * bytePerPixel;
 
       viaBlit(vmesa, 
 	      bytePerPixel << 3, 
@@ -747,7 +747,7 @@ static void via_emit_cliprect(struct via
 		    : HC_HDBFM_RGB565);
 
    GLuint pitch = buffer->pitch;
-   GLuint offset = buffer->orig;
+   GLuint offset = buffer->offset;
 
    if (0)
       fprintf(stderr, "emit cliprect for box %d,%d %d,%d\n", 
@@ -768,7 +768,7 @@ static void via_emit_cliprect(struct via
    vb[4] = (HC_SubA_HDBBasL << 24) | (offset & 0xFFFFFF);
    vb[5] = (HC_SubA_HDBBasH << 24) | ((offset & 0xFF000000) >> 24); 
 
-   vb[6] = (HC_SubA_HSPXYOS << 24) | ((31 - buffer->drawXoff) << HC_HSPXOS_SHIFT);
+   vb[6] = (HC_SubA_HSPXYOS << 24);
    vb[7] = (HC_SubA_HDBFM << 24) | HC_HDBLoc_Local | format | pitch;
 }
 
@@ -887,22 +887,18 @@ void viaFlushDmaLocked(struct via_contex
       struct via_renderbuffer *const vrb = 
 	(struct via_renderbuffer *) dPriv->driverPrivate;
 
-
       for (i = 0; i < vmesa->numClipRects; i++) {
 	 drm_clip_rect_t b;
 
-	 b.x1 = pbox[i].x1 - (vrb->drawX + vrb->drawXoff);
-	 b.x2 = pbox[i].x2 - (vrb->drawX + vrb->drawXoff);
-	 b.y1 = pbox[i].y1 - vrb->drawY;
-	 b.y2 = pbox[i].y2 - vrb->drawY;
+	 b.x1 = pbox[i].x1;
+	 b.x2 = pbox[i].x2;
+	 b.y1 = pbox[i].y1;
+	 b.y2 = pbox[i].y2;
 
 	 if (vmesa->scissor &&
 	     !intersect_rect(&b, &b, &vmesa->scissorRect)) 
 	    continue;
 
-	 b.x1 += vrb->drawXoff;
-	 b.x2 += vrb->drawXoff;
-
 	 via_emit_cliprect(vmesa, &b);
 
 	 if (fire_buffer(vmesa) != 0) {
--- a/src/mesa/drivers/dri/unichrome/via_span.c
+++ b/src/mesa/drivers/dri/unichrome/via_span.c
@@ -46,7 +46,7 @@
     GLuint pitch = vrb->pitch;                                          \
     GLuint height = dPriv->h;                                        	\
     GLint p = 0;							\
-    char *buf = (char *)(vrb->origMap + vrb->drawXoff * vrb->bpp);      \
+    char *buf = (char *)(vrb->origMap);					\
     (void) p;
 
 /* ================================================================
@@ -82,7 +82,7 @@
     __DRIdrawablePrivate *dPriv = vrb->dPriv;                       \
     GLuint depth_pitch = vrb->pitch;                                \
     GLuint height = dPriv->h;                                       \
-    char *buf = (char *)(vrb->map + (vrb->drawXoff * vrb->bpp/8))
+    char *buf = (char *)(vrb->map)
 
 #define LOCAL_STENCIL_VARS LOCAL_DEPTH_VARS 
 
--- a/src/mesa/drivers/dri/unichrome/via_state.c
+++ b/src/mesa/drivers/dri/unichrome/via_state.c
@@ -500,10 +500,8 @@ void viaEmitState(struct via_context *vm
 
       OUT_RING( HC_HEADER2 );                     
       OUT_RING( (HC_ParaType_NotTex << 16) );
-      OUT_RING( (HC_SubA_HSPXYOS << 24) | 
-		(((32- vrb->drawXoff) & 0x1f) << HC_HSPXOS_SHIFT));
-      OUT_RING( (HC_SubA_HSPXYOS << 24) | 
-		(((32 - vrb->drawXoff) & 0x1f) << HC_HSPXOS_SHIFT));
+      OUT_RING( (HC_SubA_HSPXYOS << 24) );
+      OUT_RING( (HC_SubA_HSPXYOS << 24) );
 
       ADVANCE_RING();
    }
@@ -712,12 +710,8 @@ static void viaColorMask(GLcontext *ctx,
 }
 
 
-/* =============================================================
- */
 
-
-/* Using drawXoff like this is incorrect outside of locked regions.
- * This hardware just isn't capable of private back buffers without
+/* This hardware just isn't capable of private back buffers without
  * glitches and/or a hefty locking scheme.
  */
 void viaCalcViewport(GLcontext *ctx)
@@ -729,12 +723,10 @@ void viaCalcViewport(GLcontext *ctx)
     const GLfloat *v = ctx->Viewport._WindowMap.m;
     GLfloat *m = vmesa->ViewportMatrix.m;
     
-    /* See also via_translate_vertex.
-     */
     m[MAT_SX] =   v[MAT_SX];
-    m[MAT_TX] =   v[MAT_TX] + SUBPIXEL_X + vrb->drawXoff;
+    m[MAT_TX] =   v[MAT_TX] + vrb->drawX + SUBPIXEL_X;
     m[MAT_SY] = - v[MAT_SY];
-    m[MAT_TY] = - v[MAT_TY] + dPriv->h + SUBPIXEL_Y;
+    m[MAT_TY] = - v[MAT_TY] + vrb->drawY + SUBPIXEL_Y + vrb->drawH;
     m[MAT_SZ] =   v[MAT_SZ] * (1.0 / vmesa->depth_max);
     m[MAT_TZ] =   v[MAT_TZ] * (1.0 / vmesa->depth_max);
 }


Index: mesa.spec
===================================================================
RCS file: /cvs/pkgs/rpms/mesa/devel/mesa.spec,v
retrieving revision 1.129
retrieving revision 1.130
diff -u -r1.129 -r1.130
--- mesa.spec	10 Apr 2007 20:23:30 -0000	1.129
+++ mesa.spec	6 Jul 2007 22:51:26 -0000	1.130
@@ -31,7 +31,7 @@
 Summary: Mesa graphics libraries
 Name: mesa
 Version: 6.5.2
-Release: 10%{?dist}
+Release: 11%{?dist}
 License: MIT
 Group: System Environment/Libraries
 URL: http://www.mesa3d.org
@@ -51,6 +51,7 @@
 Patch22: mesa-6.5.2-hush-synthetic-visual-warning.patch
 Patch23: mesa-6.5.2-bindcontext-paranoia.patch
 Patch24: mesa-6.5.2-radeon-backports-231787.patch
+Patch25: mesa-6.5.2-via-respect-my-cliplist.patch
 
 BuildRequires: pkgconfig
 %if %{with_dri}
@@ -169,6 +170,7 @@
 %patch22 -p1 -b .visual-warning
 %patch23 -p1 -b .bindcontext
 %patch24 -p1 -b .radeon-231787
+%patch25 -p1 -b .via-cliplist
 
 # WARNING: The following files are copyright "Mark J. Kilgard" under the GLUT
 # license and are not open source/free software, so we remove them.
@@ -338,6 +340,9 @@
 %{_bindir}/glxinfo
 
 %changelog
+* Fri Jul 06 2007 Adam Jackson <ajax at redhat.com> 6.5.2-11
+- mesa-6.5.2-via-respect-my-cliplist.patch: Backport a via fix. (#247254)
+
 * Tue Apr 10 2007 Adam Jackson <ajax at redhat.com> 6.5.2-10
 - mesa-6.5.2-radeon-backports-231787.patch: Backport various radeon bugfixes
   from git. (#231787)




More information about the fedora-extras-commits mailing list