mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 09:38:07 +02:00
Revert "gallium/svga: Only upload parts of vertexarrays that are actually used"
This reverts commit 6d4e337f38.
The commit is incorrect. I'll rework it. Revert for now.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
This commit is contained in:
parent
fb3b712b84
commit
ded1e315a4
5 changed files with 3 additions and 48 deletions
|
|
@ -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 );
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue