From 9d09b965f5b8b1fd90dc24241b0fedf9779469ed Mon Sep 17 00:00:00 2001 From: Sandy Carter Date: Tue, 24 Sep 2019 19:31:12 +0200 Subject: [PATCH] shaderc_glsl: skip interp params when parsing glslopt output Keywords like `flat` qualify type names. Without skipping them, the parser will not find the type used and fail. --- tools/shaderc/shaderc_glsl.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/tools/shaderc/shaderc_glsl.cpp b/tools/shaderc/shaderc_glsl.cpp index 9af1e99ea..b77f9c9ed 100644 --- a/tools/shaderc/shaderc_glsl.cpp +++ b/tools/shaderc/shaderc_glsl.cpp @@ -125,6 +125,17 @@ namespace bgfx { namespace glsl continue; } + if (0 == bx::strCmp(qualifier, "flat", 4) + || 0 == bx::strCmp(qualifier, "smooth", 6) + || 0 == bx::strCmp(qualifier, "noperspective", 13) + || 0 == bx::strCmp(qualifier, "centroid", 8) + ) + { + // skip interpolation qualifiers + parse.set(eol.getPtr() + 1, parse.getTerm() ); + continue; + } + if (0 == bx::strCmp(parse, "tmpvar", 6) ) { // skip temporaries