Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Merge pull request #9996 from OatmealDome/spirv-opsource
ShaderCompiler: Attach shader source code to SPIR-V
  • Loading branch information
Tilka committed Aug 6, 2021
2 parents 67c06cf + d453390 commit 5cd2160
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 4 deletions.
6 changes: 3 additions & 3 deletions Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp
Expand Up @@ -203,9 +203,9 @@ void AdvancedWidget::AddDescriptions()
"unchecked.</dolphin_emphasis>");
static const char TR_VALIDATION_LAYER_DESCRIPTION[] =
QT_TR_NOOP("Enables validation of API calls made by the video backend, which may assist in "
"debugging graphical issues. On D3D backends, this also enables debug symbols "
"for the compiled shaders.<br><br><dolphin_emphasis>If unsure, leave this "
"unchecked.</dolphin_emphasis>");
"debugging graphical issues. On the Vulkan and D3D backends, this also enables "
"debug symbols for the compiled shaders.<br><br><dolphin_emphasis>If unsure, "
"leave this unchecked.</dolphin_emphasis>");
static const char TR_DUMP_TEXTURE_DESCRIPTION[] =
QT_TR_NOOP("Dumps decoded game textures based on the other flags to "
"User/Dump/Textures/&lt;game_id&gt;/.<br><br><dolphin_emphasis>If unsure, leave "
Expand Down
16 changes: 15 additions & 1 deletion Source/Core/VideoBackends/Vulkan/ShaderCompiler.cpp
Expand Up @@ -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
Expand Down

0 comments on commit 5cd2160

Please sign in to comment.