dzn: Support vkCmdDispatchBase

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20823>
This commit is contained in:
Jesse Natalie
2023-01-11 15:10:15 -08:00
committed by Marge Bot
parent 296ad630db
commit 0bae7a307c
2 changed files with 14 additions and 4 deletions

View File

@@ -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;

View File

@@ -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,