From c404214042718b648cc23bfaea46e25ce589f130 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Tue, 26 Jun 2018 21:16:19 +0200 Subject: [PATCH] Update glslang to latest as of 2016-06-26 --- GPU/Common/ShaderTranslation.cpp | 11 ++++++++++- ext/glslang | 2 +- ext/glslang-build/Android.mk | 1 + ext/glslang.vcxproj | 2 ++ ext/glslang.vcxproj.filters | 6 ++++++ 5 files changed, 20 insertions(+), 2 deletions(-) diff --git a/GPU/Common/ShaderTranslation.cpp b/GPU/Common/ShaderTranslation.cpp index 2614feb453..d0db2f34ac 100644 --- a/GPU/Common/ShaderTranslation.cpp +++ b/GPU/Common/ShaderTranslation.cpp @@ -242,7 +242,16 @@ bool TranslateShader(std::string *dest, ShaderLanguage destLang, TranslatedShade std::vector spirv; // Can't fail, parsing worked, "linking" worked. - glslang::GlslangToSpv(*program.getIntermediate(shaderStage), spirv); + glslang::SpvOptions options; + options.disableOptimizer = false; + options.optimizeSize = false; + options.generateDebugInfo = false; + glslang::GlslangToSpv(*program.getIntermediate(shaderStage), spirv, &options); + + // For whatever reason, with our config, the above outputs an invalid SPIR-V version, 0. + // Patch it up so spirv-cross accepts it. + spirv[1] = glslang::EShTargetSpv_1_0; + // Alright, step 1 done. Now let's take this SPIR-V shader and output in our desired format. diff --git a/ext/glslang b/ext/glslang index 2edde6665d..806af25f74 160000 --- a/ext/glslang +++ b/ext/glslang @@ -1 +1 @@ -Subproject commit 2edde6665d9a56ead5ea0e55b4e64d9a803e6164 +Subproject commit 806af25f749b4d7cd861eaebc32474b3a7d102c0 diff --git a/ext/glslang-build/Android.mk b/ext/glslang-build/Android.mk index 8bf8106ca0..47e232c5cf 100644 --- a/ext/glslang-build/Android.mk +++ b/ext/glslang-build/Android.mk @@ -9,6 +9,7 @@ LOCAL_ARM_MODE := arm LOCAL_SRC_FILES := \ ../glslang/glslang/GenericCodeGen/CodeGen.cpp \ ../glslang/glslang/GenericCodeGen/Link.cpp \ + ../glslang/glslang/MachineIndependent/attribute.cpp \ ../glslang/glslang/MachineIndependent/Constant.cpp \ ../glslang/glslang/MachineIndependent/glslang_tab.cpp \ ../glslang/glslang/MachineIndependent/InfoSink.cpp \ diff --git a/ext/glslang.vcxproj b/ext/glslang.vcxproj index 54b3581255..3711148daa 100644 --- a/ext/glslang.vcxproj +++ b/ext/glslang.vcxproj @@ -152,6 +152,7 @@ + @@ -207,6 +208,7 @@ + diff --git a/ext/glslang.vcxproj.filters b/ext/glslang.vcxproj.filters index af94d50565..d37c8c805e 100644 --- a/ext/glslang.vcxproj.filters +++ b/ext/glslang.vcxproj.filters @@ -137,6 +137,9 @@ HLSL + + glslang + @@ -290,6 +293,9 @@ HLSL + + glslang +