diff options
| author | OatmealDome <julian@oatmealdome.me> | 2021-08-04 21:45:38 -0400 |
|---|---|---|
| committer | OatmealDome <julian@oatmealdome.me> | 2021-08-05 03:04:18 -0400 |
| commit | d453390c4843adf01176e102c619490b61fafb3e (patch) | |
| tree | 2c08b98cbb3ece12f70edab08ba489f87ffcabce /Source/Core/VideoBackends/Vulkan/ShaderCompiler.cpp | |
| parent | 942545b7fca15a442c8dfa14b73c7227c13c8217 (diff) | |
ShaderCompiler: Attach source text to SPIR-V for debuggers like RenderDoc
Diffstat (limited to 'Source/Core/VideoBackends/Vulkan/ShaderCompiler.cpp')
| -rw-r--r-- | Source/Core/VideoBackends/Vulkan/ShaderCompiler.cpp | 16 |
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 |
