mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 06:58:05 +02:00
gallium/hud: set take_ownership=true for set_vertex_buffers
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27492>
This commit is contained in:
parent
7fbb758e56
commit
47b15d83a2
1 changed files with 13 additions and 8 deletions
|
|
@ -112,8 +112,7 @@ hud_draw_colored_prims(struct hud_context *hud, unsigned prim,
|
|||
&vbuffer.buffer_offset, &vbuffer.buffer.resource);
|
||||
u_upload_unmap(hud->pipe->stream_uploader);
|
||||
|
||||
cso_set_vertex_buffers(cso, 1, false, &vbuffer);
|
||||
pipe_resource_reference(&vbuffer.buffer.resource, NULL);
|
||||
cso_set_vertex_buffers(cso, 1, true, &vbuffer);
|
||||
cso_set_fragment_shader_handle(hud->cso, hud->fs_color);
|
||||
cso_draw_arrays(cso, prim, 0, num_vertices);
|
||||
}
|
||||
|
|
@ -601,21 +600,25 @@ 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, 1, false, &hud->bg.vbuf);
|
||||
cso_set_vertex_buffers(cso, 1, true, &hud->bg.vbuf);
|
||||
cso_draw_arrays(cso, MESA_PRIM_QUADS, 0, hud->bg.num_vertices);
|
||||
hud->bg.vbuf.buffer.resource = NULL;
|
||||
} else {
|
||||
pipe_resource_reference(&hud->bg.vbuf.buffer.resource, NULL);
|
||||
}
|
||||
pipe_resource_reference(&hud->bg.vbuf.buffer.resource, NULL);
|
||||
|
||||
/* draw accumulated vertices for text */
|
||||
if (hud->text.num_vertices) {
|
||||
cso_set_vertex_shader_handle(cso, hud->vs_text);
|
||||
cso_set_vertex_elements(cso, &hud->text_velems);
|
||||
cso_set_vertex_buffers(cso, 1, false, &hud->text.vbuf);
|
||||
cso_set_vertex_buffers(cso, 1, true, &hud->text.vbuf);
|
||||
cso_set_fragment_shader_handle(hud->cso, hud->fs_text);
|
||||
cso_draw_arrays(cso, MESA_PRIM_QUADS, 0, hud->text.num_vertices);
|
||||
cso_set_vertex_elements(cso, &hud->velems);
|
||||
hud->text.vbuf.buffer.resource = NULL;
|
||||
} else {
|
||||
pipe_resource_reference(&hud->text.vbuf.buffer.resource, NULL);
|
||||
}
|
||||
pipe_resource_reference(&hud->text.vbuf.buffer.resource, NULL);
|
||||
|
||||
if (hud->simple)
|
||||
goto done;
|
||||
|
|
@ -635,11 +638,13 @@ 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, 1, false, &hud->whitelines.vbuf);
|
||||
cso_set_vertex_buffers(cso, 1, true, &hud->whitelines.vbuf);
|
||||
cso_set_fragment_shader_handle(hud->cso, hud->fs_color);
|
||||
cso_draw_arrays(cso, MESA_PRIM_LINES, 0, hud->whitelines.num_vertices);
|
||||
hud->whitelines.vbuf.buffer.resource = NULL;
|
||||
} else {
|
||||
pipe_resource_reference(&hud->whitelines.vbuf.buffer.resource, NULL);
|
||||
}
|
||||
pipe_resource_reference(&hud->whitelines.vbuf.buffer.resource, NULL);
|
||||
|
||||
/* draw the rest */
|
||||
cso_set_blend(cso, &hud->alpha_blend);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue