Module: Mesa Branch: main Commit: 81745da51fdce2527a1221ec81601135318aa831 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=81745da51fdce2527a1221ec81601135318aa831
Author: Konstantin Seurer <[email protected]> Date: Fri Apr 1 16:02:32 2022 +0200 radv: Implement vkCmdTraceRaysIndirectKHR Signed-off-by: Konstantin Seurer <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15712> --- src/amd/vulkan/radv_cmd_buffer.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/amd/vulkan/radv_cmd_buffer.c b/src/amd/vulkan/radv_cmd_buffer.c index ee3ad463c6c..f1e6fadd285 100644 --- a/src/amd/vulkan/radv_cmd_buffer.c +++ b/src/amd/vulkan/radv_cmd_buffer.c @@ -7681,7 +7681,22 @@ radv_CmdTraceRaysIndirectKHR(VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR *pCallableShaderBindingTable, VkDeviceAddress indirectDeviceAddress) { - unreachable("Unimplemented"); + RADV_FROM_HANDLE(radv_cmd_buffer, cmd_buffer, commandBuffer); + + assert(cmd_buffer->device->use_global_bo_list); + + const VkStridedDeviceAddressRegionKHR tables[] = { + *pRaygenShaderBindingTable, + *pMissShaderBindingTable, + *pHitShaderBindingTable, + *pCallableShaderBindingTable, + }; + + struct radv_dispatch_info info = {0}; + if (!radv_rt_set_args(cmd_buffer, tables, indirectDeviceAddress, &info)) + return; + + radv_rt_dispatch(cmd_buffer, &info); } static void
