summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/Vulkan/ShaderCompiler.cpp
diff options
context:
space:
mode:
authorTilka <tilkax@gmail.com>2021-08-06 21:48:31 +0100
committerGitHub <noreply@github.com>2021-08-06 21:48:31 +0100
commit5cd2160d436432c2900410a51f2a877e934ecf31 (patch)
tree2b9646014421eaf67027a908acfdd14934884693 /Source/Core/VideoBackends/Vulkan/ShaderCompiler.cpp
parent67c06cfc55b87016b2c23e2e9a78d97feba2e324 (diff)
parentd453390c4843adf01176e102c619490b61fafb3e (diff)
Merge pull request #9996 from OatmealDome/spirv-opsource
ShaderCompiler: Attach shader source code to SPIR-V
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