From 6a761c2196b117f171ee564e1416f3f1b239aabb Mon Sep 17 00:00:00 2001 From: Friedrich Vock Date: Mon, 9 Dec 2024 20:03:03 +0100 Subject: [PATCH] Enable RT pipeline capture/replay feature alongside RT pipelines Required for using capture/replay shader handles. --- .../driver/vulkan/wrappers/vk_device_funcs.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/renderdoc/driver/vulkan/wrappers/vk_device_funcs.cpp b/renderdoc/driver/vulkan/wrappers/vk_device_funcs.cpp index 89752c239a..9ecec42b52 100644 --- a/renderdoc/driver/vulkan/wrappers/vk_device_funcs.cpp +++ b/renderdoc/driver/vulkan/wrappers/vk_device_funcs.cpp @@ -3364,6 +3364,19 @@ bool WrappedVulkan::Serialise_vkCreateDevice(SerialiserType &ser, VkPhysicalDevi VkPhysicalDeviceProperties2 availPropsBase = {VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2}; availPropsBase.pNext = &rayProps; ObjDisp(physicalDevice)->GetPhysicalDeviceProperties2(Unwrap(physicalDevice), &availPropsBase); + + if(ext->rayTracingPipeline && !avail.rayTracingPipelineShaderGroupHandleCaptureReplay) + { + SET_ERROR_RESULT(m_FailedReplayResult, ResultCode::APIHardwareUnsupported, + "Capture requires rayTracingPipeline support, which is available, but " + "rayTracingPipelineShaderGroupHandleCaptureReplay support is not " + "available which is required to replay\n" + "\n%s", + GetPhysDeviceCompatString(false, false).c_str()); + return false; + } + if(ext->rayTracingPipeline) + ext->rayTracingPipelineShaderGroupHandleCaptureReplay = VK_TRUE; } END_PHYS_EXT_CHECK(); }