Module: Mesa Branch: main Commit: 2e04aeb1e5297bceb58d7400dcd38889a8fc0e80 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=2e04aeb1e5297bceb58d7400dcd38889a8fc0e80
Author: Samuel Pitoiset <[email protected]> Date: Thu Sep 8 15:01:51 2022 +0200 radv: capture RT pipelines from the SQTT layer They were just not recorded. Signed-off-by: Samuel Pitoiset <[email protected]> Reviewed-by: Bas Nieuwenhuizen <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18496> --- src/amd/vulkan/layers/radv_sqtt_layer.c | 35 +++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/src/amd/vulkan/layers/radv_sqtt_layer.c b/src/amd/vulkan/layers/radv_sqtt_layer.c index 27ded222a77..1d169b1159a 100644 --- a/src/amd/vulkan/layers/radv_sqtt_layer.c +++ b/src/amd/vulkan/layers/radv_sqtt_layer.c @@ -1160,6 +1160,41 @@ fail: return result; } +VKAPI_ATTR VkResult VKAPI_CALL +sqtt_CreateRayTracingPipelinesKHR(VkDevice _device, VkDeferredOperationKHR deferredOperation, + VkPipelineCache pipelineCache, uint32_t count, + const VkRayTracingPipelineCreateInfoKHR *pCreateInfos, + const VkAllocationCallbacks *pAllocator, VkPipeline *pPipelines) +{ + RADV_FROM_HANDLE(radv_device, device, _device); + VkResult result; + + result = radv_CreateRayTracingPipelinesKHR(_device, deferredOperation, pipelineCache, count, + pCreateInfos, pAllocator, pPipelines); + if (result != VK_SUCCESS) + return result; + + for (unsigned i = 0; i < count; i++) { + RADV_FROM_HANDLE(radv_pipeline, pipeline, pPipelines[i]); + + if (!pipeline) + continue; + + result = radv_register_pipeline(device, pipeline); + if (result != VK_SUCCESS) + goto fail; + } + + return VK_SUCCESS; + +fail: + for (unsigned i = 0; i < count; i++) { + sqtt_DestroyPipeline(_device, pPipelines[i], pAllocator); + pPipelines[i] = VK_NULL_HANDLE; + } + return result; +} + VKAPI_ATTR void VKAPI_CALL sqtt_DestroyPipeline(VkDevice _device, VkPipeline _pipeline, const VkAllocationCallbacks *pAllocator)
