From efc30ca723623f865f73c5067059529ca955c8f4 Mon Sep 17 00:00:00 2001 From: Jake Turner Date: Wed, 10 Jan 2024 11:29:13 +0000 Subject: [PATCH] VK Depth Overlay use non-stencil mask approach by default Only use stencil mask approach for depth exporting shaders. The stencil mask approach does not show discarded pixels as passing. --- renderdoc/driver/vulkan/vk_overlay.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/renderdoc/driver/vulkan/vk_overlay.cpp b/renderdoc/driver/vulkan/vk_overlay.cpp index 05f964bdb..398cefd6b 100644 --- a/renderdoc/driver/vulkan/vk_overlay.cpp +++ b/renderdoc/driver/vulkan/vk_overlay.cpp @@ -1644,6 +1644,24 @@ ResourceId VulkanReplay::RenderOverlay(ResourceId texid, FloatVector clearCol, D if(overlay == DebugOverlay::Depth) useDepthWriteStencilPass = true; + if(useDepthWriteStencilPass) + { + useDepthWriteStencilPass = false; + const VulkanCreationInfo::Pipeline::Shader &ps = pipeInfo.shaders[4]; + if(ps.module != ResourceId()) + { + ShaderReflection *reflection = ps.refl; + if(reflection) + { + for(SigParameter &output : reflection->outputSignature) + { + if(output.systemValue == ShaderBuiltin::DepthOutput) + useDepthWriteStencilPass = true; + } + } + } + } + VkAttachmentDescription attDescs[] = { {0, overlayFormat, VK_SAMPLE_COUNT_1_BIT, VK_ATTACHMENT_LOAD_OP_LOAD, VK_ATTACHMENT_STORE_OP_STORE, VK_ATTACHMENT_LOAD_OP_DONT_CARE,