gallium/hud: don't use user vertex buffers
This gains back some performance lost in the previous commit, by bypassing u_vbuf. Reviewed-by: Marek Olšák <marek.olsak@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5417>
This commit is contained in:
parent
7b86920ae2
commit
a3d07c4a35
|
@ -85,11 +85,14 @@ hud_draw_colored_prims(struct hud_context *hud, unsigned prim,
|
||||||
hud->constants.scale[1] = yscale * hud_scale;
|
hud->constants.scale[1] = yscale * hud_scale;
|
||||||
cso_set_constant_buffer(cso, PIPE_SHADER_VERTEX, 0, &hud->constbuf);
|
cso_set_constant_buffer(cso, PIPE_SHADER_VERTEX, 0, &hud->constbuf);
|
||||||
|
|
||||||
vbuffer.is_user_buffer = true;
|
u_upload_data(hud->pipe->stream_uploader, 0,
|
||||||
vbuffer.buffer.user = buffer;
|
num_vertices * 2 * sizeof(float), 16, buffer,
|
||||||
|
&vbuffer.buffer_offset, &vbuffer.buffer.resource);
|
||||||
|
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, &vbuffer);
|
||||||
|
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);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue