Mesa (master): Revert "gallium/svga: Only upload parts of vertexarrays that are actually used"

Thomas Hellstrom thomash at kemper.freedesktop.org
Thu Mar 10 22:32:57 UTC 2011


Module: Mesa
Branch: master
Commit: ded1e315a432ca8b813f7d6fadc97b0d311ba398
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=ded1e315a432ca8b813f7d6fadc97b0d311ba398

Author: Thomas Hellstrom <thellstrom at vmware.com>
Date:   Thu Mar 10 23:29:03 2011 +0100

Revert "gallium/svga: Only upload parts of vertexarrays that are actually used"

This reverts commit 6d4e337f3890105c7d8a2f132412c137d2570d25.

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

Signed-off-by: Thomas Hellstrom <thellstrom at vmware.com>

---

 src/gallium/drivers/svga/svga_draw_arrays.c        |   19 -------------------
 src/gallium/drivers/svga/svga_draw_elements.c      |   16 ----------------
 src/gallium/drivers/svga/svga_resource_buffer.h    |    6 ------
 .../drivers/svga/svga_resource_buffer_upload.c     |    1 -
 src/gallium/drivers/svga/svga_state_vdecl.c        |    9 +++------
 5 files changed, 3 insertions(+), 48 deletions(-)

diff --git a/src/gallium/drivers/svga/svga_draw_arrays.c b/src/gallium/drivers/svga/svga_draw_arrays.c
index 1bb29cc..a651804 100644
--- a/src/gallium/drivers/svga/svga_draw_arrays.c
+++ b/src/gallium/drivers/svga/svga_draw_arrays.c
@@ -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 );
 }
 
diff --git a/src/gallium/drivers/svga/svga_draw_elements.c b/src/gallium/drivers/svga/svga_draw_elements.c
index cf61144..7d420c6 100644
--- a/src/gallium/drivers/svga/svga_draw_elements.c
+++ b/src/gallium/drivers/svga/svga_draw_elements.c
@@ -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;
diff --git a/src/gallium/drivers/svga/svga_resource_buffer.h b/src/gallium/drivers/svga/svga_resource_buffer.h
index 31a6fc6..c559f70 100644
--- a/src/gallium/drivers/svga/svga_resource_buffer.h
+++ b/src/gallium/drivers/svga/svga_resource_buffer.h
@@ -144,12 +144,6 @@ struct svga_buffer
    } uploaded;
 
    /**
-    * The offset in the source user buffer that matches the
-    * uploaded offset
-    */
-   unsigned source_offset;
-
-   /**
     * DMA'ble memory.
     *
     * A piece of GMR memory, with the same size of the buffer. It is created
diff --git a/src/gallium/drivers/svga/svga_resource_buffer_upload.c b/src/gallium/drivers/svga/svga_resource_buffer_upload.c
index 6016432..b7d5460 100644
--- a/src/gallium/drivers/svga/svga_resource_buffer_upload.c
+++ b/src/gallium/drivers/svga/svga_resource_buffer_upload.c
@@ -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;
diff --git a/src/gallium/drivers/svga/svga_state_vdecl.c b/src/gallium/drivers/svga/svga_state_vdecl.c
index 5bd51ca..2f85f94 100644
--- a/src/gallium/drivers/svga/svga_state_vdecl.c
+++ b/src/gallium/drivers/svga/svga_state_vdecl.c
@@ -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;
       }
    }
 




More information about the mesa-commit mailing list