From 01c22afa37a0d1bfff6d56742f0c06e5eb82e449 Mon Sep 17 00:00:00 2001 From: John Kessenich Date: Fri, 8 Nov 2013 07:13:18 +0000 Subject: [PATCH] Add some missing invariant semantic checks, replace some misplaced sampler semantic checks, add parameter and structure member checks against new qualifiers. git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23962 e7fa87d3-cd2b-0410-9028-fcbf551c1848 --- Install/Windows/glslangValidator.exe | Bin 382464 -> 384512 bytes Test/100.frag | 33 ++++++ Test/300.frag | 16 ++- Test/300.vert | 14 +++ Test/430.vert | 16 +++ Test/baseResults/100.frag.out | 34 +++++- Test/baseResults/300.frag.out | 44 ++++++-- Test/baseResults/300.vert.out | 14 ++- Test/baseResults/430.vert.out | 16 ++- Test/baseResults/specExamples.frag.out | 4 +- glslang/Include/Types.h | 4 +- glslang/MachineIndependent/ParseHelper.cpp | 120 +++++++++++++++------ glslang/MachineIndependent/ParseHelper.h | 8 +- glslang/MachineIndependent/SymbolTable.cpp | 4 +- glslang/MachineIndependent/glslang.y | 13 ++- 15 files changed, 283 insertions(+), 57 deletions(-) diff --git a/Install/Windows/glslangValidator.exe b/Install/Windows/glslangValidator.exe index 600014cd9c6291b3989a5a15f7e3316a4e576085..6e5c328c8fd66e952f8b8965205d24baf1332abd 100644 GIT binary patch delta 124732 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 z

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 Y3DsNjl|m(-RwT{M+ga_Tb6)lT1D04}OaK4? delta 122857 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 z%0A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 diff --git a/Test/100.frag b/Test/100.frag index 529b3600..61107c2b 100644 --- a/Test/100.frag +++ b/Test/100.frag @@ -43,3 +43,36 @@ void main() invariant gl_FragColor; float fa[]; // ERROR +float f13; +invariant f13; // ERROR +struct S { int a; }; +invariant S; +invariant float fi; // ERROR +varying vec4 av; +invariant av; // okay in v100 + +void foo10() +{ + invariant f; // ERROR + invariant float f2; // ERROR + float f3; + invariant f3; // ERROR +} + +uniform vec2 uv2; +invariant uv2; // ERROR +invariant uniform vec3 uv3; // ERROR + +sampler2D glob2D; // ERROR +void f11(sampler2D p2d) +{ + sampler2D v2D; // ERROR +} +varying sampler2D vary2D; // ERROR + +struct sp { + highp float f; + in float g; // ERROR + uniform float h; // ERROR + invariant float i; // ERROR +}; diff --git a/Test/300.frag b/Test/300.frag index d63c81e2..30343992 100644 --- a/Test/300.frag +++ b/Test/300.frag @@ -36,7 +36,7 @@ struct s { sampler2D s; }; -out s badout; // ERROR +in s badout; // ERROR, can't contain a sampler struct S2 { vec3 c; @@ -108,7 +108,19 @@ out vec4 colors[4]; void foo() { colors[2] = c4D; - colors[ic1D] = c4D; + colors[ic1D] = c4D; // ERROR +} + +uniform s st1; +uniform s st2; + +void foo13(s inSt2) +{ + if (st1 == st2); // ERROR + if (st1 != st2); // ERROR + st1.s == st2.s; // ERROR + inSt2 = st1; // ERROR + inSt2 == st1; // ERROR } float imageBuffer; // ERROR, reserved diff --git a/Test/300.vert b/Test/300.vert index 7f5f3268..01ececec 100644 --- a/Test/300.vert +++ b/Test/300.vert @@ -66,3 +66,17 @@ uniform ub { } ubInst[]; // ERROR void foo(int a[]); // ERROR float okayA[] = float[](3.0, 4.0); // Okay + +out vec3 newV; +void newVFun() +{ + newV = v3; +} + +invariant newV; // ERROR, variable already used +in vec4 invIn; +invariant invIn; // ERROR, in v300 +out S s2; +invariant s2; +invariant out S s3; +flat out int; diff --git a/Test/430.vert b/Test/430.vert index 54cf775a..6912fb4e 100644 --- a/Test/430.vert +++ b/Test/430.vert @@ -15,3 +15,19 @@ void foo() { gl_ClipDistance[2] = 3.7; } + +struct sp { + highp float f; + in float g; // ERROR + uniform float h; // ERROR + invariant float i; // ERROR + volatile float j; // ERROR + layout(row_major) mat3 m3; // ERROR +}; + +void foo3(invariant vec4 v4, // ERROR + volatile vec3 v3, + layout(location = 3) vec2 v2, // ERROR + centroid vec3 cv3) // ERROR +{ +} \ No newline at end of file diff --git a/Test/baseResults/100.frag.out b/Test/baseResults/100.frag.out index 5c376eba..8c7b64fa 100644 --- a/Test/baseResults/100.frag.out +++ b/Test/baseResults/100.frag.out @@ -20,7 +20,27 @@ ERROR: 0:38: 'array comparison' : not supported for this version or the enabled ERROR: 0:40: 'switch' : Reserved word. ERROR: 0:40: 'switch statements' : not supported for this version or the enabled extensions ERROR: 0:45: '' : array size required -ERROR: 22 compilation errors. No code generated. +ERROR: 0:47: 'invariant' : can only apply to an output or an input in a non-vertex stage + +ERROR: 0:50: 'invariant' : can only apply to an output or an input in a non-vertex stage + +ERROR: 0:56: 'invariant' : can only apply to an output or an input in a non-vertex stage + +ERROR: 0:57: 'invariant' : can only apply to an output or an input in a non-vertex stage + +ERROR: 0:59: 'invariant' : can only apply to an output or an input in a non-vertex stage + +ERROR: 0:63: 'invariant' : can only apply to an output or an input in a non-vertex stage + +ERROR: 0:64: 'invariant' : can only apply to an output or an input in a non-vertex stage + +ERROR: 0:66: 'sampler2D' : sampler/image types can only be used in uniform variables or function parameters: glob2D +ERROR: 0:69: 'sampler2D' : sampler/image types can only be used in uniform variables or function parameters: v2D +ERROR: 0:71: 'sampler2D' : sampler/image types can only be used in uniform variables or function parameters: vary2D +ERROR: 0:75: 'g' : cannot use storage or interpolation qualifiers on structure members +ERROR: 0:76: 'h' : cannot use storage or interpolation qualifiers on structure members +ERROR: 0:77: 'i' : cannot use invariant qualifier on structure members +ERROR: 35 compilation errors. No code generated. ERROR: node is still EOpNull! 0:3 Sequence @@ -96,6 +116,11 @@ ERROR: node is still EOpNull! 0:38 's2' (structure{f,a}) 0:38 true case is null 0:40 'b' (mediump int) +0:54 Function Definition: foo10( (void) +0:54 Function Parameters: +0:67 Function Definition: f11(s21; (void) +0:67 Function Parameters: +0:67 'p2d' (in lowp sampler2D) 0:? Linker Objects 0:? 'a' (3-element array of mediump int) 0:? 'uint' (mediump int) @@ -103,4 +128,11 @@ ERROR: node is still EOpNull! 0:? 'f' (mediump float) 0:? '__anon__0' (layout(column_major shared ) uniform block{x}) 0:? 'fa' (unsized array of mediump float) +0:? 'f13' (mediump float) +0:? 'fi' (invariant mediump float) +0:? 'av' (smooth in mediump 4-component vector of float) +0:? 'uv2' (uniform mediump 2-component vector of float) +0:? 'uv3' (invariant uniform mediump 3-component vector of float) +0:? 'glob2D' (lowp sampler2D) +0:? 'vary2D' (smooth in lowp sampler2D) diff --git a/Test/baseResults/300.frag.out b/Test/baseResults/300.frag.out index 2e0d6575..622033d0 100644 --- a/Test/baseResults/300.frag.out +++ b/Test/baseResults/300.frag.out @@ -1,8 +1,8 @@ ERROR: 0:30: 'noperspective' : Reserved word. ERROR: 0:30: 'noperspective' : not supported with this profile: es -ERROR: 0:31: 'sampler/image' : samplers and images must be uniform +ERROR: 0:31: 'sampler2D' : sampler/image types can only be used in uniform variables or function parameters: bads ERROR: 0:32: 'uint' : cannot apply precision statement to this type; use 'float', 'int' or a sampler type -ERROR: 0:39: 'structure' : samplers and images must be uniform (structure cannot contain a sampler or image) +ERROR: 0:39: 'structure' : non-uniform struct contains a sampler or image: badout ERROR: 0:69: 'variable indexing sampler array' : not supported with this profile: es ERROR: 0:83: 'double' : Reserved word. ERROR: 0:83: 'double' : not supported with this profile: es @@ -18,9 +18,15 @@ ERROR: 0:102: 'arrays of arrays' : not supported with this profile: es ERROR: 0:103: 'arrays of arrays' : not supported with this profile: es ERROR: 0:100: 'arrays of arrays' : not supported with this profile: es ERROR: 0:111: 'variable indexing fragment shader ouput array' : not supported with this profile: es -ERROR: 0:114: 'imageBuffer' : Reserved word. -ERROR: 0:114: '' : syntax error -ERROR: 22 compilation errors. No code generated. +ERROR: 0:119: '==' : can't use with samplers or structs containing samplers +ERROR: 0:120: '!=' : can't use with samplers or structs containing samplers +ERROR: 0:121: '==' : can't use with samplers or structs containing samplers +ERROR: 0:121: '==' : wrong operand types: no operation '==' exists that takes a left-hand operand of type 'lowp sampler2D' and a right operand of type 'lowp sampler2D' (or there is no acceptable conversion) +ERROR: 0:122: '=' : can't use with samplers or structs containing samplers +ERROR: 0:123: '==' : can't use with samplers or structs containing samplers +ERROR: 0:126: 'imageBuffer' : Reserved word. +ERROR: 0:126: '' : syntax error +ERROR: 28 compilation errors. No code generated. ERROR: node is still EOpNull! 0:53 Function Definition: main( (void) @@ -223,6 +229,30 @@ ERROR: node is still EOpNull! 0:111 'colors' (out 4-element array of lowp 4-component vector of float) 0:111 'ic1D' (flat in mediump int) 0:111 'c4D' (smooth lowp 4-component vector of float) +0:117 Function Definition: foo13(struct-s-i1-s211; (void) +0:117 Function Parameters: +0:117 'inSt2' (in structure{i,s}) +0:119 Sequence +0:119 Test condition and select (void) +0:119 Condition +0:119 Compare Equal (bool) +0:119 'st1' (uniform structure{i,s}) +0:119 'st2' (uniform structure{i,s}) +0:119 true case is null +0:120 Test condition and select (void) +0:120 Condition +0:120 Compare Not Equal (bool) +0:120 'st1' (uniform structure{i,s}) +0:120 'st2' (uniform structure{i,s}) +0:120 true case is null +0:121 Constant: +0:121 false (const bool) +0:122 move second child to first child (structure{i,s}) +0:122 'inSt2' (in structure{i,s}) +0:122 'st1' (uniform structure{i,s}) +0:123 Compare Equal (bool) +0:123 'inSt2' (in structure{i,s}) +0:123 'st1' (uniform structure{i,s}) 0:? Linker Objects 0:? 's2D' (uniform lowp sampler2D) 0:? 's3D' (uniform lowp sampler3D) @@ -249,11 +279,13 @@ ERROR: node is still EOpNull! 0:? 'ic4D' (flat in mediump 4-component vector of int) 0:? 'badv' (noperspective in lowp 4-component vector of float) 0:? 'bads' (smooth in lowp sampler2D) -0:? 'badout' (out structure{i,s}) +0:? 'badout' (smooth in structure{i,s}) 0:? 's2' (smooth in structure{c,f}) 0:? 'sc' (out lowp 3-component vector of float) 0:? 'sf' (out lowp float) 0:? 'arrayedSampler' (uniform 5-element array of lowp sampler2D) 0:? 'multiInst' (layout(column_major shared ) uniform 2-element array of block{a,b,c}) 0:? 'colors' (out 4-element array of lowp 4-component vector of float) +0:? 'st1' (uniform structure{i,s}) +0:? 'st2' (uniform structure{i,s}) diff --git a/Test/baseResults/300.vert.out b/Test/baseResults/300.vert.out index 38826088..8000c70f 100644 --- a/Test/baseResults/300.vert.out +++ b/Test/baseResults/300.vert.out @@ -18,7 +18,9 @@ ERROR: 0:63: '' : array size required ERROR: 0:65: '' : array size required ERROR: 0:64: '' : array size required ERROR: 0:67: '' : array size required -ERROR: 20 compilation errors. No code generated. +ERROR: 0:78: 'invariant' : can only apply to an output + invIn +ERROR: 21 compilation errors. No code generated. ERROR: node is still EOpNull! 0:27 Function Definition: main( (void) @@ -136,6 +138,12 @@ ERROR: node is still EOpNull! 0:68 Constant: 0:68 3.000000 0:68 4.000000 +0:71 Function Definition: newVFun( (void) +0:71 Function Parameters: +0:73 Sequence +0:73 move second child to first child (highp 3-component vector of float) +0:73 'newV' (smooth out highp 3-component vector of float) +0:73 'v3' (in highp 3-component vector of float) 0:? Linker Objects 0:? 'm43' (uniform highp 4X3 matrix of float) 0:? 'm33' (uniform highp 3X3 matrix of float) @@ -155,6 +163,10 @@ ERROR: node is still EOpNull! 0:? 'badsize2' (unsized array of highp float) 0:? 'ubInst' (layout(column_major shared ) uniform unsized array of block{a}) 0:? 'okayA' (2-element array of highp float) +0:? 'newV' (smooth out highp 3-component vector of float) +0:? 'invIn' (in highp 4-component vector of float) +0:? 's2' (smooth out structure{c,f}) +0:? 's3' (invariant smooth out structure{c,f}) 0:? 'gl_VertexID' (gl_VertexId highp int) 0:? 'gl_InstanceID' (gl_InstanceId highp int) diff --git a/Test/baseResults/430.vert.out b/Test/baseResults/430.vert.out index 166d0475..8500615f 100644 --- a/Test/baseResults/430.vert.out +++ b/Test/baseResults/430.vert.out @@ -2,7 +2,15 @@ Warning, version 430 is not yet complete; some version-specific features are pre ERROR: 0:3: 'v4' : location qualifiers only appy to uniform, buffer, in, or out storage qualifiers ERROR: 0:7: 'location qualifier on input block' : not supported for this version or the enabled extensions ERROR: 0:8: 'location qualifier on output block' : not supported for this version or the enabled extensions -ERROR: 3 compilation errors. No code generated. +ERROR: 0:21: 'g' : cannot use storage or interpolation qualifiers on structure members +ERROR: 0:22: 'h' : cannot use storage or interpolation qualifiers on structure members +ERROR: 0:23: 'i' : cannot use invariant qualifier on structure members +ERROR: 0:24: 'j' : cannot use memory qualifiers on structure members +ERROR: 0:25: 'm3' : cannot use layout qualifiers on structure members +ERROR: 0:28: '' : cannot use invariant qualifier on a function parameter +ERROR: 0:30: '' : cannot use layout qualifiers on a function parameter +ERROR: 0:31: '' : cannot use auxiliary or interpolation qualifiers on a function parameter +ERROR: 11 compilation errors. No code generated. ERROR: node is still EOpNull! 0:14 Function Definition: foo( (void) @@ -18,6 +26,12 @@ ERROR: node is still EOpNull! 0:16 2 (const int) 0:16 Constant: 0:16 3.700000 +0:31 Function Definition: foo3(vf4;vf3;vf2;vf3; (void) +0:31 Function Parameters: +0:31 'v4' (in 4-component vector of float) +0:31 'v3' (in 3-component vector of float) +0:31 'v2' (in 2-component vector of float) +0:31 'cv3' (in 3-component vector of float) 0:? Linker Objects 0:? 'v4' (layout(location=3 ) 4-component vector of float) 0:? 'uv4' (layout(location=3 ) uniform 4-component vector of float) diff --git a/Test/baseResults/specExamples.frag.out b/Test/baseResults/specExamples.frag.out index 19a1c155..f5afa450 100644 --- a/Test/baseResults/specExamples.frag.out +++ b/Test/baseResults/specExamples.frag.out @@ -3,6 +3,8 @@ ERROR: 0:6: '=' : cannot convert from 'const uint' to 'int' ERROR: 0:20: '' : numeric literal too big ERROR: 0:21: '' : hexidecimal literal too big ERROR: 0:37: 'view' : redefinition +ERROR: 0:63: 'invariant' : can only apply to an output + Color ERROR: 0:68: 'lightPosition' : redefinition ERROR: 0:75: 'Atten' : member storage qualifier cannot contradict block storage qualifier ERROR: 0:87: 'Color' : redefinition @@ -46,7 +48,7 @@ ERROR: 0:226: 'in' : not allowed in nested scope ERROR: 0:227: 'in' : not allowed in nested scope ERROR: 0:228: 'in' : not allowed in nested scope ERROR: 0:232: 'out' : not allowed in nested scope -ERROR: 47 compilation errors. No code generated. +ERROR: 48 compilation errors. No code generated. gl_FragCoord pixel center is integer gl_FragCoord origin is upper left diff --git a/glslang/Include/Types.h b/glslang/Include/Types.h index 8edf8bd9..330df775 100644 --- a/glslang/Include/Types.h +++ b/glslang/Include/Types.h @@ -768,7 +768,7 @@ public: *p = 0; TString s(buf); - s.append(getCompleteTypeString()); + s.append(getBasicTypeString()); // Add struct/block members if (structure) { @@ -784,7 +784,7 @@ public: return s; } - TString getCompleteTypeString() const + TString getBasicTypeString() const { if (basicType == EbtSampler) return sampler.getString(); diff --git a/glslang/MachineIndependent/ParseHelper.cpp b/glslang/MachineIndependent/ParseHelper.cpp index d21d95dd..565abba2 100644 --- a/glslang/MachineIndependent/ParseHelper.cpp +++ b/glslang/MachineIndependent/ParseHelper.cpp @@ -415,7 +415,7 @@ TIntermTyped* TParseContext::handleVariable(TSourceLoc loc, TSymbol* symbol, TSt TType* type; if (variable->isReadOnly()) { type = new TType; - // break sharing with built-ins + // break type sharing with built-ins type->deepCopy(variable->getType()); // track use of unredeclared gl_FragCoord @@ -477,7 +477,7 @@ TIntermTyped* TParseContext::handleBracketDereference(TSourceLoc loc, TIntermTyp error(loc, "", "[", "array must be redeclared with a size before being indexed with a variable"); if (base->getBasicType() == EbtBlock) requireProfile(base->getLoc(), ~EEsProfile, "variable indexing block array"); - else if (language == EShLangFragment && base->getQualifier().storage == EvqVaryingOut) + else if (language == EShLangFragment && base->getQualifier().isPipeOutput()) requireProfile(base->getLoc(), ~EEsProfile, "variable indexing fragment shader ouput array"); else if (base->getBasicType() == EbtSampler && version >= 130) { const char* explanation = "variable indexing sampler array"; @@ -720,7 +720,7 @@ TFunction* TParseContext::handleFunctionDeclarator(TSourceLoc loc, TFunction& fu const TFunction* prevDec = symbol ? symbol->getAsFunction() : 0; if (prevDec) { if (prevDec->getType() != function.getType()) { - error(loc, "overloaded functions must have the same return type", function.getType().getCompleteTypeString().c_str(), ""); + error(loc, "overloaded functions must have the same return type", function.getType().getBasicTypeString().c_str(), ""); } for (int i = 0; i < prevDec->getParamCount(); ++i) { if ((*prevDec)[i].type->getQualifier().storage != function[i].type->getQualifier().storage) @@ -783,7 +783,7 @@ TIntermAggregate* TParseContext::handleFunctionPrototype(TSourceLoc loc, TFuncti if (function.getParamCount() > 0) error(loc, "function cannot take any parameter(s)", function.getName().c_str(), ""); if (function.getType().getBasicType() != EbtVoid) - error(loc, "", function.getType().getCompleteTypeString().c_str(), "main function cannot return a value"); + error(loc, "", function.getType().getBasicTypeString().c_str(), "main function cannot return a value"); intermediate.addMainCount(); } @@ -1495,23 +1495,15 @@ void TParseContext::boolCheck(TSourceLoc loc, const TPublicType& pType) error(loc, "boolean expression expected", "", ""); } -bool TParseContext::samplerErrorCheck(TSourceLoc loc, const TPublicType& pType, const char* reason) +void TParseContext::samplerCheck(TSourceLoc loc, const TType& type, const TString& identifier) { - if (pType.basicType == EbtStruct) { - if (containsSampler(*pType.userDef)) { - error(loc, reason, TType::getBasicString(pType.basicType), "(structure cannot contain a sampler or image)"); + if (type.getQualifier().storage == EvqUniform) + return; - return true; - } - - return false; - } else if (pType.basicType == EbtSampler) { - error(loc, reason, TType::getBasicString(pType.basicType), ""); - - return true; - } - - return false; + if (type.getBasicType() == EbtStruct && containsSampler(type)) + error(loc, "non-uniform struct contains a sampler or image:", type.getBasicTypeString().c_str(), identifier.c_str()); + else if (type.getBasicType() == EbtSampler && type.getQualifier().storage != EvqUniform) + error(loc, "sampler/image types can only be used in uniform variables or function parameters:", type.getBasicTypeString().c_str(), identifier.c_str()); } // @@ -1544,11 +1536,6 @@ void TParseContext::globalQualifierCheck(TSourceLoc loc, const TQualifier& quali if (! symbolTable.atGlobalLevel()) return; - // Do non-in/out error checks - - if (qualifier.storage != EvqUniform && samplerErrorCheck(loc, publicType, "samplers and images must be uniform")) - return; - if (qualifier.storage != EvqVaryingIn && qualifier.storage != EvqVaryingOut) return; @@ -1738,7 +1725,7 @@ void TParseContext::precisionQualifierCheck(TSourceLoc loc, TPublicType& publicT void TParseContext::parameterSamplerCheck(TSourceLoc loc, TStorageQualifier qualifier, const TType& type) { if ((qualifier == EvqOut || qualifier == EvqInOut) && type.getBasicType() != EbtStruct && type.getBasicType() == EbtSampler) - error(loc, "samplers cannot be output parameters", type.getCompleteTypeString().c_str(), ""); + error(loc, "samplers cannot be output parameters", type.getBasicTypeString().c_str(), ""); } bool TParseContext::containsSampler(const TType& type) @@ -2147,28 +2134,41 @@ bool TParseContext::redeclareBuiltinBlock(TSourceLoc loc, TTypeList& typeList, c return true; } -void TParseContext::paramCheck(TSourceLoc loc, const TStorageQualifier& qualifier, TType* type) +void TParseContext::paramCheckFix(TSourceLoc loc, const TStorageQualifier& qualifier, TType& type) { switch (qualifier) { case EvqConst: case EvqConstReadOnly: - type->getQualifier().storage = EvqConstReadOnly; + type.getQualifier().storage = EvqConstReadOnly; break; case EvqIn: case EvqOut: case EvqInOut: - type->getQualifier().storage = qualifier; + type.getQualifier().storage = qualifier; break; case EvqTemporary: - type->getQualifier().storage = EvqIn; + type.getQualifier().storage = EvqIn; break; default: - type->getQualifier().storage = EvqIn; - error(loc, "qualifier not allowed on function parameter", GetStorageQualifierString(qualifier), ""); + type.getQualifier().storage = EvqIn; + error(loc, "storage qualifier not allowed on function parameter", GetStorageQualifierString(qualifier), ""); break; } } +void TParseContext::paramCheckFix(TSourceLoc loc, const TQualifier& qualifier, TType& type) +{ + if (qualifier.isAuxiliary() || + qualifier.isInterpolation()) + error(loc, "cannot use auxiliary or interpolation qualifiers on a function parameter", "", ""); + if (qualifier.hasLayout()) + error(loc, "cannot use layout qualifiers on a function parameter", "", ""); + if (qualifier.invariant) + error(loc, "cannot use invariant qualifier on a function parameter", "", ""); + + paramCheckFix(loc, qualifier.storage, type); +} + void TParseContext::nestedBlockCheck(TSourceLoc loc) { if (structNestingLevel > 0) @@ -2192,6 +2192,33 @@ void TParseContext::arrayObjectCheck(TSourceLoc loc, const TType& type, const ch } } +void TParseContext::opaqueCheck(TSourceLoc loc, const TType& type, const char* op) +{ + if (containsSampler(type)) + error(loc, "can't use with samplers or structs containing samplers", op, ""); +} + +void TParseContext::structTypeCheck(TSourceLoc loc, TPublicType& publicType) +{ + TTypeList& typeList = *publicType.userDef->getStruct(); + + // fix and check for member storage qualifiers and types that don't belong within a structure + for (unsigned int member = 0; member < typeList.size(); ++member) { + TQualifier& memberQualifier = typeList[member].type->getQualifier(); + TSourceLoc memberLoc = typeList[member].loc; + if (memberQualifier.isAuxiliary() || + memberQualifier.isInterpolation() || + (memberQualifier.storage != EvqTemporary && memberQualifier.storage != EvqGlobal)) + error(memberLoc, "cannot use storage or interpolation qualifiers on structure members", typeList[member].type->getFieldName().c_str(), ""); + if (memberQualifier.isMemory()) + error(memberLoc, "cannot use memory qualifiers on structure members", typeList[member].type->getFieldName().c_str(), ""); + if (memberQualifier.hasLayout()) + error(memberLoc, "cannot use layout qualifiers on structure members", typeList[member].type->getFieldName().c_str(), ""); + if (memberQualifier.invariant) + error(memberLoc, "cannot use invariant qualifier on structure members", typeList[member].type->getFieldName().c_str(), ""); + } +} + // // See if this loop satisfies the limitations for ES 2.0 (version 100) for loops in Appendex A: // @@ -2738,6 +2765,9 @@ TIntermNode* TParseContext::declareVariable(TSourceLoc loc, TString& identifier, if (! initializer) nonInitConstCheck(loc, identifier, type); + invariantCheck(loc, type, identifier); + samplerCheck(loc, type, identifier); + // Pick up defaults if (! type.getQualifier().hasStream() && language == EShLangGeometry && type.getQualifier().storage == EvqVaryingOut) type.getQualifier().layoutStream = globalOutputDefaults.layoutStream; @@ -2775,6 +2805,9 @@ TIntermNode* TParseContext::declareVariable(TSourceLoc loc, TString& identifier, error(loc, "cannot change the type of", "redeclaration", symbol->getName().c_str()); } + if (! symbol) + return 0; + // Deal with initializer TIntermNode* initNode = 0; if (symbol && initializer) { @@ -2787,11 +2820,10 @@ TIntermNode* TParseContext::declareVariable(TSourceLoc loc, TString& identifier, } // look for errors/adjustments in layout qualifier use - if (symbol) - layoutTypeCheck(loc, *symbol); + layoutTypeCheck(loc, *symbol); // see if it's a linker-level object to track - if (symbol && newDeclaration && symbolTable.atGlobalLevel()) + if (newDeclaration && symbolTable.atGlobalLevel()) intermediate.addSymbolLinkageNode(linkage, *symbol); return initNode; @@ -3339,8 +3371,10 @@ void TParseContext::addQualifierToExisting(TSourceLoc loc, TQualifier qualifier, if (symbol->isReadOnly()) symbol = symbolTable.copyUp(symbol); - if (qualifier.invariant) + if (qualifier.invariant) { symbol->getWritableType().getQualifier().invariant = true; + invariantCheck(loc, symbol->getType(), identifier); + } } void TParseContext::addQualifierToExisting(TSourceLoc loc, TQualifier qualifier, TIdentifierList& identifiers) @@ -3349,6 +3383,22 @@ void TParseContext::addQualifierToExisting(TSourceLoc loc, TQualifier qualifier, addQualifierToExisting(loc, qualifier, *identifiers[i]); } +void TParseContext::invariantCheck(TSourceLoc loc, const TType& type, const TString& identifier) +{ + if (! type.getQualifier().invariant) + return; + + bool pipeOut = type.getQualifier().isPipeOutput(); + bool pipeIn = type.getQualifier().isPipeInput(); + if (version >= 300 || profile != EEsProfile && version >= 420) { + if (! pipeOut) + error(loc, "can only apply to an output\n", "invariant", identifier.c_str()); + } else { + if ((language == EShLangVertex && pipeIn) || (! pipeOut && ! pipeIn)) + error(loc, "can only apply to an output or an input in a non-vertex stage\n", "invariant", ""); + } +} + // // Updating default qualifier for the case of a declaration with just a qualifier, // no type, block, or identifier. diff --git a/glslang/MachineIndependent/ParseHelper.h b/glslang/MachineIndependent/ParseHelper.h index 7ff225d7..6ae64569 100644 --- a/glslang/MachineIndependent/ParseHelper.h +++ b/glslang/MachineIndependent/ParseHelper.h @@ -111,7 +111,7 @@ public: bool voidErrorCheck(TSourceLoc, const TString&, TBasicType); void boolCheck(TSourceLoc, const TIntermTyped*); void boolCheck(TSourceLoc, const TPublicType&); - bool samplerErrorCheck(TSourceLoc, const TPublicType& pType, const char* reason); + void samplerCheck(TSourceLoc, const TType&, const TString& identifier); void pipeInOutFix(TSourceLoc, TQualifier&); void globalQualifierCheck(TSourceLoc, const TQualifier&, const TPublicType&); bool structQualifierErrorCheck(TSourceLoc, const TPublicType& pType); @@ -124,10 +124,13 @@ public: bool containsSampler(const TType& type); TSymbol* redeclareBuiltinVariable(TSourceLoc, const TString&, const TQualifier&, const TShaderQualifiers&, bool& newDeclaration); bool redeclareBuiltinBlock(TSourceLoc, TTypeList& typeList, const TString& blockName, const TString* instanceName, TArraySizes* arraySizes); - void paramCheck(TSourceLoc, const TStorageQualifier&, TType* type); + void paramCheckFix(TSourceLoc, const TStorageQualifier&, TType& type); + void paramCheckFix(TSourceLoc, const TQualifier&, TType& type); void nestedBlockCheck(TSourceLoc); void nestedStructCheck(TSourceLoc); void arrayObjectCheck(TSourceLoc, const TType&, const char* op); + void opaqueCheck(TSourceLoc, const TType&, const char* op); + void structTypeCheck(TSourceLoc, TPublicType&); void inductiveLoopCheck(TSourceLoc, TIntermNode* init, TIntermLoop* loop); void inductiveLoopBodyCheck(TIntermNode*, int loopIndexId, TSymbolTable&); void constantIndexExpressionCheck(TIntermNode*); @@ -151,6 +154,7 @@ public: void declareBlock(TSourceLoc, TTypeList& typeList, const TString* instanceName = 0, TArraySizes* arraySizes = 0); void addQualifierToExisting(TSourceLoc, TQualifier, const TString& identifier); void addQualifierToExisting(TSourceLoc, TQualifier, TIdentifierList&); + void invariantCheck(TSourceLoc, const TType&, const TString& identifier); void updateStandaloneQualifierDefaults(TSourceLoc, const TPublicType&); void updateTypedDefaults(TSourceLoc, const TQualifier&, const TString* id); void wrapupSwitchSubsequence(TIntermAggregate* statements, TIntermNode* branchNode); diff --git a/glslang/MachineIndependent/SymbolTable.cpp b/glslang/MachineIndependent/SymbolTable.cpp index 2977a2e5..4c6cbcde 100644 --- a/glslang/MachineIndependent/SymbolTable.cpp +++ b/glslang/MachineIndependent/SymbolTable.cpp @@ -136,7 +136,7 @@ int TType::getStructSize() const void TVariable::dump(TInfoSink& infoSink) const { - infoSink.debug << getName().c_str() << ": " << type.getStorageQualifierString() << " " << type.getCompleteTypeString(); + infoSink.debug << getName().c_str() << ": " << type.getStorageQualifierString() << " " << type.getBasicTypeString(); if (type.isArray()) { infoSink.debug << "[0]"; } @@ -145,7 +145,7 @@ void TVariable::dump(TInfoSink& infoSink) const void TFunction::dump(TInfoSink& infoSink) const { - infoSink.debug << getName().c_str() << ": " << returnType.getCompleteTypeString() << " " << getMangledName().c_str() << "\n"; + infoSink.debug << getName().c_str() << ": " << returnType.getBasicTypeString() << " " << getMangledName().c_str() << "\n"; } void TAnonMember::dump(TInfoSink& TInfoSink) const diff --git a/glslang/MachineIndependent/glslang.y b/glslang/MachineIndependent/glslang.y index cd1966a2..bc7d0e27 100644 --- a/glslang/MachineIndependent/glslang.y +++ b/glslang/MachineIndependent/glslang.y @@ -552,6 +552,7 @@ equality_expression : relational_expression { $$ = $1; } | equality_expression EQ_OP relational_expression { parseContext.arrayObjectCheck($2.loc, $1->getType(), "array comparison"); + parseContext.opaqueCheck($2.loc, $1->getType(), "=="); $$ = parseContext.intermediate.addBinaryMath(EOpEqual, $1, $3, $2.loc); if ($$ == 0) { parseContext.binaryOpError($2.loc, "==", $1->getCompleteString(), $3->getCompleteString()); @@ -562,6 +563,7 @@ equality_expression } | equality_expression NE_OP relational_expression { parseContext.arrayObjectCheck($2.loc, $1->getType(), "array comparison"); + parseContext.opaqueCheck($2.loc, $1->getType(), "!="); $$ = parseContext.intermediate.addBinaryMath(EOpNotEqual, $1, $3, $2.loc); if ($$ == 0) { parseContext.binaryOpError($2.loc, "!=", $1->getCompleteString(), $3->getCompleteString()); @@ -664,6 +666,7 @@ assignment_expression : conditional_expression { $$ = $1; } | unary_expression assignment_operator assignment_expression { parseContext.arrayObjectCheck($2.loc, $1->getType(), "array assignment"); + parseContext.opaqueCheck($2.loc, $1->getType(), "="); parseContext.lValueErrorCheck($2.loc, "assign", $1); $$ = parseContext.intermediate.addAssign($2.op, $1, $3, $2.loc); if ($$ == 0) { @@ -921,13 +924,13 @@ parameter_declaration parseContext.checkNoShaderLayouts($1.loc, $1.shaderQualifiers); parseContext.parameterSamplerCheck($2.loc, $1.qualifier.storage, *$$.param.type); - parseContext.paramCheck($1.loc, $1.qualifier.storage, $$.param.type); + parseContext.paramCheckFix($1.loc, $1.qualifier, *$$.param.type); } | parameter_declarator { $$ = $1; parseContext.parameterSamplerCheck($1.loc, EvqIn, *$1.param.type); - parseContext.paramCheck($1.loc, EvqTemporary, $$.param.type); + parseContext.paramCheckFix($1.loc, EvqTemporary, *$$.param.type); } // // Without name @@ -939,13 +942,13 @@ parameter_declaration parseContext.checkNoShaderLayouts($1.loc, $1.shaderQualifiers); parseContext.parameterSamplerCheck($2.loc, $1.qualifier.storage, *$$.param.type); - parseContext.paramCheck($1.loc, $1.qualifier.storage, $$.param.type); + parseContext.paramCheckFix($1.loc, $1.qualifier, *$$.param.type); } | parameter_type_specifier { $$ = $1; parseContext.parameterSamplerCheck($1.loc, EvqIn, *$1.param.type); - parseContext.paramCheck($1.loc, EvqTemporary, $$.param.type); + parseContext.paramCheckFix($1.loc, EvqTemporary, *$$.param.type); } ; @@ -1015,6 +1018,7 @@ fully_specified_type : type_specifier { $$ = $1; + parseContext.globalQualifierCheck($1.loc, $1.qualifier, $$); if ($1.arraySizes) { parseContext.profileRequires($1.loc, ENoProfile, 120, GL_3DL_array_objects, "arrayed type"); parseContext.profileRequires($1.loc, EEsProfile, 300, 0, "arrayed type"); @@ -1950,6 +1954,7 @@ type_specifier_nonarray | struct_specifier { $$ = $1; $$.qualifier.storage = parseContext.symbolTable.atGlobalLevel() ? EvqGlobal : EvqTemporary; + parseContext.structTypeCheck($$.loc, $$); } | TYPE_NAME { //