dzn: Support vkCmdDispatchBase
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20823>
This commit is contained in:
@@ -4080,16 +4080,22 @@ dzn_CmdClearDepthStencilImage(VkCommandBuffer commandBuffer,
|
|||||||
}
|
}
|
||||||
|
|
||||||
VKAPI_ATTR void VKAPI_CALL
|
VKAPI_ATTR void VKAPI_CALL
|
||||||
dzn_CmdDispatch(VkCommandBuffer commandBuffer,
|
dzn_CmdDispatchBase(VkCommandBuffer commandBuffer,
|
||||||
uint32_t groupCountX,
|
uint32_t baseGroupX,
|
||||||
uint32_t groupCountY,
|
uint32_t baseGroupY,
|
||||||
uint32_t groupCountZ)
|
uint32_t baseGroupZ,
|
||||||
|
uint32_t groupCountX,
|
||||||
|
uint32_t groupCountY,
|
||||||
|
uint32_t groupCountZ)
|
||||||
{
|
{
|
||||||
VK_FROM_HANDLE(dzn_cmd_buffer, cmdbuf, commandBuffer);
|
VK_FROM_HANDLE(dzn_cmd_buffer, cmdbuf, commandBuffer);
|
||||||
|
|
||||||
cmdbuf->state.sysvals.compute.group_count_x = groupCountX;
|
cmdbuf->state.sysvals.compute.group_count_x = groupCountX;
|
||||||
cmdbuf->state.sysvals.compute.group_count_y = groupCountY;
|
cmdbuf->state.sysvals.compute.group_count_y = groupCountY;
|
||||||
cmdbuf->state.sysvals.compute.group_count_z = groupCountZ;
|
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 |=
|
cmdbuf->state.bindpoint[VK_PIPELINE_BIND_POINT_COMPUTE].dirty |=
|
||||||
DZN_CMD_BINDPOINT_DIRTY_SYSVALS;
|
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_x = 0;
|
||||||
cmdbuf->state.sysvals.compute.group_count_y = 0;
|
cmdbuf->state.sysvals.compute.group_count_y = 0;
|
||||||
cmdbuf->state.sysvals.compute.group_count_z = 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 |=
|
cmdbuf->state.bindpoint[VK_PIPELINE_BIND_POINT_COMPUTE].dirty |=
|
||||||
DZN_CMD_BINDPOINT_DIRTY_SYSVALS;
|
DZN_CMD_BINDPOINT_DIRTY_SYSVALS;
|
||||||
|
|
||||||
|
@@ -250,6 +250,7 @@ dzn_pipeline_get_nir_shader(struct dzn_device *device,
|
|||||||
.base_shader_register = 0,
|
.base_shader_register = 0,
|
||||||
},
|
},
|
||||||
.zero_based_vertex_instance_id = false,
|
.zero_based_vertex_instance_id = false,
|
||||||
|
.zero_based_compute_workgroup_id = false,
|
||||||
.yz_flip = {
|
.yz_flip = {
|
||||||
.mode = options->yz_flip_mode,
|
.mode = options->yz_flip_mode,
|
||||||
.y_mask = options->y_flip_mask,
|
.y_mask = options->y_flip_mask,
|
||||||
|
Reference in New Issue
Block a user