diff options
author | Marek Olšák <marek.olsak@amd.com> | 2023-11-20 13:48:09 -0500 |
---|---|---|
committer | Marge Bot <emma+marge@anholt.net> | 2024-01-14 21:55:19 +0000 |
commit | eb20ef92772c6a4963128370260d578f100efee9 (patch) | |
tree | 04d3baa5430fa12a4afd0c2debc4764bf9dec8f5 /src/gallium/drivers/r300 | |
parent | 2725b095ea2a16a1ce28aca8ae31e9d3df448c67 (diff) |
gallium: remove unbind_trailing_count from set_vertex_buffers
It should implicitly unbind all bound buffers after "count".
This also slightly simplies u_vbuf.
This is a cleanup suggested by:
https://gitlab.freedesktop.org/mesa/mesa/-/issues/8142
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> (asahi & panfrost)
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26309>
Diffstat (limited to 'src/gallium/drivers/r300')
-rw-r--r-- | src/gallium/drivers/r300/r300_blit.c | 3 | ||||
-rw-r--r-- | src/gallium/drivers/r300/r300_context.c | 2 | ||||
-rw-r--r-- | src/gallium/drivers/r300/r300_state.c | 20 |
3 files changed, 10 insertions, 15 deletions
diff --git a/src/gallium/drivers/r300/r300_blit.c b/src/gallium/drivers/r300/r300_blit.c index 09a5eb3c64a..f2ca10ff334 100644 --- a/src/gallium/drivers/r300/r300_blit.c +++ b/src/gallium/drivers/r300/r300_blit.c @@ -69,7 +69,8 @@ static void r300_blitter_begin(struct r300_context* r300, enum r300_blitter_op o util_blitter_save_viewport(r300->blitter, &r300->viewport); util_blitter_save_scissor(r300->blitter, r300->scissor_state.state); util_blitter_save_sample_mask(r300->blitter, *(unsigned*)r300->sample_mask.state, 0); - util_blitter_save_vertex_buffer_slot(r300->blitter, r300->vertex_buffer); + util_blitter_save_vertex_buffers(r300->blitter, r300->vertex_buffer, + r300->nr_vertex_buffers); util_blitter_save_vertex_elements(r300->blitter, r300->velems); struct pipe_constant_buffer cb = { diff --git a/src/gallium/drivers/r300/r300_context.c b/src/gallium/drivers/r300/r300_context.c index edad0071a5a..a549bc18c67 100644 --- a/src/gallium/drivers/r300/r300_context.c +++ b/src/gallium/drivers/r300/r300_context.c @@ -474,7 +474,7 @@ struct pipe_context* r300_create_context(struct pipe_screen* screen, vb.depth0 = 1; r300->dummy_vb.buffer.resource = screen->resource_create(screen, &vb); - r300->context.set_vertex_buffers(&r300->context, 1, 0, false, &r300->dummy_vb); + r300->context.set_vertex_buffers(&r300->context, 1, false, &r300->dummy_vb); } { diff --git a/src/gallium/drivers/r300/r300_state.c b/src/gallium/drivers/r300/r300_state.c index a0177280444..cf1d6cc7e16 100644 --- a/src/gallium/drivers/r300/r300_state.c +++ b/src/gallium/drivers/r300/r300_state.c @@ -1771,23 +1771,20 @@ static void r300_set_viewport_states(struct pipe_context* pipe, } static void r300_set_vertex_buffers_hwtcl(struct pipe_context* pipe, - unsigned count, - unsigned unbind_num_trailing_slots, - bool take_ownership, + unsigned count, bool take_ownership, const struct pipe_vertex_buffer* buffers) { struct r300_context* r300 = r300_context(pipe); util_set_vertex_buffers_count(r300->vertex_buffer, - &r300->nr_vertex_buffers, - buffers, count, - unbind_num_trailing_slots, take_ownership); + &r300->nr_vertex_buffers, buffers, count, + take_ownership); /* There must be at least one vertex buffer set, otherwise it locks up. */ if (!r300->nr_vertex_buffers) { util_set_vertex_buffers_count(r300->vertex_buffer, &r300->nr_vertex_buffers, - &r300->dummy_vb, 1, 0, false); + &r300->dummy_vb, 1, false); } r300->vertex_arrays_dirty = true; @@ -1795,7 +1792,6 @@ static void r300_set_vertex_buffers_hwtcl(struct pipe_context* pipe, static void r300_set_vertex_buffers_swtcl(struct pipe_context* pipe, unsigned count, - unsigned unbind_num_trailing_slots, bool take_ownership, const struct pipe_vertex_buffer* buffers) { @@ -1803,11 +1799,9 @@ static void r300_set_vertex_buffers_swtcl(struct pipe_context* pipe, unsigned i; util_set_vertex_buffers_count(r300->vertex_buffer, - &r300->nr_vertex_buffers, - buffers, count, - unbind_num_trailing_slots, take_ownership); - draw_set_vertex_buffers(r300->draw, count, - unbind_num_trailing_slots, buffers); + &r300->nr_vertex_buffers, buffers, count, + take_ownership); + draw_set_vertex_buffers(r300->draw, count, buffers); if (!buffers) return; |