From 8986329d1e6769a3379bd4dbe2a17f034a35040e Mon Sep 17 00:00:00 2001 From: Jake Turner Date: Thu, 11 Jul 2024 07:04:11 +0100 Subject: [PATCH] nVidia Vk driver bug workaround for series 10 cards Series 10 cards do not support Mesh Shaders, according to Vulkan spec it should be valid to bind NULL shader objects to mesh stage even if the feature is not supported. --- renderdoc/driver/vulkan/vk_state.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/renderdoc/driver/vulkan/vk_state.cpp b/renderdoc/driver/vulkan/vk_state.cpp index 2a2c841b4..5116f7be1 100644 --- a/renderdoc/driver/vulkan/vk_state.cpp +++ b/renderdoc/driver/vulkan/vk_state.cpp @@ -415,6 +415,10 @@ void VulkanRenderState::BindShaderObjects(WrappedVulkan *vk, VkCommandBuffer cmd if(i == (uint32_t)ShaderStage::Compute) continue; + // Workaround for driver bug found in NVIDIA 10 series cards + if(i == (uint32_t)ShaderStage::Mesh && !vk->MeshShaders()) + continue; + const VkShaderStageFlagBits stage = (VkShaderStageFlagBits)(1 << (uint32_t)i); const VkShaderEXT shader = Unwrap(vk->GetResourceManager()->GetCurrentHandle(shaderObjects[i]));