radeonsi: remove nr_vertex_buffers
Unused. Also inline util_set_vertex_buffers_count and simplify it. Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
This commit is contained in:
parent
0ed0bf0696
commit
6210d6fdc2
|
@ -549,7 +549,7 @@ static void si_vertex_buffers_begin_new_cs(struct si_context *sctx)
|
||||||
for (i = 0; i < count; i++) {
|
for (i = 0; i < count; i++) {
|
||||||
int vb = sctx->vertex_elements->elements[i].vertex_buffer_index;
|
int vb = sctx->vertex_elements->elements[i].vertex_buffer_index;
|
||||||
|
|
||||||
if (vb >= sctx->nr_vertex_buffers)
|
if (vb >= Elements(sctx->vertex_buffer))
|
||||||
continue;
|
continue;
|
||||||
if (!sctx->vertex_buffer[vb].buffer)
|
if (!sctx->vertex_buffer[vb].buffer)
|
||||||
continue;
|
continue;
|
||||||
|
@ -598,7 +598,7 @@ void si_update_vertex_buffers(struct si_context *sctx)
|
||||||
unsigned offset;
|
unsigned offset;
|
||||||
uint32_t *desc = &ptr[i*4];
|
uint32_t *desc = &ptr[i*4];
|
||||||
|
|
||||||
if (ve->vertex_buffer_index >= sctx->nr_vertex_buffers) {
|
if (ve->vertex_buffer_index >= Elements(sctx->vertex_buffer)) {
|
||||||
memset(desc, 0, 16);
|
memset(desc, 0, 16);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
|
@ -144,8 +144,7 @@ struct si_context {
|
||||||
/* Vertex and index buffers. */
|
/* Vertex and index buffers. */
|
||||||
bool vertex_buffers_dirty;
|
bool vertex_buffers_dirty;
|
||||||
struct pipe_index_buffer index_buffer;
|
struct pipe_index_buffer index_buffer;
|
||||||
struct pipe_vertex_buffer vertex_buffer[PIPE_MAX_ATTRIBS];
|
struct pipe_vertex_buffer vertex_buffer[SI_NUM_VERTEX_BUFFERS];
|
||||||
unsigned nr_vertex_buffers;
|
|
||||||
|
|
||||||
/* With rasterizer discard, there doesn't have to be a pixel shader.
|
/* With rasterizer discard, there doesn't have to be a pixel shader.
|
||||||
* In that case, we bind this one: */
|
* In that case, we bind this one: */
|
||||||
|
|
|
@ -2824,12 +2824,30 @@ static void si_delete_vertex_element(struct pipe_context *ctx, void *state)
|
||||||
FREE(state);
|
FREE(state);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void si_set_vertex_buffers(struct pipe_context *ctx, unsigned start_slot, unsigned count,
|
static void si_set_vertex_buffers(struct pipe_context *ctx,
|
||||||
|
unsigned start_slot, unsigned count,
|
||||||
const struct pipe_vertex_buffer *buffers)
|
const struct pipe_vertex_buffer *buffers)
|
||||||
{
|
{
|
||||||
struct si_context *sctx = (struct si_context *)ctx;
|
struct si_context *sctx = (struct si_context *)ctx;
|
||||||
|
struct pipe_vertex_buffer *dst = sctx->vertex_buffer + start_slot;
|
||||||
|
int i;
|
||||||
|
|
||||||
util_set_vertex_buffers_count(sctx->vertex_buffer, &sctx->nr_vertex_buffers, buffers, start_slot, count);
|
assert(start_slot + count <= Elements(sctx->vertex_buffer));
|
||||||
|
|
||||||
|
if (buffers) {
|
||||||
|
for (i = 0; i < count; i++) {
|
||||||
|
const struct pipe_vertex_buffer *src = buffers + i;
|
||||||
|
struct pipe_vertex_buffer *dsti = dst + i;
|
||||||
|
|
||||||
|
pipe_resource_reference(&dsti->buffer, src->buffer);
|
||||||
|
dsti->buffer_offset = src->buffer_offset;
|
||||||
|
dsti->stride = src->stride;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
for (i = 0; i < count; i++) {
|
||||||
|
pipe_resource_reference(&dst[i].buffer, NULL);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void si_set_index_buffer(struct pipe_context *ctx,
|
static void si_set_index_buffer(struct pipe_context *ctx,
|
||||||
|
|
Loading…
Reference in New Issue