From 69ee132b867864a57080289796e7680b11480200 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Sun, 24 Oct 2021 03:56:29 -0400 Subject: [PATCH] cso: add missing parameters into cso_set_vertex_buffers they will be used later Reviewed-by: Pierre-Eric Pelloux-Prayer Part-of: --- src/gallium/auxiliary/cso_cache/cso_context.c | 10 +++++++--- src/gallium/auxiliary/cso_cache/cso_context.h | 2 ++ src/gallium/auxiliary/hud/hud_context.c | 8 ++++---- src/gallium/auxiliary/util/u_draw_quad.c | 4 ++-- src/gallium/frontends/lavapipe/lvp_execute.c | 2 +- src/mesa/state_tracker/st_cb_bitmap.c | 2 +- src/mesa/state_tracker/st_draw.c | 2 +- src/mesa/state_tracker/st_pbo.c | 2 +- 8 files changed, 19 insertions(+), 13 deletions(-) diff --git a/src/gallium/auxiliary/cso_cache/cso_context.c b/src/gallium/auxiliary/cso_cache/cso_context.c index 97b4da0..1f36851 100644 --- a/src/gallium/auxiliary/cso_cache/cso_context.c +++ b/src/gallium/auxiliary/cso_cache/cso_context.c @@ -1118,20 +1118,24 @@ cso_restore_vertex_elements(struct cso_context *ctx) void cso_set_vertex_buffers(struct cso_context *ctx, unsigned start_slot, unsigned count, + unsigned unbind_trailing_count, + bool take_ownership, const struct pipe_vertex_buffer *buffers) { struct u_vbuf *vbuf = ctx->vbuf_current; - if (!count) + if (!count && !unbind_trailing_count) return; if (vbuf) { - u_vbuf_set_vertex_buffers(vbuf, start_slot, count, 0, false, buffers); + u_vbuf_set_vertex_buffers(vbuf, start_slot, count, unbind_trailing_count, + take_ownership, buffers); return; } struct pipe_context *pipe = ctx->pipe; - pipe->set_vertex_buffers(pipe, start_slot, count, 0, false, buffers); + pipe->set_vertex_buffers(pipe, start_slot, count, unbind_trailing_count, + take_ownership, buffers); } /** diff --git a/src/gallium/auxiliary/cso_cache/cso_context.h b/src/gallium/auxiliary/cso_cache/cso_context.h index 6507bd0..b153e83 100644 --- a/src/gallium/auxiliary/cso_cache/cso_context.h +++ b/src/gallium/auxiliary/cso_cache/cso_context.h @@ -90,6 +90,8 @@ enum pipe_error cso_set_vertex_elements(struct cso_context *ctx, void cso_set_vertex_buffers(struct cso_context *ctx, unsigned start_slot, unsigned count, + unsigned unbind_trailing_count, + bool take_ownership, const struct pipe_vertex_buffer *buffers); void cso_set_stream_outputs(struct cso_context *ctx, diff --git a/src/gallium/auxiliary/hud/hud_context.c b/src/gallium/auxiliary/hud/hud_context.c index b1887aa..56af415 100644 --- a/src/gallium/auxiliary/hud/hud_context.c +++ b/src/gallium/auxiliary/hud/hud_context.c @@ -93,7 +93,7 @@ hud_draw_colored_prims(struct hud_context *hud, unsigned prim, u_upload_unmap(hud->pipe->stream_uploader); vbuffer.stride = 2 * sizeof(float); - cso_set_vertex_buffers(cso, 0, 1, &vbuffer); + cso_set_vertex_buffers(cso, 0, 1, 0, false, &vbuffer); pipe_resource_reference(&vbuffer.buffer.resource, NULL); cso_set_fragment_shader_handle(hud->cso, hud->fs_color); cso_draw_arrays(cso, prim, 0, num_vertices); @@ -562,7 +562,7 @@ hud_draw_results(struct hud_context *hud, struct pipe_resource *tex) pipe->set_constant_buffer(pipe, PIPE_SHADER_VERTEX, 0, false, &hud->constbuf); - cso_set_vertex_buffers(cso, 0, 1, &hud->bg.vbuf); + cso_set_vertex_buffers(cso, 0, 1, 0, false, &hud->bg.vbuf); cso_draw_arrays(cso, PIPE_PRIM_QUADS, 0, hud->bg.num_vertices); } pipe_resource_reference(&hud->bg.vbuf.buffer.resource, NULL); @@ -570,7 +570,7 @@ hud_draw_results(struct hud_context *hud, struct pipe_resource *tex) /* draw accumulated vertices for text */ if (hud->text.num_vertices) { cso_set_vertex_shader_handle(cso, hud->vs_text); - cso_set_vertex_buffers(cso, 0, 1, &hud->text.vbuf); + cso_set_vertex_buffers(cso, 0, 1, 0, false, &hud->text.vbuf); cso_set_fragment_shader_handle(hud->cso, hud->fs_text); cso_draw_arrays(cso, PIPE_PRIM_QUADS, 0, hud->text.num_vertices); } @@ -594,7 +594,7 @@ hud_draw_results(struct hud_context *hud, struct pipe_resource *tex) if (hud->whitelines.num_vertices) { cso_set_vertex_shader_handle(cso, hud->vs_color); - cso_set_vertex_buffers(cso, 0, 1, &hud->whitelines.vbuf); + cso_set_vertex_buffers(cso, 0, 1, 0, false, &hud->whitelines.vbuf); cso_set_fragment_shader_handle(hud->cso, hud->fs_color); cso_draw_arrays(cso, PIPE_PRIM_LINES, 0, hud->whitelines.num_vertices); } diff --git a/src/gallium/auxiliary/util/u_draw_quad.c b/src/gallium/auxiliary/util/u_draw_quad.c index cf431f2..48e85c4 100644 --- a/src/gallium/auxiliary/util/u_draw_quad.c +++ b/src/gallium/auxiliary/util/u_draw_quad.c @@ -61,7 +61,7 @@ util_draw_vertex_buffer(struct pipe_context *pipe, /* note: vertex elements already set by caller */ if (cso) { - cso_set_vertex_buffers(cso, vbuf_slot, 1, &vbuffer); + cso_set_vertex_buffers(cso, vbuf_slot, 1, 0, false, &vbuffer); cso_draw_arrays(cso, prim_type, 0, num_verts); } else { pipe->set_vertex_buffers(pipe, vbuf_slot, 1, 0, false, &vbuffer); @@ -88,6 +88,6 @@ util_draw_user_vertex_buffer(struct cso_context *cso, void *buffer, /* note: vertex elements already set by caller */ - cso_set_vertex_buffers(cso, 0, 1, &vbuffer); + cso_set_vertex_buffers(cso, 0, 1, 0, false, &vbuffer); cso_draw_arrays(cso, prim_type, 0, num_verts); } diff --git a/src/gallium/frontends/lavapipe/lvp_execute.c b/src/gallium/frontends/lavapipe/lvp_execute.c index 426dea5..3f53e82 100644 --- a/src/gallium/frontends/lavapipe/lvp_execute.c +++ b/src/gallium/frontends/lavapipe/lvp_execute.c @@ -288,7 +288,7 @@ static void emit_state(struct rendering_state *state) } if (state->vb_dirty) { - cso_set_vertex_buffers(state->cso, state->start_vb, state->num_vb, state->vb); + cso_set_vertex_buffers(state->cso, state->start_vb, state->num_vb, 0, false, state->vb); state->vb_dirty = false; } diff --git a/src/mesa/state_tracker/st_cb_bitmap.c b/src/mesa/state_tracker/st_cb_bitmap.c index e1cf550..0683ccd 100644 --- a/src/mesa/state_tracker/st_cb_bitmap.c +++ b/src/mesa/state_tracker/st_cb_bitmap.c @@ -766,7 +766,7 @@ st_DrawAtlasBitmaps(struct gl_context *ctx, u_upload_unmap(pipe->stream_uploader); - cso_set_vertex_buffers(st->cso_context, 0, 1, &vb); + cso_set_vertex_buffers(st->cso_context, 0, 1, 0, false, &vb); st->last_num_vbuffers = MAX2(st->last_num_vbuffers, 1); cso_draw_arrays(st->cso_context, PIPE_PRIM_QUADS, 0, num_verts); diff --git a/src/mesa/state_tracker/st_draw.c b/src/mesa/state_tracker/st_draw.c index f488a69..e9cf42e 100644 --- a/src/mesa/state_tracker/st_draw.c +++ b/src/mesa/state_tracker/st_draw.c @@ -483,7 +483,7 @@ st_draw_quad(struct st_context *st, u_upload_unmap(st->pipe->stream_uploader); - cso_set_vertex_buffers(st->cso_context, 0, 1, &vb); + cso_set_vertex_buffers(st->cso_context, 0, 1, 0, false, &vb); st->last_num_vbuffers = MAX2(st->last_num_vbuffers, 1); if (num_instances > 1) { diff --git a/src/mesa/state_tracker/st_pbo.c b/src/mesa/state_tracker/st_pbo.c index 0dc7de5..b8c3a94 100644 --- a/src/mesa/state_tracker/st_pbo.c +++ b/src/mesa/state_tracker/st_pbo.c @@ -258,7 +258,7 @@ st_pbo_draw(struct st_context *st, const struct st_pbo_addresses *addr, cso_set_vertex_elements(cso, &velem); - cso_set_vertex_buffers(cso, 0, 1, &vbo); + cso_set_vertex_buffers(cso, 0, 1, 0, false, &vbo); st->last_num_vbuffers = MAX2(st->last_num_vbuffers, 1); pipe_resource_reference(&vbo.buffer.resource, NULL); -- 2.7.4