Mesa (main): lavapipe: Use the common BindVertexBuffers wrapper
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Fri May 20 02:33:44 UTC 2022
Module: Mesa
Branch: main
Commit: b58dd252aaa5b99ebae719018874994897ffd39b
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=b58dd252aaa5b99ebae719018874994897ffd39b
Author: Jason Ekstrand <jason.ekstrand at collabora.com>
Date: Thu May 19 11:12:46 2022 -0500
lavapipe: Use the common BindVertexBuffers wrapper
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16611>
---
src/gallium/frontends/lavapipe/lvp_execute.c | 61 +++++++---------------------
1 file changed, 15 insertions(+), 46 deletions(-)
diff --git a/src/gallium/frontends/lavapipe/lvp_execute.c b/src/gallium/frontends/lavapipe/lvp_execute.c
index 2253744778f..8519ce29106 100644
--- a/src/gallium/frontends/lavapipe/lvp_execute.c
+++ b/src/gallium/frontends/lavapipe/lvp_execute.c
@@ -964,56 +964,29 @@ static void handle_pipeline(struct vk_cmd_queue_entry *cmd,
state->push_size[pipeline->is_compute_pipeline] = pipeline->layout->push_constant_size;
}
-static void vertex_buffers(uint32_t first_binding,
- uint32_t binding_count,
- const VkBuffer *buffers,
- const VkDeviceSize *offsets,
- const VkDeviceSize *strides,
- struct rendering_state *state)
+static void handle_vertex_buffers2(struct vk_cmd_queue_entry *cmd,
+ struct rendering_state *state)
{
+ struct vk_cmd_bind_vertex_buffers2 *vcb = &cmd->u.bind_vertex_buffers2;
+
int i;
- for (i = 0; i < binding_count; i++) {
- int idx = i + first_binding;
+ for (i = 0; i < vcb->binding_count; i++) {
+ int idx = i + vcb->first_binding;
- state->vb[idx].buffer_offset = offsets[i];
- state->vb[idx].buffer.resource = buffers[i] ? lvp_buffer_from_handle(buffers[i])->bo : NULL;
+ state->vb[idx].buffer_offset = vcb->offsets[i];
+ state->vb[idx].buffer.resource =
+ vcb->buffers[i] ? lvp_buffer_from_handle(vcb->buffers[i])->bo : NULL;
- if (strides)
- state->vb[idx].stride = strides[i];
+ if (vcb->strides)
+ state->vb[idx].stride = vcb->strides[i];
}
- if (first_binding < state->start_vb)
- state->start_vb = first_binding;
- if (first_binding + binding_count >= state->num_vb)
- state->num_vb = first_binding + binding_count;
+ if (vcb->first_binding < state->start_vb)
+ state->start_vb = vcb->first_binding;
+ if (vcb->first_binding + vcb->binding_count >= state->num_vb)
+ state->num_vb = vcb->first_binding + vcb->binding_count;
state->vb_dirty = true;
}
-static void handle_vertex_buffers(struct vk_cmd_queue_entry *cmd,
- struct rendering_state *state)
-{
- struct vk_cmd_bind_vertex_buffers *vcb = &cmd->u.bind_vertex_buffers;
-
- vertex_buffers(vcb->first_binding,
- vcb->binding_count,
- vcb->buffers,
- vcb->offsets,
- NULL,
- state);
-}
-
-static void handle_vertex_buffers2(struct vk_cmd_queue_entry *cmd,
- struct rendering_state *state)
-{
- struct vk_cmd_bind_vertex_buffers2 *vcb = &cmd->u.bind_vertex_buffers2;
-
- vertex_buffers(vcb->first_binding,
- vcb->binding_count,
- vcb->buffers,
- vcb->offsets,
- vcb->strides,
- state);
-}
-
struct dyn_info {
struct {
uint16_t const_buffer_count;
@@ -3678,7 +3651,6 @@ void lvp_add_enqueue_cmd_entrypoints(struct vk_device_dispatch_table *disp)
ENQUEUE_CMD(CmdSetStencilReference)
ENQUEUE_CMD(CmdBindDescriptorSets)
ENQUEUE_CMD(CmdBindIndexBuffer)
- ENQUEUE_CMD(CmdBindVertexBuffers)
ENQUEUE_CMD(CmdBindVertexBuffers2)
ENQUEUE_CMD(CmdDraw)
ENQUEUE_CMD(CmdDrawMultiEXT)
@@ -3798,9 +3770,6 @@ static void lvp_execute_cmd_buffer(struct lvp_cmd_buffer *cmd_buffer,
case VK_CMD_BIND_INDEX_BUFFER:
handle_index_buffer(cmd, state);
break;
- case VK_CMD_BIND_VERTEX_BUFFERS:
- handle_vertex_buffers(cmd, state);
- break;
case VK_CMD_BIND_VERTEX_BUFFERS2:
handle_vertex_buffers2(cmd, state);
break;
More information about the mesa-commit
mailing list