Thomas,

Is it correct that your application is using 1-dimensional textures and vertex arrays? This is a little-exercised aspect of the driver, but it shouldn't too hard to fix up. I'll try and rig up something here that exercises the problem.

In the meantime, what does the following patch do?

Keith
Index: r200_maos_arrays.c
===================================================================
RCS file: /cvsroot/dri/xc/xc/lib/GL/mesa/src/drv/r200/r200_maos_arrays.c,v
retrieving revision 1.9
diff -u -r1.9 r200_maos_arrays.c
--- r200_maos_arrays.c  26 Aug 2003 15:43:59 -0000      1.9
+++ r200_maos_arrays.c  2 Sep 2003 15:24:01 -0000
@@ -175,6 +175,28 @@
 }
 
 
+static void emit_vec4( GLcontext *ctx,
+                      struct r200_dma_region *rvb,
+                      char *data,
+                      int stride,
+                      int count )
+{
+   int i;
+   int *out = (int *)(rvb->address + rvb->start);
+
+   if (R200_DEBUG & DEBUG_VERTS)
+      fprintf(stderr, "%s count %d stride %d\n",
+             __FUNCTION__, count, stride);
+
+   if (stride == 4)
+      COPY_DWORDS( out, data, count );
+   else
+      for (i = 0; i < count; i++) {
+        out[0] = *(int *)data;
+        out++;
+        data += stride;
+      }
+}
 
 
 static void emit_vec8( GLcontext *ctx,
@@ -285,6 +307,9 @@
    /* Emit the data
     */
    switch (size) {
+   case 1:
+      emit_vec4( ctx, rvb, data, stride, count );
+      break;
    case 2:
       emit_vec8( ctx, rvb, data, stride, count );
       break;

Reply via email to