Implement write-only semantic checking, the non-r32f/i/u readonly/writeonly check, and ES 3.1 support of volatile. Also, fix a typo in MaxComputeGroupY.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@27765 e7fa87d3-cd2b-0410-9028-fcbf551c1848
This commit is contained in:
parent
bd2d8fb004
commit
da66bc7d29
10 changed files with 595 additions and 154 deletions
|
|
@ -77,8 +77,8 @@ uniform iimage2DArray ii2dabad; // ERROR, not writeonly
|
|||
uniform writeonly iimage2DArray ii2da;
|
||||
|
||||
layout(r32i) uniform iimage2D iimg2D;
|
||||
layout(rgba32i) uniform iimage2D iimg2Drgba;
|
||||
layout(rgba32f) uniform image2D img2Drgba;
|
||||
layout(rgba32i) uniform readonly iimage2D iimg2Drgba;
|
||||
layout(rgba32f) uniform readonly image2D img2Drgba;
|
||||
layout(r32ui) uniform uimage2D uimg2D;
|
||||
|
||||
void qux()
|
||||
|
|
@ -111,12 +111,12 @@ void passrc()
|
|||
passr(iimg2D);
|
||||
}
|
||||
|
||||
layout(rg8i) uniform uimage2D i1bad; // ERROR, type mismatch
|
||||
layout(rgba32i) uniform image2D i2bad; // ERROR, type mismatch
|
||||
layout(rgba32f) uniform uimage2D i3bad; // ERROR, type mismatch
|
||||
layout(r8_snorm) uniform iimage2D i4bad; // ERROR, type mismatch
|
||||
layout(rgba32ui) uniform iimage2D i5bad; // ERROR, type mismatch
|
||||
layout(r8ui) uniform iimage2D i6bad; // ERROR, type mismatch
|
||||
layout(rg8i) uniform readonly uimage2D i1bad; // ERROR, type mismatch
|
||||
layout(rgba32i) uniform readonly image2D i2bad; // ERROR, type mismatch
|
||||
layout(rgba32f) uniform readonly uimage2D i3bad; // ERROR, type mismatch
|
||||
layout(r8_snorm) uniform readonly iimage2D i4bad; // ERROR, type mismatch
|
||||
layout(rgba32ui) uniform readonly iimage2D i5bad; // ERROR, type mismatch
|
||||
layout(r8ui) uniform readonly iimage2D i6bad; // ERROR, type mismatch
|
||||
|
||||
layout(binding = 0) uniform atomic_uint counter;
|
||||
|
||||
|
|
@ -146,7 +146,7 @@ uniform int i;
|
|||
void opac()
|
||||
{
|
||||
int a[3];
|
||||
a[counter]; // ERROR
|
||||
a[counter]; // ERROR, non-integer
|
||||
countArr[2];
|
||||
countArr[i];
|
||||
}
|
||||
|
|
@ -172,3 +172,54 @@ uniform samplerCubeArray sca; // ERROR
|
|||
uniform iimage2DRect i2dr; // ERROR
|
||||
uniform image2DMS i2dms; // ERROR
|
||||
uniform uimage2DMSArray u2dmsa; // ERROR
|
||||
|
||||
layout(r32f) coherent volatile restrict readonly writeonly uniform image2D okay1;
|
||||
layout(r32i) coherent volatile restrict readonly uniform iimage2D okay2;
|
||||
layout(r32ui) coherent volatile restrict writeonly uniform uimage2D okay3;
|
||||
layout(r32f) coherent volatile restrict uniform image2D okay4;
|
||||
|
||||
layout(rgba32f) coherent volatile restrict uniform image2D badQ1; // ERROR, bad qualifiers
|
||||
layout(rgba8i) coherent volatile restrict uniform iimage2D badQ2; // ERROR, bad qualifiers
|
||||
layout(rgba16ui) coherent volatile restrict uniform uimage2D badQ3; // ERROR, bad qualifiers
|
||||
|
||||
writeonly buffer woblock
|
||||
{
|
||||
int value;
|
||||
float values[];
|
||||
} wo;
|
||||
|
||||
void foowo()
|
||||
{
|
||||
float g;
|
||||
g = wo.values[2]; // ERROR, writeonly
|
||||
float f = wo.values[2]; // ERROR, writeonly
|
||||
++wo.values[2]; // ERROR, writeonly
|
||||
wo.values[2]--; // ERROR, writeonly
|
||||
f + wo.values[2]; // ERROR, writeonly
|
||||
wo.values[2] - f; // ERROR, writeonly
|
||||
bool b;
|
||||
b ? f : wo.values[2]; // ERROR, writeonly
|
||||
b ? wo.values[2] : f; // ERROR, writeonly
|
||||
if (f == wo.values[2]) // ERROR, writeonly
|
||||
++f;
|
||||
if (f >= wo.values[2]) // ERROR, writeonly
|
||||
++f;
|
||||
f = vec3(wo.values[2]).x; // ERROR, writeonly
|
||||
~wo.value; // ERROR, writeonly
|
||||
wo.values[2] = 3.4;
|
||||
}
|
||||
|
||||
buffer multioblock
|
||||
{
|
||||
readonly int value;
|
||||
writeonly float values[];
|
||||
} multio;
|
||||
|
||||
void foomultio()
|
||||
{
|
||||
float g;
|
||||
g = wo.values[2]; // ERROR, writeonly
|
||||
~wo.value;
|
||||
wo.values[2] = 3.4;
|
||||
wo.value = 2; // ERROR, readonly
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,7 +22,6 @@ ERROR: 0:88: 'imageAtomicAdd' : no matching overloaded function found
|
|||
ERROR: 0:89: 'imageAtomicMin' : no matching overloaded function found
|
||||
ERROR: 0:90: 'imageAtomicMax' : no matching overloaded function found
|
||||
ERROR: 0:94: 'writeonly' : argument cannot drop memory qualifier when passed to formal parameter
|
||||
ERROR: 0:97: 'volatile' : Reserved word.
|
||||
ERROR: 0:97: '' : memory qualifiers cannot be used on this type
|
||||
ERROR: 0:98: '' : memory qualifiers cannot be used on this type
|
||||
ERROR: 0:110: 'restrict' : argument cannot drop memory qualifier when passed to formal parameter
|
||||
|
|
@ -57,7 +56,24 @@ ERROR: 0:173: '' : image variables not declared 'writeonly' must have a format l
|
|||
ERROR: 0:174: 'uimage2DMSArray' : Reserved word.
|
||||
ERROR: 0:174: 'sampler/image' : type requires declaration of default precision qualifier
|
||||
ERROR: 0:174: '' : image variables not declared 'writeonly' must have a format layout qualifier
|
||||
ERROR: 57 compilation errors. No code generated.
|
||||
ERROR: 0:181: 'rgba32f' : format requires readonly or writeonly memory qualifier
|
||||
ERROR: 0:182: 'rgba8i' : format requires readonly or writeonly memory qualifier
|
||||
ERROR: 0:183: 'rgba16ui' : format requires readonly or writeonly memory qualifier
|
||||
ERROR: 0:194: 'assign' : can't read from writeonly object: wo
|
||||
ERROR: 0:195: 'initializer' : can't read from writeonly object: wo
|
||||
ERROR: 0:196: '++' : can't read from writeonly object: wo
|
||||
ERROR: 0:197: '--' : can't read from writeonly object: wo
|
||||
ERROR: 0:198: '+' : can't read from writeonly object: wo
|
||||
ERROR: 0:199: '-' : can't read from writeonly object: wo
|
||||
ERROR: 0:201: ':' : can't read from writeonly object: wo
|
||||
ERROR: 0:202: ':' : can't read from writeonly object: wo
|
||||
ERROR: 0:203: '==' : can't read from writeonly object: wo
|
||||
ERROR: 0:205: '>=' : can't read from writeonly object: wo
|
||||
ERROR: 0:207: 'constructor' : can't read from writeonly object: wo
|
||||
ERROR: 0:208: '~' : can't read from writeonly object: wo
|
||||
ERROR: 0:221: 'assign' : can't read from writeonly object: wo
|
||||
ERROR: 0:222: '~' : can't read from writeonly object: wo
|
||||
ERROR: 73 compilation errors. No code generated.
|
||||
|
||||
|
||||
Shader version: 310
|
||||
|
|
@ -141,7 +157,7 @@ ERROR: node is still EOpNull!
|
|||
0:92 0 (const int)
|
||||
0:92 0 (const int)
|
||||
0:93 Function Call: imageLoad(I21;vi2; (highp 4-component vector of float)
|
||||
0:93 'img2Drgba' (layout(rgba32f ) uniform lowp image2D)
|
||||
0:93 'img2Drgba' (layout(rgba32f ) readonly uniform lowp image2D)
|
||||
0:93 Construct ivec2 (2-component vector of int)
|
||||
0:93 'i' (highp int)
|
||||
0:93 'i' (highp int)
|
||||
|
|
@ -233,6 +249,178 @@ ERROR: node is still EOpNull!
|
|||
0:162 10 (const uint)
|
||||
0:162 Constant:
|
||||
0:162 8 (const uint)
|
||||
0:191 Function Definition: foowo( (void)
|
||||
0:191 Function Parameters:
|
||||
0:? Sequence
|
||||
0:194 move second child to first child (highp float)
|
||||
0:194 'g' (highp float)
|
||||
0:194 direct index (layout(column_major shared ) highp float)
|
||||
0:194 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
|
||||
0:194 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
|
||||
0:194 Constant:
|
||||
0:194 1 (const int)
|
||||
0:194 Constant:
|
||||
0:194 2 (const int)
|
||||
0:195 Sequence
|
||||
0:195 move second child to first child (highp float)
|
||||
0:195 'f' (highp float)
|
||||
0:195 direct index (layout(column_major shared ) highp float)
|
||||
0:195 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
|
||||
0:195 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
|
||||
0:195 Constant:
|
||||
0:195 1 (const int)
|
||||
0:195 Constant:
|
||||
0:195 2 (const int)
|
||||
0:196 Pre-Increment (highp float)
|
||||
0:196 direct index (layout(column_major shared ) highp float)
|
||||
0:196 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
|
||||
0:196 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
|
||||
0:196 Constant:
|
||||
0:196 1 (const int)
|
||||
0:196 Constant:
|
||||
0:196 2 (const int)
|
||||
0:197 Post-Decrement (highp float)
|
||||
0:197 direct index (layout(column_major shared ) highp float)
|
||||
0:197 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
|
||||
0:197 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
|
||||
0:197 Constant:
|
||||
0:197 1 (const int)
|
||||
0:197 Constant:
|
||||
0:197 2 (const int)
|
||||
0:198 add (highp float)
|
||||
0:198 'f' (highp float)
|
||||
0:198 direct index (layout(column_major shared ) highp float)
|
||||
0:198 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
|
||||
0:198 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
|
||||
0:198 Constant:
|
||||
0:198 1 (const int)
|
||||
0:198 Constant:
|
||||
0:198 2 (const int)
|
||||
0:199 subtract (highp float)
|
||||
0:199 direct index (layout(column_major shared ) highp float)
|
||||
0:199 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
|
||||
0:199 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
|
||||
0:199 Constant:
|
||||
0:199 1 (const int)
|
||||
0:199 Constant:
|
||||
0:199 2 (const int)
|
||||
0:199 'f' (highp float)
|
||||
0:201 Test condition and select (highp float)
|
||||
0:201 Condition
|
||||
0:201 'b' (bool)
|
||||
0:201 true case
|
||||
0:201 'f' (highp float)
|
||||
0:201 false case
|
||||
0:201 direct index (layout(column_major shared ) highp float)
|
||||
0:201 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
|
||||
0:201 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
|
||||
0:201 Constant:
|
||||
0:201 1 (const int)
|
||||
0:201 Constant:
|
||||
0:201 2 (const int)
|
||||
0:202 Test condition and select (layout(column_major shared ) highp float)
|
||||
0:202 Condition
|
||||
0:202 'b' (bool)
|
||||
0:202 true case
|
||||
0:202 direct index (layout(column_major shared ) highp float)
|
||||
0:202 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
|
||||
0:202 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
|
||||
0:202 Constant:
|
||||
0:202 1 (const int)
|
||||
0:202 Constant:
|
||||
0:202 2 (const int)
|
||||
0:202 false case
|
||||
0:202 'f' (highp float)
|
||||
0:203 Test condition and select (void)
|
||||
0:203 Condition
|
||||
0:203 Compare Equal (bool)
|
||||
0:203 'f' (highp float)
|
||||
0:203 direct index (layout(column_major shared ) highp float)
|
||||
0:203 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
|
||||
0:203 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
|
||||
0:203 Constant:
|
||||
0:203 1 (const int)
|
||||
0:203 Constant:
|
||||
0:203 2 (const int)
|
||||
0:203 true case
|
||||
0:204 Pre-Increment (highp float)
|
||||
0:204 'f' (highp float)
|
||||
0:205 Test condition and select (void)
|
||||
0:205 Condition
|
||||
0:205 Compare Greater Than or Equal (bool)
|
||||
0:205 'f' (highp float)
|
||||
0:205 direct index (layout(column_major shared ) highp float)
|
||||
0:205 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
|
||||
0:205 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
|
||||
0:205 Constant:
|
||||
0:205 1 (const int)
|
||||
0:205 Constant:
|
||||
0:205 2 (const int)
|
||||
0:205 true case
|
||||
0:206 Pre-Increment (highp float)
|
||||
0:206 'f' (highp float)
|
||||
0:207 move second child to first child (highp float)
|
||||
0:207 'f' (highp float)
|
||||
0:207 direct index (highp float)
|
||||
0:207 Construct vec3 (highp 3-component vector of float)
|
||||
0:207 direct index (layout(column_major shared ) highp float)
|
||||
0:207 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
|
||||
0:207 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
|
||||
0:207 Constant:
|
||||
0:207 1 (const int)
|
||||
0:207 Constant:
|
||||
0:207 2 (const int)
|
||||
0:207 Constant:
|
||||
0:207 0 (const int)
|
||||
0:208 Bitwise not (highp int)
|
||||
0:208 value: direct index for structure (layout(column_major shared ) buffer highp int)
|
||||
0:208 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
|
||||
0:208 Constant:
|
||||
0:208 0 (const int)
|
||||
0:209 move second child to first child (highp float)
|
||||
0:209 direct index (layout(column_major shared ) highp float)
|
||||
0:209 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
|
||||
0:209 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
|
||||
0:209 Constant:
|
||||
0:209 1 (const int)
|
||||
0:209 Constant:
|
||||
0:209 2 (const int)
|
||||
0:209 Constant:
|
||||
0:209 3.400000
|
||||
0:218 Function Definition: foomultio( (void)
|
||||
0:218 Function Parameters:
|
||||
0:? Sequence
|
||||
0:221 move second child to first child (highp float)
|
||||
0:221 'g' (highp float)
|
||||
0:221 direct index (layout(column_major shared ) highp float)
|
||||
0:221 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
|
||||
0:221 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
|
||||
0:221 Constant:
|
||||
0:221 1 (const int)
|
||||
0:221 Constant:
|
||||
0:221 2 (const int)
|
||||
0:222 Bitwise not (highp int)
|
||||
0:222 value: direct index for structure (layout(column_major shared ) buffer highp int)
|
||||
0:222 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
|
||||
0:222 Constant:
|
||||
0:222 0 (const int)
|
||||
0:223 move second child to first child (highp float)
|
||||
0:223 direct index (layout(column_major shared ) highp float)
|
||||
0:223 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
|
||||
0:223 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
|
||||
0:223 Constant:
|
||||
0:223 1 (const int)
|
||||
0:223 Constant:
|
||||
0:223 2 (const int)
|
||||
0:223 Constant:
|
||||
0:223 3.400000
|
||||
0:224 move second child to first child (highp int)
|
||||
0:224 value: direct index for structure (layout(column_major shared ) buffer highp int)
|
||||
0:224 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
|
||||
0:224 Constant:
|
||||
0:224 0 (const int)
|
||||
0:224 Constant:
|
||||
0:224 2 (const int)
|
||||
0:? Linker Objects
|
||||
0:? 'gl_WorkGroupSize' (const highp 3-component vector of uint)
|
||||
0:? 2 (const uint)
|
||||
|
|
@ -258,19 +446,19 @@ ERROR: node is still EOpNull!
|
|||
0:? 'ii2dabad' (uniform highp iimage2DArray)
|
||||
0:? 'ii2da' (writeonly uniform highp iimage2DArray)
|
||||
0:? 'iimg2D' (layout(r32i ) uniform highp iimage2D)
|
||||
0:? 'iimg2Drgba' (layout(rgba32i ) uniform highp iimage2D)
|
||||
0:? 'img2Drgba' (layout(rgba32f ) uniform lowp image2D)
|
||||
0:? 'iimg2Drgba' (layout(rgba32i ) readonly uniform highp iimage2D)
|
||||
0:? 'img2Drgba' (layout(rgba32f ) readonly uniform lowp image2D)
|
||||
0:? 'uimg2D' (layout(r32ui ) uniform highp uimage2D)
|
||||
0:? 'vol' (volatile highp float)
|
||||
0:? 'vol2' (readonly highp int)
|
||||
0:? 'qualim1' (layout(r32i ) coherent readonly uniform highp iimage2D)
|
||||
0:? 'qualim2' (layout(r32i ) coherent restrict readonly uniform highp iimage2D)
|
||||
0:? 'i1bad' (layout(rg8i ) uniform highp uimage2D)
|
||||
0:? 'i2bad' (layout(rgba32i ) uniform lowp image2D)
|
||||
0:? 'i3bad' (layout(rgba32f ) uniform highp uimage2D)
|
||||
0:? 'i4bad' (layout(r8_snorm ) uniform highp iimage2D)
|
||||
0:? 'i5bad' (layout(rgba32ui ) uniform highp iimage2D)
|
||||
0:? 'i6bad' (layout(r8ui ) uniform highp iimage2D)
|
||||
0:? 'i1bad' (layout(rg8i ) readonly uniform highp uimage2D)
|
||||
0:? 'i2bad' (layout(rgba32i ) readonly uniform lowp image2D)
|
||||
0:? 'i3bad' (layout(rgba32f ) readonly uniform highp uimage2D)
|
||||
0:? 'i4bad' (layout(r8_snorm ) readonly uniform highp iimage2D)
|
||||
0:? 'i5bad' (layout(rgba32ui ) readonly uniform highp iimage2D)
|
||||
0:? 'i6bad' (layout(r8ui ) readonly uniform highp iimage2D)
|
||||
0:? 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)
|
||||
0:? 'counterBad' (layout(binding=1 ) uniform mediump atomic_uint)
|
||||
0:? 'countArr' (layout(binding=2 offset=4 ) uniform 4-element array of highp atomic_uint)
|
||||
|
|
@ -283,6 +471,15 @@ ERROR: node is still EOpNull!
|
|||
0:? 'i2dr' (uniform mediump iimage2DRect)
|
||||
0:? 'i2dms' (uniform lowp image2DMS)
|
||||
0:? 'u2dmsa' (uniform mediump uimage2DMSArray)
|
||||
0:? 'okay1' (layout(r32f ) coherent volatile restrict readonly writeonly uniform lowp image2D)
|
||||
0:? 'okay2' (layout(r32i ) coherent volatile restrict readonly uniform highp iimage2D)
|
||||
0:? 'okay3' (layout(r32ui ) coherent volatile restrict writeonly uniform highp uimage2D)
|
||||
0:? 'okay4' (layout(r32f ) coherent volatile restrict uniform lowp image2D)
|
||||
0:? 'badQ1' (layout(rgba32f ) coherent volatile restrict uniform lowp image2D)
|
||||
0:? 'badQ2' (layout(rgba8i ) coherent volatile restrict uniform highp iimage2D)
|
||||
0:? 'badQ3' (layout(rgba16ui ) coherent volatile restrict uniform highp uimage2D)
|
||||
0:? 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
|
||||
0:? 'multio' (layout(column_major shared ) buffer block{layout(column_major shared ) readonly buffer highp int value, layout(column_major shared ) writeonly buffer implicitly-sized array of highp float values})
|
||||
|
||||
|
||||
Linked compute stage:
|
||||
|
|
@ -369,7 +566,7 @@ ERROR: node is still EOpNull!
|
|||
0:92 0 (const int)
|
||||
0:92 0 (const int)
|
||||
0:93 Function Call: imageLoad(I21;vi2; (highp 4-component vector of float)
|
||||
0:93 'img2Drgba' (layout(rgba32f ) uniform lowp image2D)
|
||||
0:93 'img2Drgba' (layout(rgba32f ) readonly uniform lowp image2D)
|
||||
0:93 Construct ivec2 (2-component vector of int)
|
||||
0:93 'i' (highp int)
|
||||
0:93 'i' (highp int)
|
||||
|
|
@ -461,6 +658,178 @@ ERROR: node is still EOpNull!
|
|||
0:162 10 (const uint)
|
||||
0:162 Constant:
|
||||
0:162 8 (const uint)
|
||||
0:191 Function Definition: foowo( (void)
|
||||
0:191 Function Parameters:
|
||||
0:? Sequence
|
||||
0:194 move second child to first child (highp float)
|
||||
0:194 'g' (highp float)
|
||||
0:194 direct index (layout(column_major shared ) highp float)
|
||||
0:194 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
|
||||
0:194 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
|
||||
0:194 Constant:
|
||||
0:194 1 (const int)
|
||||
0:194 Constant:
|
||||
0:194 2 (const int)
|
||||
0:195 Sequence
|
||||
0:195 move second child to first child (highp float)
|
||||
0:195 'f' (highp float)
|
||||
0:195 direct index (layout(column_major shared ) highp float)
|
||||
0:195 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
|
||||
0:195 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
|
||||
0:195 Constant:
|
||||
0:195 1 (const int)
|
||||
0:195 Constant:
|
||||
0:195 2 (const int)
|
||||
0:196 Pre-Increment (highp float)
|
||||
0:196 direct index (layout(column_major shared ) highp float)
|
||||
0:196 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
|
||||
0:196 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
|
||||
0:196 Constant:
|
||||
0:196 1 (const int)
|
||||
0:196 Constant:
|
||||
0:196 2 (const int)
|
||||
0:197 Post-Decrement (highp float)
|
||||
0:197 direct index (layout(column_major shared ) highp float)
|
||||
0:197 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
|
||||
0:197 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
|
||||
0:197 Constant:
|
||||
0:197 1 (const int)
|
||||
0:197 Constant:
|
||||
0:197 2 (const int)
|
||||
0:198 add (highp float)
|
||||
0:198 'f' (highp float)
|
||||
0:198 direct index (layout(column_major shared ) highp float)
|
||||
0:198 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
|
||||
0:198 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
|
||||
0:198 Constant:
|
||||
0:198 1 (const int)
|
||||
0:198 Constant:
|
||||
0:198 2 (const int)
|
||||
0:199 subtract (highp float)
|
||||
0:199 direct index (layout(column_major shared ) highp float)
|
||||
0:199 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
|
||||
0:199 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
|
||||
0:199 Constant:
|
||||
0:199 1 (const int)
|
||||
0:199 Constant:
|
||||
0:199 2 (const int)
|
||||
0:199 'f' (highp float)
|
||||
0:201 Test condition and select (highp float)
|
||||
0:201 Condition
|
||||
0:201 'b' (bool)
|
||||
0:201 true case
|
||||
0:201 'f' (highp float)
|
||||
0:201 false case
|
||||
0:201 direct index (layout(column_major shared ) highp float)
|
||||
0:201 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
|
||||
0:201 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
|
||||
0:201 Constant:
|
||||
0:201 1 (const int)
|
||||
0:201 Constant:
|
||||
0:201 2 (const int)
|
||||
0:202 Test condition and select (layout(column_major shared ) highp float)
|
||||
0:202 Condition
|
||||
0:202 'b' (bool)
|
||||
0:202 true case
|
||||
0:202 direct index (layout(column_major shared ) highp float)
|
||||
0:202 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
|
||||
0:202 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
|
||||
0:202 Constant:
|
||||
0:202 1 (const int)
|
||||
0:202 Constant:
|
||||
0:202 2 (const int)
|
||||
0:202 false case
|
||||
0:202 'f' (highp float)
|
||||
0:203 Test condition and select (void)
|
||||
0:203 Condition
|
||||
0:203 Compare Equal (bool)
|
||||
0:203 'f' (highp float)
|
||||
0:203 direct index (layout(column_major shared ) highp float)
|
||||
0:203 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
|
||||
0:203 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
|
||||
0:203 Constant:
|
||||
0:203 1 (const int)
|
||||
0:203 Constant:
|
||||
0:203 2 (const int)
|
||||
0:203 true case
|
||||
0:204 Pre-Increment (highp float)
|
||||
0:204 'f' (highp float)
|
||||
0:205 Test condition and select (void)
|
||||
0:205 Condition
|
||||
0:205 Compare Greater Than or Equal (bool)
|
||||
0:205 'f' (highp float)
|
||||
0:205 direct index (layout(column_major shared ) highp float)
|
||||
0:205 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
|
||||
0:205 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
|
||||
0:205 Constant:
|
||||
0:205 1 (const int)
|
||||
0:205 Constant:
|
||||
0:205 2 (const int)
|
||||
0:205 true case
|
||||
0:206 Pre-Increment (highp float)
|
||||
0:206 'f' (highp float)
|
||||
0:207 move second child to first child (highp float)
|
||||
0:207 'f' (highp float)
|
||||
0:207 direct index (highp float)
|
||||
0:207 Construct vec3 (highp 3-component vector of float)
|
||||
0:207 direct index (layout(column_major shared ) highp float)
|
||||
0:207 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
|
||||
0:207 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
|
||||
0:207 Constant:
|
||||
0:207 1 (const int)
|
||||
0:207 Constant:
|
||||
0:207 2 (const int)
|
||||
0:207 Constant:
|
||||
0:207 0 (const int)
|
||||
0:208 Bitwise not (highp int)
|
||||
0:208 value: direct index for structure (layout(column_major shared ) buffer highp int)
|
||||
0:208 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
|
||||
0:208 Constant:
|
||||
0:208 0 (const int)
|
||||
0:209 move second child to first child (highp float)
|
||||
0:209 direct index (layout(column_major shared ) highp float)
|
||||
0:209 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
|
||||
0:209 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
|
||||
0:209 Constant:
|
||||
0:209 1 (const int)
|
||||
0:209 Constant:
|
||||
0:209 2 (const int)
|
||||
0:209 Constant:
|
||||
0:209 3.400000
|
||||
0:218 Function Definition: foomultio( (void)
|
||||
0:218 Function Parameters:
|
||||
0:? Sequence
|
||||
0:221 move second child to first child (highp float)
|
||||
0:221 'g' (highp float)
|
||||
0:221 direct index (layout(column_major shared ) highp float)
|
||||
0:221 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
|
||||
0:221 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
|
||||
0:221 Constant:
|
||||
0:221 1 (const int)
|
||||
0:221 Constant:
|
||||
0:221 2 (const int)
|
||||
0:222 Bitwise not (highp int)
|
||||
0:222 value: direct index for structure (layout(column_major shared ) buffer highp int)
|
||||
0:222 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
|
||||
0:222 Constant:
|
||||
0:222 0 (const int)
|
||||
0:223 move second child to first child (highp float)
|
||||
0:223 direct index (layout(column_major shared ) highp float)
|
||||
0:223 values: direct index for structure (layout(column_major shared ) buffer implicitly-sized array of highp float)
|
||||
0:223 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
|
||||
0:223 Constant:
|
||||
0:223 1 (const int)
|
||||
0:223 Constant:
|
||||
0:223 2 (const int)
|
||||
0:223 Constant:
|
||||
0:223 3.400000
|
||||
0:224 move second child to first child (highp int)
|
||||
0:224 value: direct index for structure (layout(column_major shared ) buffer highp int)
|
||||
0:224 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
|
||||
0:224 Constant:
|
||||
0:224 0 (const int)
|
||||
0:224 Constant:
|
||||
0:224 2 (const int)
|
||||
0:? Linker Objects
|
||||
0:? 'gl_WorkGroupSize' (const highp 3-component vector of uint)
|
||||
0:? 2 (const uint)
|
||||
|
|
@ -486,19 +855,19 @@ ERROR: node is still EOpNull!
|
|||
0:? 'ii2dabad' (uniform highp iimage2DArray)
|
||||
0:? 'ii2da' (writeonly uniform highp iimage2DArray)
|
||||
0:? 'iimg2D' (layout(r32i ) uniform highp iimage2D)
|
||||
0:? 'iimg2Drgba' (layout(rgba32i ) uniform highp iimage2D)
|
||||
0:? 'img2Drgba' (layout(rgba32f ) uniform lowp image2D)
|
||||
0:? 'iimg2Drgba' (layout(rgba32i ) readonly uniform highp iimage2D)
|
||||
0:? 'img2Drgba' (layout(rgba32f ) readonly uniform lowp image2D)
|
||||
0:? 'uimg2D' (layout(r32ui ) uniform highp uimage2D)
|
||||
0:? 'vol' (volatile highp float)
|
||||
0:? 'vol2' (readonly highp int)
|
||||
0:? 'qualim1' (layout(r32i ) coherent readonly uniform highp iimage2D)
|
||||
0:? 'qualim2' (layout(r32i ) coherent restrict readonly uniform highp iimage2D)
|
||||
0:? 'i1bad' (layout(rg8i ) uniform highp uimage2D)
|
||||
0:? 'i2bad' (layout(rgba32i ) uniform lowp image2D)
|
||||
0:? 'i3bad' (layout(rgba32f ) uniform highp uimage2D)
|
||||
0:? 'i4bad' (layout(r8_snorm ) uniform highp iimage2D)
|
||||
0:? 'i5bad' (layout(rgba32ui ) uniform highp iimage2D)
|
||||
0:? 'i6bad' (layout(r8ui ) uniform highp iimage2D)
|
||||
0:? 'i1bad' (layout(rg8i ) readonly uniform highp uimage2D)
|
||||
0:? 'i2bad' (layout(rgba32i ) readonly uniform lowp image2D)
|
||||
0:? 'i3bad' (layout(rgba32f ) readonly uniform highp uimage2D)
|
||||
0:? 'i4bad' (layout(r8_snorm ) readonly uniform highp iimage2D)
|
||||
0:? 'i5bad' (layout(rgba32ui ) readonly uniform highp iimage2D)
|
||||
0:? 'i6bad' (layout(r8ui ) readonly uniform highp iimage2D)
|
||||
0:? 'counter' (layout(binding=0 offset=0 ) uniform highp atomic_uint)
|
||||
0:? 'counterBad' (layout(binding=1 ) uniform mediump atomic_uint)
|
||||
0:? 'countArr' (layout(binding=2 offset=4 ) uniform 4-element array of highp atomic_uint)
|
||||
|
|
@ -511,4 +880,13 @@ ERROR: node is still EOpNull!
|
|||
0:? 'i2dr' (uniform mediump iimage2DRect)
|
||||
0:? 'i2dms' (uniform lowp image2DMS)
|
||||
0:? 'u2dmsa' (uniform mediump uimage2DMSArray)
|
||||
0:? 'okay1' (layout(r32f ) coherent volatile restrict readonly writeonly uniform lowp image2D)
|
||||
0:? 'okay2' (layout(r32i ) coherent volatile restrict readonly uniform highp iimage2D)
|
||||
0:? 'okay3' (layout(r32ui ) coherent volatile restrict writeonly uniform highp uimage2D)
|
||||
0:? 'okay4' (layout(r32f ) coherent volatile restrict uniform lowp image2D)
|
||||
0:? 'badQ1' (layout(rgba32f ) coherent volatile restrict uniform lowp image2D)
|
||||
0:? 'badQ2' (layout(rgba8i ) coherent volatile restrict uniform highp iimage2D)
|
||||
0:? 'badQ3' (layout(rgba16ui ) coherent volatile restrict uniform highp uimage2D)
|
||||
0:? 'wo' (layout(column_major shared ) writeonly buffer block{layout(column_major shared ) buffer highp int value, layout(column_major shared ) buffer implicitly-sized array of highp float values})
|
||||
0:? 'multio' (layout(column_major shared ) buffer block{layout(column_major shared ) readonly buffer highp int value, layout(column_major shared ) writeonly buffer implicitly-sized array of highp float values})
|
||||
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@ MaxComputeWorkGroupCountX 65535
|
|||
MaxComputeWorkGroupCountY 65535
|
||||
MaxComputeWorkGroupCountZ 65535
|
||||
MaxComputeWorkGroupSizeX 1024
|
||||
MaxComputeWorkGroupSizeX 1024
|
||||
MaxComputeWorkGroupSizeY 1024
|
||||
MaxComputeWorkGroupSizeZ 64
|
||||
MaxComputeUniformComponents 1024
|
||||
MaxComputeTextureImageUnits 16
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue