From 0bae7a307c26b97ef458b92b5a5152dd2f759574 Mon Sep 17 00:00:00 2001 From: Jesse Natalie Date: Wed, 11 Jan 2023 15:10:15 -0800 Subject: [PATCH] dzn: Support vkCmdDispatchBase Part-of: --- src/microsoft/vulkan/dzn_cmd_buffer.c | 17 +++++++++++++---- src/microsoft/vulkan/dzn_pipeline.c | 1 + 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/microsoft/vulkan/dzn_cmd_buffer.c b/src/microsoft/vulkan/dzn_cmd_buffer.c index 9e9d52792fd..508b3a6b84d 100644 --- a/src/microsoft/vulkan/dzn_cmd_buffer.c +++ b/src/microsoft/vulkan/dzn_cmd_buffer.c @@ -4080,16 +4080,22 @@ dzn_CmdClearDepthStencilImage(VkCommandBuffer commandBuffer, } VKAPI_ATTR void VKAPI_CALL -dzn_CmdDispatch(VkCommandBuffer commandBuffer, - uint32_t groupCountX, - uint32_t groupCountY, - uint32_t groupCountZ) +dzn_CmdDispatchBase(VkCommandBuffer commandBuffer, + uint32_t baseGroupX, + uint32_t baseGroupY, + uint32_t baseGroupZ, + uint32_t groupCountX, + uint32_t groupCountY, + uint32_t groupCountZ) { VK_FROM_HANDLE(dzn_cmd_buffer, cmdbuf, commandBuffer); cmdbuf->state.sysvals.compute.group_count_x = groupCountX; cmdbuf->state.sysvals.compute.group_count_y = groupCountY; cmdbuf->state.sysvals.compute.group_count_z = groupCountZ; + cmdbuf->state.sysvals.compute.base_group_x = baseGroupX; + cmdbuf->state.sysvals.compute.base_group_y = baseGroupY; + cmdbuf->state.sysvals.compute.base_group_z = baseGroupZ; cmdbuf->state.bindpoint[VK_PIPELINE_BIND_POINT_COMPUTE].dirty |= DZN_CMD_BINDPOINT_DIRTY_SYSVALS; @@ -5359,6 +5365,9 @@ dzn_CmdDispatchIndirect(VkCommandBuffer commandBuffer, cmdbuf->state.sysvals.compute.group_count_x = 0; cmdbuf->state.sysvals.compute.group_count_y = 0; cmdbuf->state.sysvals.compute.group_count_z = 0; + cmdbuf->state.sysvals.compute.base_group_x = 0; + cmdbuf->state.sysvals.compute.base_group_y = 0; + cmdbuf->state.sysvals.compute.base_group_z = 0; cmdbuf->state.bindpoint[VK_PIPELINE_BIND_POINT_COMPUTE].dirty |= DZN_CMD_BINDPOINT_DIRTY_SYSVALS; diff --git a/src/microsoft/vulkan/dzn_pipeline.c b/src/microsoft/vulkan/dzn_pipeline.c index 929c88f02f4..7603d0b6261 100644 --- a/src/microsoft/vulkan/dzn_pipeline.c +++ b/src/microsoft/vulkan/dzn_pipeline.c @@ -250,6 +250,7 @@ dzn_pipeline_get_nir_shader(struct dzn_device *device, .base_shader_register = 0, }, .zero_based_vertex_instance_id = false, + .zero_based_compute_workgroup_id = false, .yz_flip = { .mode = options->yz_flip_mode, .y_mask = options->y_flip_mask,