Revert "gallium/svga: Only upload parts of vertexarrays that are actually used"
authorThomas Hellstrom <thellstrom@vmware.com>
Thu, 10 Mar 2011 22:29:03 +0000 (23:29 +0100)
committerThomas Hellstrom <thellstrom@vmware.com>
Thu, 10 Mar 2011 22:31:42 +0000 (23:31 +0100)
This reverts commit 6d4e337f3890105c7d8a2f132412c137d2570d25.

The commit is incorrect. I'll rework it. Revert for now.

Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
src/gallium/drivers/svga/svga_draw_arrays.c
src/gallium/drivers/svga/svga_draw_elements.c
src/gallium/drivers/svga/svga_resource_buffer.h
src/gallium/drivers/svga/svga_resource_buffer_upload.c
src/gallium/drivers/svga/svga_state_vdecl.c

index 1bb29cc2335206c68e7818b29e0eb104f777fd5d..a6518042eb9d76e5487e910440f34e101059d2d5 100644 (file)
@@ -32,7 +32,6 @@
 #include "svga_draw.h"
 #include "svga_draw_private.h"
 #include "svga_context.h"
-#include "svga_resource_buffer.h"
 
 
 #define DBG 0
@@ -192,8 +191,6 @@ simple_draw_arrays( struct svga_hwtnl *hwtnl,
    SVGA3dPrimitiveRange range;
    unsigned hw_prim;
    unsigned hw_count;
-   unsigned i;
-   unsigned src_offs;
 
    hw_prim = svga_translate_prim(prim, count, &hw_count);
    if (hw_count == 0)
@@ -212,22 +209,6 @@ simple_draw_arrays( struct svga_hwtnl *hwtnl,
     * looking at those numbers knows to adjust them by
     * range.indexBias.
     */
-
-   for (i = 0; i < hwtnl->cmd.vdecl_count; i++) {
-      struct pipe_resource *vb = hwtnl->cmd.vdecl_vb[i];
-      struct svga_buffer *sbuf = svga_buffer(vb);
-      unsigned stride = hwtnl->cmd.vdecl[i].array.stride;
-      unsigned tmp_src_offs = sbuf->source_offset;
-
-      if (stride)
-         tmp_src_offs /= stride;
-      assert(i == 0 || tmp_src_offs == src_offs);
-      src_offs = tmp_src_offs;
-   }
-
-   range.indexBias = start - src_offs;
-   assert(range.indexBias >= 0);
-
    return svga_hwtnl_prim( hwtnl, &range, 0, count - 1, NULL );
 }
 
index cf61144c9aebfc567a555b249d2dd55ebd598727..7d420c6b2954bbf1b9a7e4e1ed969901fcbf4b71 100644 (file)
@@ -113,7 +113,6 @@ svga_hwtnl_simple_draw_range_elements( struct svga_hwtnl *hwtnl,
    unsigned hw_count;
    unsigned index_offset = start * index_size;
    int ret = PIPE_OK;
-   unsigned i, src_offs;
 
    hw_prim = svga_translate_prim(prim, count, &hw_count);
    if (hw_count == 0)
@@ -143,21 +142,6 @@ svga_hwtnl_simple_draw_range_elements( struct svga_hwtnl *hwtnl,
       index_buffer = upload_buffer;
    }
 
-   for (i = 0; i < hwtnl->cmd.vdecl_count; i++) {
-      struct pipe_resource *vb = hwtnl->cmd.vdecl_vb[i];
-      struct svga_buffer *sbuf = svga_buffer(vb);
-      unsigned stride = hwtnl->cmd.vdecl[i].array.stride;
-      unsigned tmp_src_offs = sbuf->source_offset;
-
-      if (stride)
-        tmp_src_offs /= stride;
-      assert(i == 0 || tmp_src_offs == src_offs);
-      src_offs = tmp_src_offs;
-   }
-
-   index_bias -= src_offs;
-   assert(index_bias >= 0);
-
    range.primType = hw_prim;
    range.primitiveCount = hw_count;
    range.indexArray.offset = index_offset;
index 31a6fc6fef13deb4eec71a5adb40ba806bf90dd9..c559f70ec12430f6d8452e58ed9c0d84f955374e 100644 (file)
@@ -143,12 +143,6 @@ struct svga_buffer
       unsigned offset;
    } uploaded;
 
-   /**
-    * The offset in the source user buffer that matches the
-    * uploaded offset
-    */
-   unsigned source_offset;
-
    /**
     * DMA'ble memory.
     *
index 601643236a9a28769f522d1f2f3d7a94a515d29b..b7d54605e665538e10bf4694c23a30071d2ca6c2 100644 (file)
@@ -695,7 +695,6 @@ svga_redefine_user_buffer(struct pipe_context *pipe,
       sbuf->key.size.width = sbuf->b.b.width0 = offset + size;
    }
 
-   sbuf->source_offset = offset;
    pipe_mutex_unlock(ss->swc_mutex);
 
    svga->curr.any_user_vertex_buffers = TRUE;
index 5bd51ca677d1d623ebd27e0d329f7d14a70e6f56..2f85f9488f9dda03578d39b15080da7d5152d46c 100644 (file)
@@ -59,8 +59,8 @@ upload_user_buffers( struct svga_context *svga )
          if (!buffer->uploaded.buffer) {
             boolean flushed;
             ret = u_upload_buffer( svga->upload_vb,
-                                   0, buffer->source_offset,
-                                   buffer->b.b.width0 - buffer->source_offset,
+                                   0, 0,
+                                   buffer->b.b.width0,
                                    &buffer->b.b,
                                    &buffer->uploaded.offset,
                                    &buffer->uploaded.buffer,
@@ -69,19 +69,16 @@ upload_user_buffers( struct svga_context *svga )
                return ret;
 
             if (0)
-               debug_printf("%s: %d: orig buf %p upl buf %p ofs %d sofs %d"
-                            " sz %d\n",
+               debug_printf("%s: %d: orig buf %p upl buf %p ofs %d sz %d\n",
                             __FUNCTION__,
                             i,
                             buffer,
                             buffer->uploaded.buffer,
                             buffer->uploaded.offset,
-                            buffer->source_offset,
                             buffer->b.b.width0);
          }
 
          svga->curr.vb[i].buffer_offset = buffer->uploaded.offset;
-         svga_buffer(buffer->uploaded.buffer)->source_offset = buffer->source_offset;
       }
    }