From 599920e06fffaf7c5fa8218a508007172a6086ce Mon Sep 17 00:00:00 2001 From: ziga-lunarg <87310389+ziga-lunarg@users.noreply.github.com> Date: Wed, 25 Dec 2024 11:20:24 +0200 Subject: [PATCH] Set pipeline to VK_NULL_HANDLE when fail on compile isnt supported (#1938) --- .../encode/custom_vulkan_api_call_encoders.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/framework/encode/custom_vulkan_api_call_encoders.cpp b/framework/encode/custom_vulkan_api_call_encoders.cpp index e0b93caff9..c3d57f2081 100644 --- a/framework/encode/custom_vulkan_api_call_encoders.cpp +++ b/framework/encode/custom_vulkan_api_call_encoders.cpp @@ -504,6 +504,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateGraphicsPipelines(VkDevice { if (pCreateInfos[i].flags & VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT) { + for (uint32_t j = 0; j < createInfoCount; ++j) + { + pPipelines[j] = VK_NULL_HANDLE; + } VulkanCaptureManager::Get()->WriteAnnotation( format::AnnotationType::kText, format::kAnnotationPipelineCreationAttempt, ""); GFXRECON_LOG_WARNING( @@ -595,6 +599,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateComputePipelines(VkDevice { if (pCreateInfos[i].flags & VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT) { + for (uint32_t j = 0; j < createInfoCount; ++j) + { + pPipelines[j] = VK_NULL_HANDLE; + } VulkanCaptureManager::Get()->WriteAnnotation( format::AnnotationType::kText, format::kAnnotationPipelineCreationAttempt, ""); GFXRECON_LOG_WARNING( @@ -686,6 +694,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateRayTracingPipelinesNV(VkDevice { if (pCreateInfos[i].flags & VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT) { + for (uint32_t j = 0; j < createInfoCount; ++j) + { + pPipelines[j] = VK_NULL_HANDLE; + } VulkanCaptureManager::Get()->WriteAnnotation( format::AnnotationType::kText, format::kAnnotationPipelineCreationAttempt, ""); GFXRECON_LOG_WARNING( @@ -780,6 +792,10 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateRayTracingPipelinesKHR(VkDevice { if (pCreateInfos[i].flags & VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT) { + for (uint32_t j = 0; j < createInfoCount; ++j) + { + pPipelines[j] = VK_NULL_HANDLE; + } VulkanCaptureManager::Get()->WriteAnnotation( format::AnnotationType::kText, format::kAnnotationPipelineCreationAttempt, ""); GFXRECON_LOG_WARNING(