summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/Vulkan/ShaderCompiler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Core/VideoBackends/Vulkan/ShaderCompiler.cpp')
-rw-r--r--Source/Core/VideoBackends/Vulkan/ShaderCompiler.cpp16
1 files changed, 15 insertions, 1 deletions
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<SPIRVCodeVector> 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