Use spvValidatorOptionsSetBeforeHlslLegalization for pre-legalized HLSL

This commit is contained in:
Jeff Bolz
2019-06-07 14:42:08 -05:00
parent d3692c701b
commit fd556e32b3
4 changed files with 8 additions and 5 deletions

View File

@@ -8090,11 +8090,14 @@ void GlslangToSpv(const TIntermediate& intermediate, std::vector<unsigned int>&
#if ENABLE_OPT
// If from HLSL, run spirv-opt to "legalize" the SPIR-V for Vulkan
// eg. forward and remove memory writes of opaque types.
if ((intermediate.getSource() == EShSourceHlsl || options->optimizeSize) && !options->disableOptimizer)
bool prelegalization = intermediate.getSource() == EShSourceHlsl;
if ((intermediate.getSource() == EShSourceHlsl || options->optimizeSize) && !options->disableOptimizer) {
SpirvToolsLegalize(intermediate, spirv, logger, options);
prelegalization = false;
}
if (options->validate)
SpirvToolsValidate(intermediate, spirv, logger);
SpirvToolsValidate(intermediate, spirv, logger, prelegalization);
if (options->disassemble)
SpirvToolsDisassemble(std::cout, spirv);