int agggf(float f);\r
int agggf(float f); // ERROR, second prototype\r
\r
+varying struct SSS { float f; } s; // ERROR\r
+\r
uniform samplerExternalOES badExt; // syntax ERROR\r
S.x; // 'S' is now visible as a variable\r
}\r
}\r
+\r
+varying struct SSS { float f; } s; // ERROR\r
#else
#error GL_ES is not set
#endif
+
+in struct S { float f; } s; // ERROR
}\r
\r
layout(origin_upper_left, pixel_center_integer) in vec4 gl_FragCoord; // ERROR, declared after use\r
+\r
+in struct S { float f; } s;\r
int agggf(float f) { return 2; }
int agggf(float f);
+
+out struct Ssss { float f; } ssss;
ERROR: 0:167: 'highp' : overloaded functions must have the same parameter precision qualifiers for argument 2\r
ERROR: 0:170: 'multiple prototypes for same function' : not supported for this version or the enabled extensions \r
ERROR: 0:177: 'multiple prototypes for same function' : not supported for this version or the enabled extensions \r
-ERROR: 0:179: '' : syntax error\r
-ERROR: 61 compilation errors. No code generated.\r
+ERROR: 0:179: 'fragment-shader struct input' : not supported for this version or the enabled extensions \r
+ERROR: 0:181: '' : syntax error\r
+ERROR: 62 compilation errors. No code generated.\r
\r
\r
ERROR: node is still EOpNull!\r
0:? 'f123' (mediump float)\r
0:? 'f124' (mediump float)\r
0:? 'sCube' (uniform lowp samplerCube)\r
+0:? 's' (smooth in structure{f})\r
\r
\r
Linked fragment stage:\r
ERROR: 0:35: 'local function declaration' : not supported with this profile: es\r
ERROR: 0:54: 'z' : undeclared identifier \r
ERROR: 0:54: 'z' : redefinition \r
-ERROR: 8 compilation errors. No code generated.\r
+ERROR: 0:70: 'vertex-shader struct output' : not supported for this version or the enabled extensions \r
+ERROR: 9 compilation errors. No code generated.\r
\r
\r
ERROR: node is still EOpNull!\r
0:? Linker Objects\r
0:? 'b' (bool)\r
0:? 'tan' (highp float)\r
+0:? 's' (smooth out structure{f})\r
\r
\r
Linked vertex stage:\r
Warning, version 140 is not yet complete; most features are present, but a few are missing.\r
WARNING: 0:3: varying deprecated in version 130; may be removed in future release\r
ERROR: 0:17: '#error' : GL_ES is not set \r
-ERROR: 1 compilation errors. No code generated.\r
+ERROR: 0:20: 'fragment-shader struct input' : not supported for this version or the enabled extensions \r
+ERROR: 2 compilation errors. No code generated.\r
\r
\r
ERROR: node is still EOpNull!\r
0:? 'o' (out 4-component vector of float)\r
0:? 'gl_ClipDistance' (smooth in 5-element array of float)\r
0:? 'gl_ClipDistance' (smooth in 5-element array of float)\r
+0:? 's' (smooth in structure{f})\r
\r
\r
Linked fragment stage:\r
0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float)\r
0:? 'gl_FragCoord' (gl_FragCoord 4-component vector of float)\r
0:? 'foo' (smooth in 4-component vector of float)\r
+0:? 's' (smooth in structure{f})\r
\r
\r
Linked fragment stage:\r
0:? 's2DS' (uniform lowp sampler2DShadow)\r
0:? 's2DAS' (uniform lowp sampler2DArrayShadow)\r
0:? 'c2D' (in highp 2-component vector of float)\r
+0:? 'ssss' (smooth out structure{f})\r
0:? 'gl_VertexID' (gl_VertexId highp int)\r
0:? 'gl_InstanceID' (gl_InstanceId highp int)\r
\r
// source have to figure out how to create revision.h just to get a build\r
// going. However, if it is not updated, it can be a version behind.\r
\r
-#define GLSLANG_REVISION "24343"\r
-#define GLSLANG_DATE "2013/12/04 12:46:19"\r
+#define GLSLANG_REVISION "24347"\r
+#define GLSLANG_DATE "2013/12/04 13:08:16"\r
}
}
+ if (language == EShLangVertex && qualifier.storage == EvqVaryingOut) {
+ if (publicType.userDef) {
+ profileRequires(loc, EEsProfile, 300, 0, "vertex-shader struct output");
+ profileRequires(loc, ~EEsProfile, 150, 0, "vertex-shader struct output");
+ }
+ }
+
+ if (language == EShLangFragment && qualifier.storage == EvqVaryingIn) {
+ if (publicType.userDef) {
+ profileRequires(loc, EEsProfile, 300, 0, "fragment-shader struct input");
+ profileRequires(loc, ~EEsProfile, 150, 0, "fragment-shader struct input");
+ }
+ }
+
if (publicType.basicType == EbtInt || publicType.basicType == EbtUint || publicType.basicType == EbtDouble) {
profileRequires(loc, EEsProfile, 300, 0, "shader input/output");
if (! qualifier.flat) {