From d453390c4843adf01176e102c619490b61fafb3e Mon Sep 17 00:00:00 2001 From: OatmealDome Date: Wed, 4 Aug 2021 21:45:38 -0400 Subject: ShaderCompiler: Attach source text to SPIR-V for debuggers like RenderDoc --- Source/Core/VideoBackends/Vulkan/ShaderCompiler.cpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'Source/Core/VideoBackends/Vulkan/ShaderCompiler.cpp') diff --git a/Source/Core/VideoBackends/Vulkan/ShaderCompiler.cpp b/Source/Core/VideoBackends/Vulkan/ShaderCompiler.cpp index f54bf7e4d2..a06cab771e 100644 --- a/Source/Core/VideoBackends/Vulkan/ShaderCompiler.cpp +++ b/Source/Core/VideoBackends/Vulkan/ShaderCompiler.cpp @@ -196,7 +196,21 @@ static std::optional CompileShaderToSPV(EShLanguage stage, SPIRVCodeVector out_code; spv::SpvBuildLogger logger; - glslang::GlslangToSpv(*intermediate, out_code, &logger); + glslang::SpvOptions options; + + if (g_ActiveConfig.bEnableValidationLayer) + { + // Attach the source code to the SPIR-V for tools like RenderDoc. + intermediate->addSourceText(pass_source_code, pass_source_code_length); + + options.generateDebugInfo = true; + options.disableOptimizer = true; + options.optimizeSize = false; + options.disassemble = false; + options.validate = true; + } + + glslang::GlslangToSpv(*intermediate, out_code, &logger, &options); // Write out messages // Temporary: skip if it contains "Warning, version 450 is not yet complete; most version-specific -- cgit v1.2.3