Mesa (main): cso: add missing parameters into cso_set_vertex_buffers

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Nov 3 23:50:05 UTC 2021


Module: Mesa
Branch: main
Commit: 69ee132b867864a57080289796e7680b11480200
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=69ee132b867864a57080289796e7680b11480200

Author: Marek Olšák <marek.olsak at amd.com>
Date:   Sun Oct 24 03:56:29 2021 -0400

cso: add missing parameters into cso_set_vertex_buffers

they will be used later

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer at amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13512>

---

 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 97b4da0afdb..1f3685155e1 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 6507bd026c4..b153e8347fc 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 b1887aa8498..56af41552ca 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 cf431f2b03f..48e85c4a627 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 426dea54ac4..3f53e822428 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 e1cf5509ace..0683ccd0c68 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 f488a69b948..e9cf42efcb5 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 0dc7de50c56..b8c3a948380 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);



More information about the mesa-commit mailing list