diff --git a/StandAlone/StandAlone.cpp b/StandAlone/StandAlone.cpp index 3620f60d..3a5fe558 100644 --- a/StandAlone/StandAlone.cpp +++ b/StandAlone/StandAlone.cpp @@ -216,7 +216,7 @@ int C_DECL main(int argc, char* argv[]) static EShLanguage FindLanguage(char *name) { if (!name) - return EShLangFragment; + return EShLangVertex; char *ext = strrchr(name, '.'); @@ -225,10 +225,9 @@ static EShLanguage FindLanguage(char *name) if (ext = strrchr(name, '.')) { if (strncmp(ext, ".frag", 4) == 0) return EShLangFragment; - if (strncmp(ext, ".vert", 4) == 0) return EShLangVertex; } - return EShLangFragment; + return EShLangVertex; } diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index e05c94fb..f2c77535 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -712,6 +712,7 @@ bool TParseContext::arraySizeErrorCheck(int line, TIntermTyped* expr, int& size) TIntermConstantUnion* constant = expr->getAsConstantUnion(); if (constant == 0 || constant->getBasicType() != EbtInt) { error(line, "array size must be a constant integer expression", "", ""); + size = 1; return true; } diff --git a/glslang/MachineIndependent/glslang.l b/glslang/MachineIndependent/glslang.l index 64f5cef1..66e3e689 100644 --- a/glslang/MachineIndependent/glslang.l +++ b/glslang/MachineIndependent/glslang.l @@ -181,6 +181,9 @@ TSourceLoc yylineno; "vec2" { pyylval->lex.line = yylineno; parseContext.lexAfterType = true; return (VEC2); } "vec3" { pyylval->lex.line = yylineno; parseContext.lexAfterType = true; return (VEC3); } "vec4" { pyylval->lex.line = yylineno; parseContext.lexAfterType = true; return (VEC4); } +"dvec2" { pyylval->lex.line = yylineno; parseContext.lexAfterType = true; return (DVEC2); } +"dvec3" { pyylval->lex.line = yylineno; parseContext.lexAfterType = true; return (DVEC3); } +"dvec4" { pyylval->lex.line = yylineno; parseContext.lexAfterType = true; return (DVEC4); } "ivec2" { pyylval->lex.line = yylineno; parseContext.lexAfterType = true; return (IVEC2); } "ivec3" { pyylval->lex.line = yylineno; parseContext.lexAfterType = true; return (IVEC3); } "ivec4" { pyylval->lex.line = yylineno; parseContext.lexAfterType = true; return (IVEC4); } @@ -301,9 +304,6 @@ TSourceLoc yylineno; "fvec2" { PaReservedWord(); return 0; } "fvec3" { PaReservedWord(); return 0; } "fvec4" { PaReservedWord(); return 0; } -"dvec2" { PaReservedWord(); return 0; } -"dvec3" { PaReservedWord(); return 0; } -"dvec4" { PaReservedWord(); return 0; } "sampler3DRect" { PaReservedWord(); return 0; } diff --git a/glslang/MachineIndependent/glslang.y b/glslang/MachineIndependent/glslang.y index a671aa92..4a43d10d 100644 --- a/glslang/MachineIndependent/glslang.y +++ b/glslang/MachineIndependent/glslang.y @@ -1598,6 +1598,8 @@ layout_qualifier_id } | IDENTIFIER EQUAL INTCONSTANT { } + | SHARED { + } ; precise_qualifier