diff options
author | Alejandro PiƱeiro <apinheiro@igalia.com> | 2019-12-18 15:38:21 +0100 |
---|---|---|
committer | Marge Bot <eric+marge@anholt.net> | 2020-10-13 21:21:26 +0000 |
commit | fca4dcee9f23af036ff2094406c91c46c34ced8d (patch) | |
tree | 8ffc4b32ba04108b8cd02d21a05df8328e4f181c | |
parent | 60145629a2bdcd4e7835b1dd810b9f60bfa9af83 (diff) |
v3dv: initial stub for CmdBindPipeline
Right now it only sets the pipeline to the command buffer state.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6766>
-rw-r--r-- | src/broadcom/vulkan/v3dv_cmd_buffer.c | 27 | ||||
-rw-r--r-- | src/broadcom/vulkan/v3dv_private.h | 2 |
2 files changed, 29 insertions, 0 deletions
diff --git a/src/broadcom/vulkan/v3dv_cmd_buffer.c b/src/broadcom/vulkan/v3dv_cmd_buffer.c index 5436dfe040d..aa8a71cda28 100644 --- a/src/broadcom/vulkan/v3dv_cmd_buffer.c +++ b/src/broadcom/vulkan/v3dv_cmd_buffer.c @@ -884,3 +884,30 @@ v3dv_EndCommandBuffer(VkCommandBuffer commandBuffer) return VK_SUCCESS; } + + +void +v3dv_CmdBindPipeline(VkCommandBuffer commandBuffer, + VkPipelineBindPoint pipelineBindPoint, + VkPipeline _pipeline) +{ + V3DV_FROM_HANDLE(v3dv_cmd_buffer, cmd_buffer, commandBuffer); + V3DV_FROM_HANDLE(v3dv_pipeline, pipeline, _pipeline); + + switch (pipelineBindPoint) { + case VK_PIPELINE_BIND_POINT_COMPUTE: + assert(!"VK_PIPELINE_BIND_POINT_COMPUTE not supported yet"); + break; + + case VK_PIPELINE_BIND_POINT_GRAPHICS: + if (cmd_buffer->state.pipeline == pipeline) + return; + + cmd_buffer->state.pipeline = pipeline; + break; + + default: + assert(!"invalid bind point"); + break; + } +} diff --git a/src/broadcom/vulkan/v3dv_private.h b/src/broadcom/vulkan/v3dv_private.h index 32c96c0dcc5..3633756ba42 100644 --- a/src/broadcom/vulkan/v3dv_private.h +++ b/src/broadcom/vulkan/v3dv_private.h @@ -389,6 +389,8 @@ struct v3dv_cmd_buffer_state { /* Subpass state */ uint32_t subpass_idx; struct v3dv_cmd_buffer_attachment_state attachments[6]; /* 4 color + D + S */ + + struct v3dv_pipeline *pipeline; }; struct v3dv_cmd_buffer { |