diff --git a/src/amd/vulkan/radv_pipeline.c b/src/amd/vulkan/radv_pipeline.c index 4b3a1af89cd..738a9b1372d 100644 --- a/src/amd/vulkan/radv_pipeline.c +++ b/src/amd/vulkan/radv_pipeline.c @@ -5312,9 +5312,15 @@ VkResult radv_CreateGraphicsPipelines( if (r != VK_SUCCESS) { result = r; pPipelines[i] = VK_NULL_HANDLE; + + if (pCreateInfos[i].flags & VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT) + break; } } + for (; i < count; ++i) + pPipelines[i] = VK_NULL_HANDLE; + return result; } @@ -5487,9 +5493,15 @@ VkResult radv_CreateComputePipelines( if (r != VK_SUCCESS) { result = r; pPipelines[i] = VK_NULL_HANDLE; + + if (pCreateInfos[i].flags & VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT) + break; } } + for (; i < count; ++i) + pPipelines[i] = VK_NULL_HANDLE; + return result; }