cso: add missing parameters into cso_set_vertex_buffers
they will be used later Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13512>
This commit is contained in:
parent
29877c1dce
commit
69ee132b86
|
@ -1118,20 +1118,24 @@ cso_restore_vertex_elements(struct cso_context *ctx)
|
||||||
|
|
||||||
void cso_set_vertex_buffers(struct cso_context *ctx,
|
void cso_set_vertex_buffers(struct cso_context *ctx,
|
||||||
unsigned start_slot, unsigned count,
|
unsigned start_slot, unsigned count,
|
||||||
|
unsigned unbind_trailing_count,
|
||||||
|
bool take_ownership,
|
||||||
const struct pipe_vertex_buffer *buffers)
|
const struct pipe_vertex_buffer *buffers)
|
||||||
{
|
{
|
||||||
struct u_vbuf *vbuf = ctx->vbuf_current;
|
struct u_vbuf *vbuf = ctx->vbuf_current;
|
||||||
|
|
||||||
if (!count)
|
if (!count && !unbind_trailing_count)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (vbuf) {
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct pipe_context *pipe = ctx->pipe;
|
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -90,6 +90,8 @@ enum pipe_error cso_set_vertex_elements(struct cso_context *ctx,
|
||||||
|
|
||||||
void cso_set_vertex_buffers(struct cso_context *ctx,
|
void cso_set_vertex_buffers(struct cso_context *ctx,
|
||||||
unsigned start_slot, unsigned count,
|
unsigned start_slot, unsigned count,
|
||||||
|
unsigned unbind_trailing_count,
|
||||||
|
bool take_ownership,
|
||||||
const struct pipe_vertex_buffer *buffers);
|
const struct pipe_vertex_buffer *buffers);
|
||||||
|
|
||||||
void cso_set_stream_outputs(struct cso_context *ctx,
|
void cso_set_stream_outputs(struct cso_context *ctx,
|
||||||
|
|
|
@ -93,7 +93,7 @@ hud_draw_colored_prims(struct hud_context *hud, unsigned prim,
|
||||||
u_upload_unmap(hud->pipe->stream_uploader);
|
u_upload_unmap(hud->pipe->stream_uploader);
|
||||||
vbuffer.stride = 2 * sizeof(float);
|
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);
|
pipe_resource_reference(&vbuffer.buffer.resource, NULL);
|
||||||
cso_set_fragment_shader_handle(hud->cso, hud->fs_color);
|
cso_set_fragment_shader_handle(hud->cso, hud->fs_color);
|
||||||
cso_draw_arrays(cso, prim, 0, num_vertices);
|
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);
|
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);
|
cso_draw_arrays(cso, PIPE_PRIM_QUADS, 0, hud->bg.num_vertices);
|
||||||
}
|
}
|
||||||
pipe_resource_reference(&hud->bg.vbuf.buffer.resource, NULL);
|
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 */
|
/* draw accumulated vertices for text */
|
||||||
if (hud->text.num_vertices) {
|
if (hud->text.num_vertices) {
|
||||||
cso_set_vertex_shader_handle(cso, hud->vs_text);
|
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_set_fragment_shader_handle(hud->cso, hud->fs_text);
|
||||||
cso_draw_arrays(cso, PIPE_PRIM_QUADS, 0, hud->text.num_vertices);
|
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) {
|
if (hud->whitelines.num_vertices) {
|
||||||
cso_set_vertex_shader_handle(cso, hud->vs_color);
|
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_set_fragment_shader_handle(hud->cso, hud->fs_color);
|
||||||
cso_draw_arrays(cso, PIPE_PRIM_LINES, 0, hud->whitelines.num_vertices);
|
cso_draw_arrays(cso, PIPE_PRIM_LINES, 0, hud->whitelines.num_vertices);
|
||||||
}
|
}
|
||||||
|
|
|
@ -61,7 +61,7 @@ util_draw_vertex_buffer(struct pipe_context *pipe,
|
||||||
/* note: vertex elements already set by caller */
|
/* note: vertex elements already set by caller */
|
||||||
|
|
||||||
if (cso) {
|
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);
|
cso_draw_arrays(cso, prim_type, 0, num_verts);
|
||||||
} else {
|
} else {
|
||||||
pipe->set_vertex_buffers(pipe, vbuf_slot, 1, 0, false, &vbuffer);
|
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 */
|
/* 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);
|
cso_draw_arrays(cso, prim_type, 0, num_verts);
|
||||||
}
|
}
|
||||||
|
|
|
@ -288,7 +288,7 @@ static void emit_state(struct rendering_state *state)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (state->vb_dirty) {
|
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;
|
state->vb_dirty = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -766,7 +766,7 @@ st_DrawAtlasBitmaps(struct gl_context *ctx,
|
||||||
|
|
||||||
u_upload_unmap(pipe->stream_uploader);
|
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);
|
st->last_num_vbuffers = MAX2(st->last_num_vbuffers, 1);
|
||||||
|
|
||||||
cso_draw_arrays(st->cso_context, PIPE_PRIM_QUADS, 0, num_verts);
|
cso_draw_arrays(st->cso_context, PIPE_PRIM_QUADS, 0, num_verts);
|
||||||
|
|
|
@ -483,7 +483,7 @@ st_draw_quad(struct st_context *st,
|
||||||
|
|
||||||
u_upload_unmap(st->pipe->stream_uploader);
|
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);
|
st->last_num_vbuffers = MAX2(st->last_num_vbuffers, 1);
|
||||||
|
|
||||||
if (num_instances > 1) {
|
if (num_instances > 1) {
|
||||||
|
|
|
@ -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_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);
|
st->last_num_vbuffers = MAX2(st->last_num_vbuffers, 1);
|
||||||
|
|
||||||
pipe_resource_reference(&vbo.buffer.resource, NULL);
|
pipe_resource_reference(&vbo.buffer.resource, NULL);
|
||||||
|
|
Loading…
Reference in New Issue