GLSL: Implement version 320 for ES.

This commit is contained in:
John Kessenich 2017-07-23 13:54:15 -06:00
parent 9353f1afab
commit 53863a3a90
18 changed files with 3386 additions and 38 deletions

5
Test/320.comp Normal file
View File

@ -0,0 +1,5 @@
#version 320 es
void main()
{
}

225
Test/320.frag Normal file
View File

@ -0,0 +1,225 @@
#version 320 es
out outbname { int a; } outbinst; // ERROR, not out block in fragment shader
in inbname {
int a;
vec4 v;
struct { int b; } s; // ERROR, nested struct definition
} inbinst;
in inbname2 {
layout(location = 12) int aAnon;
layout(location = 13) centroid in vec4 vAnon;
};
in layout(location = 13) vec4 aliased; // ERROR, aliased
in inbname2 { // ERROR, reuse of block name
int aAnon;
centroid in vec4 vAnon;
};
in badmember { // ERROR, aAnon already in global scope
int aAnon;
};
int inbname; // ERROR, redefinition of block name
vec4 vAnon; // ERROR, anon in global scope; redefinition
in arrayed {
float f;
} arrayedInst[4];
uniform int i;
void fooIO()
{
vec4 v = inbinst.v + vAnon;
v *= arrayedInst[2].f;
v *= arrayedInst[i].f;
}
in vec4 gl_FragCoord;
layout(origin_upper_left, pixel_center_integer) in vec4 gl_FragCoord; // ERROR, non-ES
layout(early_fragment_tests) in;
out float gl_FragDepth;
layout(depth_any) out float gl_FragDepth; // ERROR, non-ES
void main()
{
gl_FragDepth = 0.2; // ERROR, early_fragment_tests declared
bool f = gl_FrontFacing;
}
out float gl_FragDepth;
void foo_GS()
{
highp int l = gl_Layer;
highp int p = gl_PrimitiveID;
}
in vec2 inf, ing;
uniform ivec2 offsets[4];
uniform sampler2D sArray[4];
uniform int sIndex;
layout(binding = 0) uniform atomic_uint auArray[2];
uniform ubName { int i; } ubInst[4];
buffer bbName { int i; } bbInst[4];
highp uniform writeonly image2D iArray[5];
const ivec2 constOffsets[4] = ivec2[4](ivec2(0.1), ivec2(0.2), ivec2(0.3), ivec2(0.4));
void pfoo()
{
precise vec2 h;
h = fma(inf, ing, h);
textureGatherOffset(sArray[0], vec2(0.1), ivec2(inf));
textureGatherOffsets(sArray[0], vec2(0.1), constOffsets);
textureGatherOffsets(sArray[0], vec2(0.1), offsets); // ERROR, offset not constant
}
precision highp imageCubeArray ;
precision highp iimageCubeArray ;
precision highp uimageCubeArray ;
precision highp samplerCubeArray ;
precision highp samplerCubeArrayShadow;
precision highp isamplerCubeArray ;
precision highp usamplerCubeArray ;
uniform writeonly imageCubeArray CA1;
uniform writeonly iimageCubeArray CA2;
uniform writeonly uimageCubeArray CA3;
#ifdef GL_EXT_texture_cube_map_array
uniform samplerCubeArray CA4;
uniform samplerCubeArrayShadow CA5;
uniform isamplerCubeArray CA6;
uniform usamplerCubeArray CA7;
#endif
void CAT()
{
highp vec4 b4 = texture(CA4, vec4(0.5), 0.24);
highp ivec4 b6 = texture(CA6, vec4(0.5), 0.26);
highp uvec4 b7 = texture(CA7, vec4(0.5), 0.27);
}
void goodSample()
{
lowp int a1 = gl_SampleID;
mediump vec2 a2 = gl_SamplePosition;
highp int a3 = gl_SampleMaskIn[0];
gl_SampleMask[0] = a3;
mediump int n1 = gl_MaxSamples;
mediump int n2 = gl_NumSamples;
}
uniform layout(r32f) highp image2D im2Df;
uniform layout(r32ui) highp uimage2D im2Du;
uniform layout(r32i) highp iimage2D im2Di;
uniform ivec2 P;
uniform layout(rgba32f) highp image2D badIm2Df; // ERROR, needs readonly or writeonly
uniform layout(rgba8ui) highp uimage2D badIm2Du; // ERROR, needs readonly or writeonly
uniform layout(rgba16i) highp iimage2D badIm2Di; // ERROR, needs readonly or writeonly
void goodImageAtom()
{
float datf;
int dati;
uint datu;
imageAtomicAdd( im2Di, P, dati);
imageAtomicAdd( im2Du, P, datu);
imageAtomicMin( im2Di, P, dati);
imageAtomicMin( im2Du, P, datu);
imageAtomicMax( im2Di, P, dati);
imageAtomicMax( im2Du, P, datu);
imageAtomicAnd( im2Di, P, dati);
imageAtomicAnd( im2Du, P, datu);
imageAtomicOr( im2Di, P, dati);
imageAtomicOr( im2Du, P, datu);
imageAtomicXor( im2Di, P, dati);
imageAtomicXor( im2Du, P, datu);
imageAtomicExchange(im2Di, P, dati);
imageAtomicExchange(im2Du, P, datu);
imageAtomicExchange(im2Df, P, datf);
imageAtomicCompSwap(im2Di, P, 3, dati);
imageAtomicCompSwap(im2Du, P, 5u, datu);
imageAtomicMax(badIm2Di, P, dati); // ERROR, not an allowed layout() on the image
imageAtomicMax(badIm2Du, P, datu); // ERROR, not an allowed layout() on the image
imageAtomicExchange(badIm2Df, P, datf); // ERROR, not an allowed layout() on the image
}
centroid out vec4 colorCentroidBad; // ERROR
flat out vec4 colorBadFlat; // ERROR
smooth out vec4 colorBadSmooth; // ERROR
noperspective out vec4 colorBadNo; // ERROR
flat centroid in vec2 colorfc;
in float scalarIn;
sample in vec4 colorSampIn;
sample out vec4 colorSampleBad; // ERROR
flat sample in vec4 colorfsi;
sample in vec3 sampInArray[4];
void interp()
{
float res;
vec2 res2;
vec3 res3;
vec4 res4;
res2 = interpolateAtCentroid(colorfc);
res4 = interpolateAtCentroid(colorSampIn);
res4 = interpolateAtCentroid(colorfsi);
res = interpolateAtCentroid(scalarIn);
res3 = interpolateAtCentroid(sampInArray); // ERROR
res3 = interpolateAtCentroid(sampInArray[2]);
res2 = interpolateAtCentroid(sampInArray[2].xy); // ERROR
res3 = interpolateAtSample(sampInArray, 1); // ERROR
res3 = interpolateAtSample(sampInArray[i], 0);
res2 = interpolateAtSample(sampInArray[2].xy, 2); // ERROR
res = interpolateAtSample(scalarIn, 1);
res3 = interpolateAtOffset(sampInArray, vec2(0.2)); // ERROR
res3 = interpolateAtOffset(sampInArray[2], vec2(0.2));
res2 = interpolateAtOffset(sampInArray[2].xy, vec2(0.2)); // ERROR, no swizzle
res = interpolateAtOffset(scalarIn + scalarIn, vec2(0.2)); // ERROR, no binary ops other than dereference
res = interpolateAtOffset(scalarIn, vec2(0.2));
float f;
res = interpolateAtCentroid(f); // ERROR, not interpolant
res4 = interpolateAtSample(outp, 0); // ERROR, not interpolant
}
layout(blend_support_multiply) out;
layout(blend_support_screen) out;
layout(blend_support_overlay) out;
layout(blend_support_darken, blend_support_lighten) out;
layout(blend_support_colordodge) layout(blend_support_colorburn) out;
layout(blend_support_hardlight) out;
layout(blend_support_softlight) out;
layout(blend_support_difference) out;
layout(blend_support_exclusion) out;
layout(blend_support_hsl_hue) out;
layout(blend_support_hsl_saturation) out;
layout(blend_support_hsl_color) out;
layout(blend_support_hsl_luminosity) out;
layout(blend_support_all_equations) out;
layout(blend_support_hsl_luminosity) out; // okay to repeat
layout(blend_support_hsl_luminosity) in; // ERROR, only on "out"
layout(blend_support_hsl_luminosity) out vec4; // ERROR, only on standalone
layout(blend_support_hsl_luminosity) out vec4 badout; // ERROR, only on standalone
layout(blend_support_hsl_luminosity) struct badS {int i;}; // ERROR, only on standalone
layout(blend_support_hsl_luminosity) void blendFoo() { } // ERROR, only on standalone
void blendFoo(layout(blend_support_hsl_luminosity) vec3 v) { } // ERROR, only on standalone
layout(blend_support_flizbit) out; // ERROR, no flizbit
out vec4 outAA[2][2]; // ERROR

134
Test/320.geom Normal file
View File

@ -0,0 +1,134 @@
#version 320 es
precision mediump float;
in fromVertex {
in vec3 color;
} fromV[];
in vec4 nonBlockUnsized[];
out toFragment {
out vec3 color;
} toF;
out fromVertex { // okay to reuse a block name for another block name
vec3 color;
};
out fooB { // ERROR, cannot reuse block name as block instance
vec2 color;
} fromVertex;
int fromVertex; // ERROR, cannot reuse a block name for something else
out fooC { // ERROR, cannot have same name for block and instance name
vec2 color;
} fooC;
void main()
{
EmitVertex();
EndPrimitive();
EmitStreamVertex(1); // ERROR
EndStreamPrimitive(0); // ERROR
color = fromV[0].color;
gl_ClipDistance[3] = // ERROR, no ClipDistance
gl_in[1].gl_ClipDistance[2]; // ERROR, no ClipDistance
gl_Position = gl_in[0].gl_Position;
gl_PrimitiveID = gl_PrimitiveIDIn;
gl_Layer = 2;
}
layout(stream = 4) out vec4 ov4; // ERROR, no streams
layout(line_strip, points, triangle_strip, points, triangle_strip) out; // just means triangle_strip"
out ooutb { vec4 a; } ouuaa6;
layout(max_vertices = 200) out;
layout(max_vertices = 300) out; // ERROR, too big
void foo(layout(max_vertices = 4) int a) // ERROR
{
ouuaa6.a = vec4(1.0);
}
layout(line_strip, points, triangle_strip, points) out; // ERROR, changing output primitive
layout(line_strip, points) out; // ERROR, changing output primitive
layout(triangle_strip) in; // ERROR, not an input primitive
layout(triangle_strip) uniform; // ERROR
layout(triangle_strip) out vec4 badv4; // ERROR, not on a variable
layout(triangle_strip) in vec4 bad2v4[]; // ERROR, not on a variable or input
layout(invocations = 3) out outbn { int a; }; // 2 ERROR, not on a block, not until 4.0
out outbn2 {
layout(invocations = 3) int a; // 2 ERRORs, not on a block member, not until 4.0
layout(max_vertices = 3) int b; // ERROR, not on a block member
layout(triangle_strip) int c; // ERROR, not on a block member
} outbi;
layout(lines) out; // ERROR, not on output
layout(lines_adjacency) in;
layout(triangles) in; // ERROR, can't change it
layout(triangles_adjacency) in; // ERROR, can't change it
layout(invocations = 4) in;
in sameName {
int a15;
} insn[];
out sameName {
float f15;
};
uniform sameName {
bool b15;
};
const int summ = gl_MaxVertexAttribs +
gl_MaxGeometryInputComponents +
gl_MaxGeometryOutputComponents +
gl_MaxGeometryImageUniforms +
gl_MaxGeometryTextureImageUnits +
gl_MaxGeometryOutputVertices +
gl_MaxGeometryTotalOutputComponents +
gl_MaxGeometryUniformComponents +
gl_MaxGeometryAtomicCounters +
gl_MaxGeometryAtomicCounterBuffers +
gl_MaxVertexTextureImageUnits +
gl_MaxCombinedTextureImageUnits +
gl_MaxTextureImageUnits +
gl_MaxDrawBuffers;
void fooe1()
{
gl_ViewportIndex; // ERROR, not in ES
gl_MaxViewports; // ERROR, not in ES
insn.length(); // 4: lines_adjacency
int inv = gl_InvocationID;
}
in vec4 explArray[4];
in vec4 explArrayBad[5]; // ERROR, wrong size
in vec4 nonArrayed; // ERROR, not an array
flat out vec3 myColor1;
centroid out vec3 myColor2;
centroid in vec3 centr[];
sample out vec4 perSampleColor; // ERROR without sample extensions
layout(max_vertices = 200) out; // matching redecl
layout(location = 7, component = 2) in float comp[]; // ERROR, es has no component
void notHere()
{
gl_MaxGeometryVaryingComponents; // ERROR, not in ES
gl_VerticesIn; // ERROR, not in ES
}
void pointSize2()
{
highp float ps = gl_in[3].gl_PointSize; // ERROR, need extension
gl_PointSize = ps; // ERROR, need extension
}

150
Test/320.tesc Normal file
View File

@ -0,0 +1,150 @@
#version 320 es
layout(vertices = 4) out;
out int outa[gl_out.length()];
layout(quads) in; // ERROR
layout(ccw) out; // ERROR
layout(fractional_even_spacing) in; // ERROR
patch in vec4 patchIn; // ERROR
patch out vec4 patchOut;
void main()
{
barrier();
int a = gl_MaxTessControlInputComponents +
gl_MaxTessControlOutputComponents +
gl_MaxTessControlTextureImageUnits +
gl_MaxTessControlUniformComponents +
gl_MaxTessControlTotalOutputComponents;
vec4 p = gl_in[1].gl_Position;
float ps = gl_in[1].gl_PointSize; // ERROR, need point_size extension
float cd = gl_in[1].gl_ClipDistance[2]; // ERROR, not in ES
int pvi = gl_PatchVerticesIn;
int pid = gl_PrimitiveID;
int iid = gl_InvocationID;
gl_out[gl_InvocationID].gl_Position = p;
gl_out[gl_InvocationID].gl_PointSize = ps; // ERROR, need point_size extension
gl_out[gl_InvocationID].gl_ClipDistance[1] = cd; // ERROR, not in ES
gl_TessLevelOuter[3] = 3.2;
gl_TessLevelInner[1] = 1.3;
if (a > 10)
barrier(); // ERROR
else
barrier(); // ERROR
barrier();
do {
barrier(); // ERROR
} while (a > 10);
switch (a) {
default:
barrier(); // ERROR
break;
}
a < 12 ? a : (barrier(), a); // ERROR
{
barrier();
}
return;
barrier(); // ERROR
}
layout(vertices = 4) in; // ERROR, not on in
layout(vertices = 5) out; // ERROR, changing #
void foo()
{
gl_out[4].gl_Position; // ERROR, out of range
barrier(); // ERROR, not in main
}
in vec2 ina; // ERROR, not array
in vec2 inb[];
in vec2 inc[18]; // ERROR, wrong size
in vec2 ind[gl_MaxPatchVertices];
patch out float implA[]; // ERROR, not sized
#extension GL_ARB_separate_shader_objects : enable
layout(location = 3) in vec4 ivla[];
layout(location = 4) in vec4 ivlb[];
layout(location = 4) in vec4 ivlc[]; // ERROR, overlapping
layout(location = 3) out vec4 ovla[];
layout(location = 4) out vec4 ovlb[];
layout(location = 4) out vec4 ovlc[]; // ERROR, overlapping
patch out pinbn {
int a;
} pinbi;
centroid out vec3 myColor2[];
centroid in vec3 centr[];
sample out vec4 perSampleColor[];
layout(vertices = 4) out float badlay[]; // ERROR, not on a variable
out float misSized[5]; // ERROR, size doesn't match
out float okaySize[4];
void pointSize2()
{
float ps = gl_in[1].gl_PointSize; // ERROR, need point_size extension
gl_out[gl_InvocationID].gl_PointSize = ps; // ERROR, need point_size extension
}
precise vec3 pv3;
void goodfoop()
{
precise float d;
pv3 *= pv3;
pv3 = fma(pv3, pv3, pv3);
d = fma(d, d, d);
}
void bb()
{
gl_BoundingBoxOES[0] = vec4(0.0);
gl_BoundingBoxOES[1] = vec4(1.0);
gl_BoundingBoxOES[2] = vec4(2.0); // ERROR, overflow
}
out patch badpatchBName { // ERROR, array size required
float f;
} badpatchIName[];
out patch patchBName {
float f;
} patchIName[4];
void outputtingOutparam(out int a)
{
a = 2;
}
void outputting()
{
outa[gl_InvocationID] = 2;
outa[1] = 2; // ERROR, not gl_InvocationID
gl_out[0].gl_Position = vec4(1.0); // ERROR, not gl_InvocationID
outa[1];
gl_out[0];
outputtingOutparam(outa[0]); // ERROR, not gl_InvocationID
outputtingOutparam(outa[gl_InvocationID]);
patchIName[1].f = 3.14;
outa[(gl_InvocationID)] = 2;
}

114
Test/320.tese Normal file
View File

@ -0,0 +1,114 @@
#version 320 es
layout(vertices = 4) out; // ERROR
layout(quads, cw) in;
layout(triangles) in; // ERROR
layout(isolines) in; // ERROR
layout(ccw) in; // ERROR
layout(cw) in;
layout(fractional_odd_spacing) in;
layout(equal_spacing) in; // ERROR
layout(fractional_even_spacing) in; // ERROR
layout(point_mode) in;
patch in vec4 patchIn;
patch out vec4 patchOut; // ERROR
void main()
{
barrier(); // ERROR
int a = gl_MaxTessEvaluationInputComponents +
gl_MaxTessEvaluationOutputComponents +
gl_MaxTessEvaluationTextureImageUnits +
gl_MaxTessEvaluationUniformComponents +
gl_MaxTessPatchComponents +
gl_MaxPatchVertices +
gl_MaxTessGenLevel;
vec4 p = gl_in[1].gl_Position;
float ps = gl_in[1].gl_PointSize; // ERROR, need point_size extension
float cd = gl_in[1].gl_ClipDistance[2]; // ERROR, not in ES
int pvi = gl_PatchVerticesIn;
int pid = gl_PrimitiveID;
vec3 tc = gl_TessCoord;
float tlo = gl_TessLevelOuter[3];
float tli = gl_TessLevelInner[1];
gl_Position = p;
gl_PointSize = ps; // ERROR, need point_size extension
gl_ClipDistance[2] = cd; // ERROR, not in ES
}
smooth patch in vec4 badp1; // ERROR
flat patch in vec4 badp2; // ERROR
noperspective patch in vec4 badp3; // ERROR
patch sample in vec3 badp4; // ERROR
#extension GL_ARB_separate_shader_objects : enable
in gl_PerVertex // ERROR, no size
{
vec4 gl_Position;
} gl_in[];
in gl_PerVertex // ERROR, second redeclaration of gl_in
{
vec4 gl_Position;
} gl_in[];
layout(quads, cw) out; // ERROR
layout(triangles) out; // ERROR
layout(isolines) out; // ERROR
layout(cw) out; // ERROR
layout(fractional_odd_spacing) out; // ERROR
layout(equal_spacing) out; // ERROR
layout(fractional_even_spacing) out; // ERROR
layout(point_mode) out; // ERROR
in vec2 ina; // ERROR, not array
in vec2 inb[];
in vec2 inc[18]; // ERROR, wrong size
in vec2 ind[gl_MaxPatchVertices];
in testbla { // ERROR, not array
int f;
} bla;
in testblb {
int f;
} blb[];
in testblc { // ERROR wrong size
int f;
} blc[18];
in testbld {
int f;
} bld[gl_MaxPatchVertices];
layout(location = 23) in vec4 ivla[];
layout(location = 24) in vec4 ivlb[];
layout(location = 24) in vec4 ivlc[]; // ERROR, overlap
layout(location = 23) out vec4 ovla[2];
layout(location = 24) out vec4 ovlb[2]; // ERROR, overlap
in float gl_TessLevelOuter[4]; // ERROR, can't redeclare
patch in pinbn {
int a;
} pinbi;
centroid out vec3 myColor2;
centroid in vec3 centr[];
sample out vec4 perSampleColor;
void bbbad()
{
gl_BoundingBoxOES; // ERROR, wrong stage
}

255
Test/320.vert Normal file
View File

@ -0,0 +1,255 @@
#version 320 es
out outbname {
int a;
out vec4 v;
highp sampler2D s; // ERROR, opaque type
} outbinst;
out outbname2 {
layout(location = 12) int aAnon;
layout(location = 13) vec4 vAnon;
};
layout(location = 12) out highp int aliased; // ERROR, aliasing location
in inbname { int a; } inbinst; // ERROR, no in block in vertex shader
out gl_PerVertex { // ERROR, has extra member
highp vec4 gl_Position;
highp vec4 t;
};
void main()
{
int sum = gl_VertexID +
gl_InstanceID;
gl_Position = vec4(1.0);
gl_PointSize = 2.0; // ERROR, removed by redeclaration
}
out gl_PerVertex { // ERROR, already used and already redeclared
highp vec4 gl_Position;
highp vec4 t;
};
smooth out smo { // ERROR, no smooth on a block
int i;
} smon;
flat out fmo { // ERROR, no flat on a block
int i;
} fmon;
centroid out cmo { // ERROR, no centroid on a block
int i;
} cmon;
invariant out imo { // ERROR, no invariant on a block
int i;
} imon;
in vec2 inf, ing;
uniform ivec2 offsets[4];
uniform sampler2D sArray[4];
uniform int sIndex;
layout(binding = 0) uniform atomic_uint auArray[2];
uniform ubName { int i; } ubInst[4];
buffer bbName { int i; } bbInst[4];
highp uniform writeonly image2D iArray[5];
const ivec2 constOffsets[4] = ivec2[4](ivec2(0.1), ivec2(0.2), ivec2(0.3), ivec2(0.4));
void pfoo()
{
precise vec2 h;
h = fma(inf, ing, h);
sArray[sIndex + 1];
ubInst[sIndex + 1];
bbInst[sIndex - 2]; // ERROR, still not supported
iArray[2];
iArray[sIndex - 2];
textureGatherOffset(sArray[0], vec2(0.1), ivec2(inf));
textureGatherOffsets(sArray[0], vec2(0.1), constOffsets);
textureGatherOffsets(sArray[0], vec2(0.1), offsets); // ERROR, offset not constant
}
uniform samplerBuffer noPreSamp1; // ERROR, no default precision
uniform isamplerBuffer noPreSamp2; // ERROR, no default precision
uniform usamplerBuffer noPreSamp3; // ERROR, no default precision
uniform writeonly imageBuffer noPreSamp4; // ERROR, no default precision
uniform writeonly iimageBuffer noPreSamp5; // ERROR, no default precision
uniform writeonly uimageBuffer noPreSamp6; // ERROR, no default precision
precision highp samplerBuffer;
precision highp isamplerBuffer;
precision highp usamplerBuffer;
precision highp imageBuffer;
precision highp iimageBuffer;
precision highp uimageBuffer;
#ifdef GL_OES_texture_buffer
uniform samplerBuffer bufSamp1;
uniform isamplerBuffer bufSamp2;
uniform usamplerBuffer bufSamp3;
#endif
#ifdef GL_EXT_texture_buffer
uniform writeonly imageBuffer bufSamp4;
uniform writeonly iimageBuffer bufSamp5;
uniform writeonly uimageBuffer bufSamp6;
#endif
void bufferT()
{
highp int s1 = textureSize(bufSamp1);
highp int s2 = textureSize(bufSamp2);
highp int s3 = textureSize(bufSamp3);
highp int s4 = imageSize(bufSamp4);
highp int s5 = imageSize(bufSamp5);
highp int s6 = imageSize(bufSamp6);
highp vec4 f1 = texelFetch(bufSamp1, s1);
highp ivec4 f2 = texelFetch(bufSamp2, s2);
highp uvec4 f3 = texelFetch(bufSamp3, s3);
}
uniform writeonly imageCubeArray noPreCA1; // ERROR, no default precision
uniform writeonly iimageCubeArray noPreCA2; // ERROR, no default precision
uniform writeonly uimageCubeArray noPreCA3; // ERROR, no default precision
uniform samplerCubeArray noPreCA4; // ERROR, no default precision
uniform samplerCubeArrayShadow noPreCA5; // ERROR, no default precision
uniform isamplerCubeArray noPreCA6; // ERROR, no default precision
uniform usamplerCubeArray noPreCA7; // ERROR, no default precision
precision highp imageCubeArray ;
precision highp iimageCubeArray ;
precision highp uimageCubeArray ;
precision highp samplerCubeArray ;
precision highp samplerCubeArrayShadow;
precision highp isamplerCubeArray ;
precision highp usamplerCubeArray ;
uniform writeonly imageCubeArray CA1;
uniform writeonly iimageCubeArray CA2;
uniform writeonly uimageCubeArray CA3;
layout(rgba16f) uniform readonly imageCubeArray rCA1;
layout(rgba32i) uniform readonly iimageCubeArray rCA2;
layout(r32ui) uniform readonly uimageCubeArray rCA3;
#ifdef GL_OES_texture_cube_map_array
uniform samplerCubeArray CA4;
uniform samplerCubeArrayShadow CA5;
uniform isamplerCubeArray CA6;
uniform usamplerCubeArray CA7;
#endif
void CAT()
{
highp ivec3 s4 = textureSize(CA4, 1);
highp ivec3 s5 = textureSize(CA5, 1);
highp ivec3 s6 = textureSize(CA6, 1);
highp ivec3 s7 = textureSize(CA7, 1);
highp vec4 t4 = texture(CA4, vec4(0.5));
highp float t5 = texture(CA5, vec4(0.5), 3.0);
highp ivec4 t6 = texture(CA6, vec4(0.5));
highp uvec4 t7 = texture(CA7, vec4(0.5));
highp vec4 L4 = textureLod(CA4, vec4(0.5), 0.24);
highp ivec4 L6 = textureLod(CA6, vec4(0.5), 0.26);
highp uvec4 L7 = textureLod(CA7, vec4(0.5), 0.27);
highp vec4 g4 = textureGrad(CA4, vec4(0.5), vec3(0.1), vec3(0.2));
highp ivec4 g6 = textureGrad(CA6, vec4(0.5), vec3(0.1), vec3(0.2));
highp uvec4 g7 = textureGrad(CA7, vec4(0.5), vec3(0.1), vec3(0.2));
highp vec4 gath4 = textureGather(CA4, vec4(0.5));
highp vec4 gathC4 = textureGather(CA4, vec4(0.5), 2);
highp ivec4 gath6 = textureGather(CA6, vec4(0.5));
highp ivec4 gathC6 = textureGather(CA6, vec4(0.5), 1);
highp uvec4 gath7 = textureGather(CA7, vec4(0.5));
highp uvec4 gathC7 = textureGather(CA7, vec4(0.5), 0);
highp vec4 gath5 = textureGather(CA5, vec4(0.5), 2.5);
highp ivec3 s1 = imageSize(CA1);
highp ivec3 s2 = imageSize(CA2);
highp ivec3 s3 = imageSize(CA3);
imageStore(CA1, s3, vec4(1));
imageStore(CA2, s3, ivec4(1));
imageStore(CA3, s3, uvec4(1));
highp vec4 cl1 = imageLoad(rCA1, s3);
highp ivec4 cl2 = imageLoad(rCA2, s3);
highp uvec4 cl3 = imageLoad(rCA3, s3);
}
uniform sampler2DMSArray noPrec2DMS; // ERROR, no default
uniform isampler2DMSArray noPrec2DMSi; // ERROR, no default
uniform usampler2DMSArray noPrec2DMSu; // ERROR, no default
precision highp sampler2DMSArray;
precision highp isampler2DMSArray;
precision highp usampler2DMSArray;
uniform sampler2DMSArray samp2DMSA;
uniform isampler2DMSArray samp2DMSAi;
uniform usampler2DMSArray samp2DMSAu;
void MSA()
{
vec4 tf = texelFetch(samp2DMSA, ivec3(5), 2);
ivec4 tfi = texelFetch(samp2DMSAi, ivec3(5), 2);
uvec4 tfu = texelFetch(samp2DMSAu, ivec3(5), 2);
ivec3 tfs = textureSize(samp2DMSA);
ivec3 tfsi = textureSize(samp2DMSAi);
ivec3 tfsb = textureSize(samp2DMSAi, 4); // ERROR, no lod
ivec3 tfsu = textureSize(samp2DMSAu);
}
uniform layout(r32f) highp image2D im2Df;
uniform layout(r32ui) highp uimage2D im2Du;
uniform layout(r32i) highp iimage2D im2Di;
uniform ivec2 P;
void goodImageAtom()
{
float datf;
int dati;
uint datu;
imageAtomicAdd( im2Di, P, dati);
imageAtomicAdd( im2Du, P, datu);
imageAtomicMin( im2Di, P, dati);
imageAtomicMin( im2Du, P, datu);
imageAtomicMax( im2Di, P, dati);
imageAtomicMax( im2Du, P, datu);
imageAtomicAnd( im2Di, P, dati);
imageAtomicAnd( im2Du, P, datu);
imageAtomicOr( im2Di, P, dati);
imageAtomicOr( im2Du, P, datu);
imageAtomicXor( im2Di, P, dati);
imageAtomicXor( im2Du, P, datu);
imageAtomicExchange(im2Di, P, dati);
imageAtomicExchange(im2Du, P, datu);
imageAtomicExchange(im2Df, P, datf);
imageAtomicCompSwap(im2Di, P, 3, dati);
imageAtomicCompSwap(im2Du, P, 5u, datu);
}
sample out vec4 colorSample;
flat sample out vec4 colorfsi;
sample out vec3 sampInArray[4];
in vec4 inv4;
void badInterp()
{
interpolateAtCentroid(inv4); // ERROR, wrong stage
interpolateAtSample(inv4, 1); // ERROR, need extension
interpolateAtOffset(inv4, vec2(0.2)); // ERROR, need extension
}

View File

@ -123,7 +123,7 @@ ERROR: 0:391: 'interpolateAtOffset' : first argument must be an interpolant, or
ERROR: 0:392: 'interpolateAtOffset' : first argument must be an interpolant, or interpolant-array element
ERROR: 0:396: 'interpolateAtCentroid' : first argument must be an interpolant, or interpolant-array element
ERROR: 0:397: 'interpolateAtSample' : first argument must be an interpolant, or interpolant-array element
ERROR: 0:400: 'blend equation' : required extension not requested: GL_KHR_blend_equation_advanced
ERROR: 0:400: 'blend equation' : not supported for this version or the enabled extensions
ERROR: 0:423: 'blend equation' : can only apply to 'out'
ERROR: 0:424: 'blend equation' : can only apply to a standalone qualifier
ERROR: 0:425: 'blend equation' : can only apply to a standalone qualifier

19
Test/baseResults/320.comp.out Executable file
View File

@ -0,0 +1,19 @@
320.comp
Shader version: 320
local_size = (1, 1, 1)
0:? Sequence
0:3 Function Definition: main( ( global void)
0:3 Function Parameters:
0:? Linker Objects
Linked compute stage:
Shader version: 320
local_size = (1, 1, 1)
0:? Sequence
0:3 Function Definition: main( ( global void)
0:3 Function Parameters:
0:? Linker Objects

576
Test/baseResults/320.frag.out Executable file
View File

@ -0,0 +1,576 @@
320.frag
ERROR: 0:3: 'output block' : not supported in this stage: fragment
ERROR: 0:7: 'float' : type requires declaration of default precision qualifier
ERROR: 0:8: '' : cannot nest a structure definition inside a structure or block
ERROR: 0:16: 'location' : overlapping use of location 13
ERROR: 0:18: 'inbname2' : Cannot reuse block name within the same interface: in
ERROR: 0:23: 'badmember' : nameless block contains a member that already has a name at global scope
ERROR: 0:27: 'inbname' : redefinition
ERROR: 0:29: 'vAnon' : redefinition
ERROR: 0:43: 'origin_upper_left' : not supported with this profile: es
ERROR: 0:43: 'pixel_center_integer' : not supported with this profile: es
ERROR: 0:43: 'redeclaration' : cannot redeclare with different qualification: gl_FragCoord
ERROR: 0:47: 'depth layout qualifier' : not supported with this profile: es
ERROR: 0:51: 'assign' : l-value required "gl_FragDepth" (can't modify gl_FragDepth if using early_fragment_tests)
ERROR: 0:79: 'textureGatherOffsets(...)' : must be a compile-time constant: offsets argument
ERROR: 0:124: 'rgba32f' : format requires readonly or writeonly memory qualifier
ERROR: 0:125: 'rgba8ui' : format requires readonly or writeonly memory qualifier
ERROR: 0:126: 'rgba16i' : format requires readonly or writeonly memory qualifier
ERROR: 0:152: 'imageAtomicMax' : only supported on image with format r32i or r32ui
ERROR: 0:153: 'imageAtomicMax' : only supported on image with format r32i or r32ui
ERROR: 0:154: 'imageAtomicExchange' : only supported on image with format r32f
ERROR: 0:157: 'centroid/sample/patch' : can't use auxiliary qualifier on a fragment output
ERROR: 0:158: 'flat/smooth/noperspective' : can't use interpolation qualifier on a fragment output
ERROR: 0:159: 'flat/smooth/noperspective' : can't use interpolation qualifier on a fragment output
ERROR: 0:160: 'noperspective' : Reserved word.
ERROR: 0:160: 'noperspective' : not supported with this profile: es
ERROR: 0:160: 'flat/smooth/noperspective' : can't use interpolation qualifier on a fragment output
ERROR: 0:165: 'centroid/sample/patch' : can't use auxiliary qualifier on a fragment output
ERROR: 0:180: 'interpolateAtCentroid' : no matching overloaded function found
ERROR: 0:180: 'assign' : cannot convert from ' const float' to ' temp mediump 3-component vector of float'
ERROR: 0:182: 'interpolateAtCentroid' : first argument must be an interpolant, or interpolant-array element
ERROR: 0:184: 'interpolateAtSample' : no matching overloaded function found
ERROR: 0:184: 'assign' : cannot convert from ' const float' to ' temp mediump 3-component vector of float'
ERROR: 0:186: 'interpolateAtSample' : first argument must be an interpolant, or interpolant-array element
ERROR: 0:189: 'interpolateAtOffset' : no matching overloaded function found
ERROR: 0:189: 'assign' : cannot convert from ' const float' to ' temp mediump 3-component vector of float'
ERROR: 0:191: 'interpolateAtOffset' : first argument must be an interpolant, or interpolant-array element
ERROR: 0:192: 'interpolateAtOffset' : first argument must be an interpolant, or interpolant-array element
ERROR: 0:196: 'interpolateAtCentroid' : first argument must be an interpolant, or interpolant-array element
ERROR: 0:197: 'outp' : undeclared identifier
ERROR: 0:197: 'interpolateAtSample' : first argument must be an interpolant, or interpolant-array element
ERROR: 0:197: 'assign' : cannot convert from ' global float' to ' temp mediump 4-component vector of float'
ERROR: 0:217: 'blend equation' : can only apply to 'out'
ERROR: 0:218: 'blend equation' : can only apply to a standalone qualifier
ERROR: 0:219: 'blend equation' : can only apply to a standalone qualifier
ERROR: 0:220: 'blend equation' : can only apply to a standalone qualifier
ERROR: 0:221: 'blend equation' : can only apply to a standalone qualifier
ERROR: 0:222: 'blend equation' : can only apply to a standalone qualifier
ERROR: 0:223: 'blend_support' : unknown blend equation
ERROR: 0:225: 'fragment-shader array-of-array output' : not supported with this profile: es
ERROR: 49 compilation errors. No code generated.
Shader version: 320
gl_FragCoord pixel center is integer
gl_FragCoord origin is upper left
using early_fragment_tests
using depth_any
using blend_support_multiply blend_support_screen blend_support_overlay blend_support_darken blend_support_lighten blend_support_colordodge blend_support_colorburn blend_support_hardlight blend_support_softlight blend_support_difference blend_support_exclusion blend_support_hsl_hue blend_support_hsl_saturation blend_support_hsl_color blend_support_hsl_luminosity blend_support_all_equations
ERROR: node is still EOpNull!
0:35 Function Definition: fooIO( ( global void)
0:35 Function Parameters:
0:37 Sequence
0:37 Sequence
0:37 move second child to first child ( temp mediump 4-component vector of float)
0:37 'v' ( temp mediump 4-component vector of float)
0:37 add ( temp mediump 4-component vector of float)
0:37 v: direct index for structure ( in mediump 4-component vector of float)
0:37 'inbinst' ( in block{ in mediump int a, in mediump 4-component vector of float v, in structure{ global mediump int b} s})
0:37 Constant:
0:37 1 (const int)
0:37 vAnon: direct index for structure (layout( location=13) centroid in mediump 4-component vector of float)
0:37 'anon@0' ( in block{layout( location=12) in mediump int aAnon, layout( location=13) centroid in mediump 4-component vector of float vAnon})
0:37 Constant:
0:37 1 (const uint)
0:38 vector scale second child into first child ( temp mediump 4-component vector of float)
0:38 'v' ( temp mediump 4-component vector of float)
0:38 f: direct index for structure ( in mediump float)
0:38 direct index ( temp block{ in mediump float f})
0:38 'arrayedInst' ( in 4-element array of block{ in mediump float f})
0:38 Constant:
0:38 2 (const int)
0:38 Constant:
0:38 0 (const int)
0:39 vector scale second child into first child ( temp mediump 4-component vector of float)
0:39 'v' ( temp mediump 4-component vector of float)
0:39 f: direct index for structure ( in mediump float)
0:39 indirect index ( temp block{ in mediump float f})
0:39 'arrayedInst' ( in 4-element array of block{ in mediump float f})
0:39 'i' ( uniform mediump int)
0:39 Constant:
0:39 0 (const int)
0:49 Function Definition: main( ( global void)
0:49 Function Parameters:
0:51 Sequence
0:51 move second child to first child ( temp highp float)
0:51 'gl_FragDepth' ( gl_FragDepth highp float FragDepth)
0:51 Constant:
0:51 0.200000
0:52 Sequence
0:52 move second child to first child ( temp bool)
0:52 'f' ( temp bool)
0:52 'gl_FrontFacing' ( gl_FrontFacing bool Face)
0:57 Function Definition: foo_GS( ( global void)
0:57 Function Parameters:
0:59 Sequence
0:59 Sequence
0:59 move second child to first child ( temp highp int)
0:59 'l' ( temp highp int)
0:59 'gl_Layer' ( flat in highp int Layer)
0:60 Sequence
0:60 move second child to first child ( temp highp int)
0:60 'p' ( temp highp int)
0:60 'gl_PrimitiveID' ( flat in highp int PrimitiveID)
0:73 Function Definition: pfoo( ( global void)
0:73 Function Parameters:
0:? Sequence
0:76 move second child to first child ( temp mediump 2-component vector of float)
0:76 'h' ( noContraction temp mediump 2-component vector of float)
0:76 fma ( global mediump 2-component vector of float)
0:76 'inf' ( smooth in mediump 2-component vector of float)
0:76 'ing' ( smooth in mediump 2-component vector of float)
0:76 'h' ( noContraction temp mediump 2-component vector of float)
0:77 textureGatherOffset ( global lowp 4-component vector of float)
0:77 direct index ( temp lowp sampler2D)
0:77 'sArray' ( uniform 4-element array of lowp sampler2D)
0:77 Constant:
0:77 0 (const int)
0:77 Constant:
0:77 0.100000
0:77 0.100000
0:77 Convert float to int ( temp lowp 2-component vector of int)
0:77 'inf' ( smooth in mediump 2-component vector of float)
0:78 textureGatherOffsets ( global lowp 4-component vector of float, operation at mediump)
0:78 direct index ( temp lowp sampler2D)
0:78 'sArray' ( uniform 4-element array of lowp sampler2D)
0:78 Constant:
0:78 0 (const int)
0:78 Constant:
0:78 0.100000
0:78 0.100000
0:78 Constant:
0:78 0 (const int)
0:78 0 (const int)
0:78 0 (const int)
0:78 0 (const int)
0:78 0 (const int)
0:78 0 (const int)
0:78 0 (const int)
0:78 0 (const int)
0:79 textureGatherOffsets ( global lowp 4-component vector of float, operation at mediump)
0:79 direct index ( temp lowp sampler2D)
0:79 'sArray' ( uniform 4-element array of lowp sampler2D)
0:79 Constant:
0:79 0 (const int)
0:79 Constant:
0:79 0.100000
0:79 0.100000
0:79 'offsets' ( uniform 4-element array of mediump 2-component vector of int)
0:102 Function Definition: CAT( ( global void)
0:102 Function Parameters:
0:104 Sequence
0:104 Sequence
0:104 move second child to first child ( temp highp 4-component vector of float)
0:104 'b4' ( temp highp 4-component vector of float)
0:104 texture ( global highp 4-component vector of float)
0:104 'CA4' ( uniform highp samplerCubeArray)
0:104 Constant:
0:104 0.500000
0:104 0.500000
0:104 0.500000
0:104 0.500000
0:104 Constant:
0:104 0.240000
0:105 Sequence
0:105 move second child to first child ( temp highp 4-component vector of int)
0:105 'b6' ( temp highp 4-component vector of int)
0:105 texture ( global highp 4-component vector of int)
0:105 'CA6' ( uniform highp isamplerCubeArray)
0:105 Constant:
0:105 0.500000
0:105 0.500000
0:105 0.500000
0:105 0.500000
0:105 Constant:
0:105 0.260000
0:106 Sequence
0:106 move second child to first child ( temp highp 4-component vector of uint)
0:106 'b7' ( temp highp 4-component vector of uint)
0:106 texture ( global highp 4-component vector of uint)
0:106 'CA7' ( uniform highp usamplerCubeArray)
0:106 Constant:
0:106 0.500000
0:106 0.500000
0:106 0.500000
0:106 0.500000
0:106 Constant:
0:106 0.270000
0:109 Function Definition: goodSample( ( global void)
0:109 Function Parameters:
0:111 Sequence
0:111 Sequence
0:111 move second child to first child ( temp lowp int)
0:111 'a1' ( temp lowp int)
0:111 'gl_SampleID' ( flat in lowp int SampleId)
0:112 Sequence
0:112 move second child to first child ( temp mediump 2-component vector of float)
0:112 'a2' ( temp mediump 2-component vector of float)
0:112 'gl_SamplePosition' ( smooth in mediump 2-component vector of float SamplePosition)
0:113 Sequence
0:113 move second child to first child ( temp highp int)
0:113 'a3' ( temp highp int)
0:113 direct index ( flat temp highp int SampleMaskIn)
0:113 'gl_SampleMaskIn' ( flat in implicitly-sized array of highp int SampleMaskIn)
0:113 Constant:
0:113 0 (const int)
0:114 move second child to first child ( temp highp int)
0:114 direct index ( temp highp int SampleMaskIn)
0:114 'gl_SampleMask' ( out implicitly-sized array of highp int SampleMaskIn)
0:114 Constant:
0:114 0 (const int)
0:114 'a3' ( temp highp int)
0:115 Sequence
0:115 move second child to first child ( temp mediump int)
0:115 'n1' ( temp mediump int)
0:115 Constant:
0:115 4 (const int)
0:116 Sequence
0:116 move second child to first child ( temp mediump int)
0:116 'n2' ( temp mediump int)
0:116 'gl_NumSamples' ( uniform lowp int)
0:128 Function Definition: goodImageAtom( ( global void)
0:128 Function Parameters:
0:? Sequence
0:134 imageAtomicAdd ( global highp int)
0:134 'im2Di' (layout( r32i) uniform highp iimage2D)
0:134 'P' ( uniform mediump 2-component vector of int)
0:134 'dati' ( temp mediump int)
0:135 imageAtomicAdd ( global highp uint)
0:135 'im2Du' (layout( r32ui) uniform highp uimage2D)
0:135 'P' ( uniform mediump 2-component vector of int)
0:135 'datu' ( temp mediump uint)
0:136 imageAtomicMin ( global highp int)
0:136 'im2Di' (layout( r32i) uniform highp iimage2D)
0:136 'P' ( uniform mediump 2-component vector of int)
0:136 'dati' ( temp mediump int)
0:137 imageAtomicMin ( global highp uint)
0:137 'im2Du' (layout( r32ui) uniform highp uimage2D)
0:137 'P' ( uniform mediump 2-component vector of int)
0:137 'datu' ( temp mediump uint)
0:138 imageAtomicMax ( global highp int)
0:138 'im2Di' (layout( r32i) uniform highp iimage2D)
0:138 'P' ( uniform mediump 2-component vector of int)
0:138 'dati' ( temp mediump int)
0:139 imageAtomicMax ( global highp uint)
0:139 'im2Du' (layout( r32ui) uniform highp uimage2D)
0:139 'P' ( uniform mediump 2-component vector of int)
0:139 'datu' ( temp mediump uint)
0:140 imageAtomicAnd ( global highp int)
0:140 'im2Di' (layout( r32i) uniform highp iimage2D)
0:140 'P' ( uniform mediump 2-component vector of int)
0:140 'dati' ( temp mediump int)
0:141 imageAtomicAnd ( global highp uint)
0:141 'im2Du' (layout( r32ui) uniform highp uimage2D)
0:141 'P' ( uniform mediump 2-component vector of int)
0:141 'datu' ( temp mediump uint)
0:142 imageAtomicOr ( global highp int)
0:142 'im2Di' (layout( r32i) uniform highp iimage2D)
0:142 'P' ( uniform mediump 2-component vector of int)
0:142 'dati' ( temp mediump int)
0:143 imageAtomicOr ( global highp uint)
0:143 'im2Du' (layout( r32ui) uniform highp uimage2D)
0:143 'P' ( uniform mediump 2-component vector of int)
0:143 'datu' ( temp mediump uint)
0:144 imageAtomicXor ( global highp int)
0:144 'im2Di' (layout( r32i) uniform highp iimage2D)
0:144 'P' ( uniform mediump 2-component vector of int)
0:144 'dati' ( temp mediump int)
0:145 imageAtomicXor ( global highp uint)
0:145 'im2Du' (layout( r32ui) uniform highp uimage2D)
0:145 'P' ( uniform mediump 2-component vector of int)
0:145 'datu' ( temp mediump uint)
0:146 imageAtomicExchange ( global highp int)
0:146 'im2Di' (layout( r32i) uniform highp iimage2D)
0:146 'P' ( uniform mediump 2-component vector of int)
0:146 'dati' ( temp mediump int)
0:147 imageAtomicExchange ( global highp uint)
0:147 'im2Du' (layout( r32ui) uniform highp uimage2D)
0:147 'P' ( uniform mediump 2-component vector of int)
0:147 'datu' ( temp mediump uint)
0:148 imageAtomicExchange ( global highp float)
0:148 'im2Df' (layout( r32f) uniform highp image2D)
0:148 'P' ( uniform mediump 2-component vector of int)
0:148 'datf' ( temp mediump float)
0:149 imageAtomicCompSwap ( global highp int)
0:149 'im2Di' (layout( r32i) uniform highp iimage2D)
0:149 'P' ( uniform mediump 2-component vector of int)
0:149 Constant:
0:149 3 (const int)
0:149 'dati' ( temp mediump int)
0:150 imageAtomicCompSwap ( global highp uint)
0:150 'im2Du' (layout( r32ui) uniform highp uimage2D)
0:150 'P' ( uniform mediump 2-component vector of int)
0:150 Constant:
0:150 5 (const uint)
0:150 'datu' ( temp mediump uint)
0:152 imageAtomicMax ( global highp int)
0:152 'badIm2Di' (layout( rgba16i) uniform highp iimage2D)
0:152 'P' ( uniform mediump 2-component vector of int)
0:152 'dati' ( temp mediump int)
0:153 imageAtomicMax ( global highp uint)
0:153 'badIm2Du' (layout( rgba8ui) uniform highp uimage2D)
0:153 'P' ( uniform mediump 2-component vector of int)
0:153 'datu' ( temp mediump uint)
0:154 imageAtomicExchange ( global highp float)
0:154 'badIm2Df' (layout( rgba32f) uniform highp image2D)
0:154 'P' ( uniform mediump 2-component vector of int)
0:154 'datf' ( temp mediump float)
0:169 Function Definition: interp( ( global void)
0:169 Function Parameters:
0:? Sequence
0:176 move second child to first child ( temp mediump 2-component vector of float)
0:176 'res2' ( temp mediump 2-component vector of float)
0:176 interpolateAtCentroid ( global mediump 2-component vector of float)
0:176 'colorfc' ( centroid flat in mediump 2-component vector of float)
0:177 move second child to first child ( temp mediump 4-component vector of float)
0:177 'res4' ( temp mediump 4-component vector of float)
0:177 interpolateAtCentroid ( global mediump 4-component vector of float)
0:177 'colorSampIn' ( smooth sample in mediump 4-component vector of float)
0:178 move second child to first child ( temp mediump 4-component vector of float)
0:178 'res4' ( temp mediump 4-component vector of float)
0:178 interpolateAtCentroid ( global mediump 4-component vector of float)
0:178 'colorfsi' ( flat sample in mediump 4-component vector of float)
0:179 move second child to first child ( temp mediump float)
0:179 'res' ( temp mediump float)
0:179 interpolateAtCentroid ( global mediump float)
0:179 'scalarIn' ( smooth in mediump float)
0:180 'res3' ( temp mediump 3-component vector of float)
0:181 move second child to first child ( temp mediump 3-component vector of float)
0:181 'res3' ( temp mediump 3-component vector of float)
0:181 interpolateAtCentroid ( global mediump 3-component vector of float)
0:181 direct index ( smooth sample temp mediump 3-component vector of float)
0:181 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float)
0:181 Constant:
0:181 2 (const int)
0:182 move second child to first child ( temp mediump 2-component vector of float)
0:182 'res2' ( temp mediump 2-component vector of float)
0:182 interpolateAtCentroid ( global mediump 2-component vector of float)
0:182 vector swizzle ( temp mediump 2-component vector of float)
0:182 direct index ( smooth sample temp mediump 3-component vector of float)
0:182 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float)
0:182 Constant:
0:182 2 (const int)
0:182 Sequence
0:182 Constant:
0:182 0 (const int)
0:182 Constant:
0:182 1 (const int)
0:184 'res3' ( temp mediump 3-component vector of float)
0:185 move second child to first child ( temp mediump 3-component vector of float)
0:185 'res3' ( temp mediump 3-component vector of float)
0:185 interpolateAtSample ( global mediump 3-component vector of float)
0:185 indirect index ( smooth sample temp mediump 3-component vector of float)
0:185 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float)
0:185 'i' ( uniform mediump int)
0:185 Constant:
0:185 0 (const int)
0:186 move second child to first child ( temp mediump 2-component vector of float)
0:186 'res2' ( temp mediump 2-component vector of float)
0:186 interpolateAtSample ( global mediump 2-component vector of float)
0:186 vector swizzle ( temp mediump 2-component vector of float)
0:186 direct index ( smooth sample temp mediump 3-component vector of float)
0:186 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float)
0:186 Constant:
0:186 2 (const int)
0:186 Sequence
0:186 Constant:
0:186 0 (const int)
0:186 Constant:
0:186 1 (const int)
0:186 Constant:
0:186 2 (const int)
0:187 move second child to first child ( temp mediump float)
0:187 'res' ( temp mediump float)
0:187 interpolateAtSample ( global mediump float)
0:187 'scalarIn' ( smooth in mediump float)
0:187 Constant:
0:187 1 (const int)
0:189 'res3' ( temp mediump 3-component vector of float)
0:190 move second child to first child ( temp mediump 3-component vector of float)
0:190 'res3' ( temp mediump 3-component vector of float)
0:190 interpolateAtOffset ( global mediump 3-component vector of float)
0:190 direct index ( smooth sample temp mediump 3-component vector of float)
0:190 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float)
0:190 Constant:
0:190 2 (const int)
0:190 Constant:
0:190 0.200000
0:190 0.200000
0:191 move second child to first child ( temp mediump 2-component vector of float)
0:191 'res2' ( temp mediump 2-component vector of float)
0:191 interpolateAtOffset ( global mediump 2-component vector of float)
0:191 vector swizzle ( temp mediump 2-component vector of float)
0:191 direct index ( smooth sample temp mediump 3-component vector of float)
0:191 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float)
0:191 Constant:
0:191 2 (const int)
0:191 Sequence
0:191 Constant:
0:191 0 (const int)
0:191 Constant:
0:191 1 (const int)
0:191 Constant:
0:191 0.200000
0:191 0.200000
0:192 move second child to first child ( temp mediump float)
0:192 'res' ( temp mediump float)
0:192 interpolateAtOffset ( global mediump float)
0:192 add ( temp mediump float)
0:192 'scalarIn' ( smooth in mediump float)
0:192 'scalarIn' ( smooth in mediump float)
0:192 Constant:
0:192 0.200000
0:192 0.200000
0:193 move second child to first child ( temp mediump float)
0:193 'res' ( temp mediump float)
0:193 interpolateAtOffset ( global mediump float)
0:193 'scalarIn' ( smooth in mediump float)
0:193 Constant:
0:193 0.200000
0:193 0.200000
0:196 move second child to first child ( temp mediump float)
0:196 'res' ( temp mediump float)
0:196 interpolateAtCentroid ( global mediump float)
0:196 'f' ( temp mediump float)
0:197 'res4' ( temp mediump 4-component vector of float)
0:221 Function Definition: blendFoo( ( temp void)
0:221 Function Parameters:
0:222 Function Definition: blendFoo(vf3; ( global void)
0:222 Function Parameters:
0:222 'v' ( in mediump 3-component vector of float)
0:? Linker Objects
0:? 'outbinst' ( out block{ out mediump int a})
0:? 'inbinst' ( in block{ in mediump int a, in mediump 4-component vector of float v, in structure{ global mediump int b} s})
0:? 'anon@0' ( in block{layout( location=12) in mediump int aAnon, layout( location=13) centroid in mediump 4-component vector of float vAnon})
0:? 'aliased' (layout( location=13) smooth in mediump 4-component vector of float)
0:? 'arrayedInst' ( in 4-element array of block{ in mediump float f})
0:? 'i' ( uniform mediump int)
0:? 'gl_FragCoord' ( gl_FragCoord highp 4-component vector of float FragCoord)
0:? 'gl_FragDepth' ( gl_FragDepth highp float FragDepth)
0:? 'inf' ( smooth in mediump 2-component vector of float)
0:? 'ing' ( smooth in mediump 2-component vector of float)
0:? 'offsets' ( uniform 4-element array of mediump 2-component vector of int)
0:? 'sArray' ( uniform 4-element array of lowp sampler2D)
0:? 'sIndex' ( uniform mediump int)
0:? 'auArray' (layout( binding=0 offset=0) uniform 2-element array of highp atomic_uint)
0:? 'ubInst' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform mediump int i})
0:? 'bbInst' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer mediump int i})
0:? 'iArray' ( writeonly uniform 5-element array of highp image2D)
0:? 'constOffsets' ( const 4-element array of mediump 2-component vector of int)
0:? 0 (const int)
0:? 0 (const int)
0:? 0 (const int)
0:? 0 (const int)
0:? 0 (const int)
0:? 0 (const int)
0:? 0 (const int)
0:? 0 (const int)
0:? 'CA1' ( writeonly uniform highp imageCubeArray)
0:? 'CA2' ( writeonly uniform highp iimageCubeArray)
0:? 'CA3' ( writeonly uniform highp uimageCubeArray)
0:? 'CA4' ( uniform highp samplerCubeArray)
0:? 'CA5' ( uniform highp samplerCubeArrayShadow)
0:? 'CA6' ( uniform highp isamplerCubeArray)
0:? 'CA7' ( uniform highp usamplerCubeArray)
0:? 'gl_SampleMaskIn' ( flat in implicitly-sized array of highp int SampleMaskIn)
0:? 'gl_SampleMask' ( out implicitly-sized array of highp int SampleMaskIn)
0:? 'im2Df' (layout( r32f) uniform highp image2D)
0:? 'im2Du' (layout( r32ui) uniform highp uimage2D)
0:? 'im2Di' (layout( r32i) uniform highp iimage2D)
0:? 'P' ( uniform mediump 2-component vector of int)
0:? 'badIm2Df' (layout( rgba32f) uniform highp image2D)
0:? 'badIm2Du' (layout( rgba8ui) uniform highp uimage2D)
0:? 'badIm2Di' (layout( rgba16i) uniform highp iimage2D)
0:? 'colorCentroidBad' ( centroid out mediump 4-component vector of float)
0:? 'colorBadFlat' ( flat out mediump 4-component vector of float)
0:? 'colorBadSmooth' ( smooth out mediump 4-component vector of float)
0:? 'colorBadNo' ( noperspective out mediump 4-component vector of float)
0:? 'colorfc' ( centroid flat in mediump 2-component vector of float)
0:? 'scalarIn' ( smooth in mediump float)
0:? 'colorSampIn' ( smooth sample in mediump 4-component vector of float)
0:? 'colorSampleBad' ( sample out mediump 4-component vector of float)
0:? 'colorfsi' ( flat sample in mediump 4-component vector of float)
0:? 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float)
0:? 'badout' ( out mediump 4-component vector of float)
0:? 'outAA' ( out 2-element array of 2-element array of mediump 4-component vector of float)
Linked fragment stage:
ERROR: Linking fragment stage: when more than one fragment shader output, all must have location qualifiers
Shader version: 320
gl_FragCoord pixel center is integer
gl_FragCoord origin is upper left
using early_fragment_tests
using depth_any
using blend_support_multiply blend_support_screen blend_support_overlay blend_support_darken blend_support_lighten blend_support_colordodge blend_support_colorburn blend_support_hardlight blend_support_softlight blend_support_difference blend_support_exclusion blend_support_hsl_hue blend_support_hsl_saturation blend_support_hsl_color blend_support_hsl_luminosity blend_support_all_equations
ERROR: node is still EOpNull!
0:49 Function Definition: main( ( global void)
0:49 Function Parameters:
0:51 Sequence
0:51 move second child to first child ( temp highp float)
0:51 'gl_FragDepth' ( gl_FragDepth highp float FragDepth)
0:51 Constant:
0:51 0.200000
0:52 Sequence
0:52 move second child to first child ( temp bool)
0:52 'f' ( temp bool)
0:52 'gl_FrontFacing' ( gl_FrontFacing bool Face)
0:? Linker Objects
0:? 'outbinst' ( out block{ out mediump int a})
0:? 'inbinst' ( in block{ in mediump int a, in mediump 4-component vector of float v, in structure{ global mediump int b} s})
0:? 'anon@0' ( in block{layout( location=12) in mediump int aAnon, layout( location=13) centroid in mediump 4-component vector of float vAnon})
0:? 'aliased' (layout( location=13) smooth in mediump 4-component vector of float)
0:? 'arrayedInst' ( in 4-element array of block{ in mediump float f})
0:? 'i' ( uniform mediump int)
0:? 'gl_FragCoord' ( gl_FragCoord highp 4-component vector of float FragCoord)
0:? 'gl_FragDepth' ( gl_FragDepth highp float FragDepth)
0:? 'inf' ( smooth in mediump 2-component vector of float)
0:? 'ing' ( smooth in mediump 2-component vector of float)
0:? 'offsets' ( uniform 4-element array of mediump 2-component vector of int)
0:? 'sArray' ( uniform 4-element array of lowp sampler2D)
0:? 'sIndex' ( uniform mediump int)
0:? 'auArray' (layout( binding=0 offset=0) uniform 2-element array of highp atomic_uint)
0:? 'ubInst' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform mediump int i})
0:? 'bbInst' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer mediump int i})
0:? 'iArray' ( writeonly uniform 5-element array of highp image2D)
0:? 'constOffsets' ( const 4-element array of mediump 2-component vector of int)
0:? 0 (const int)
0:? 0 (const int)
0:? 0 (const int)
0:? 0 (const int)
0:? 0 (const int)
0:? 0 (const int)
0:? 0 (const int)
0:? 0 (const int)
0:? 'CA1' ( writeonly uniform highp imageCubeArray)
0:? 'CA2' ( writeonly uniform highp iimageCubeArray)
0:? 'CA3' ( writeonly uniform highp uimageCubeArray)
0:? 'CA4' ( uniform highp samplerCubeArray)
0:? 'CA5' ( uniform highp samplerCubeArrayShadow)
0:? 'CA6' ( uniform highp isamplerCubeArray)
0:? 'CA7' ( uniform highp usamplerCubeArray)
0:? 'gl_SampleMaskIn' ( flat in 1-element array of highp int SampleMaskIn)
0:? 'gl_SampleMask' ( out 1-element array of highp int SampleMaskIn)
0:? 'im2Df' (layout( r32f) uniform highp image2D)
0:? 'im2Du' (layout( r32ui) uniform highp uimage2D)
0:? 'im2Di' (layout( r32i) uniform highp iimage2D)
0:? 'P' ( uniform mediump 2-component vector of int)
0:? 'badIm2Df' (layout( rgba32f) uniform highp image2D)
0:? 'badIm2Du' (layout( rgba8ui) uniform highp uimage2D)
0:? 'badIm2Di' (layout( rgba16i) uniform highp iimage2D)
0:? 'colorCentroidBad' ( centroid out mediump 4-component vector of float)
0:? 'colorBadFlat' ( flat out mediump 4-component vector of float)
0:? 'colorBadSmooth' ( smooth out mediump 4-component vector of float)
0:? 'colorBadNo' ( noperspective out mediump 4-component vector of float)
0:? 'colorfc' ( centroid flat in mediump 2-component vector of float)
0:? 'scalarIn' ( smooth in mediump float)
0:? 'colorSampIn' ( smooth sample in mediump 4-component vector of float)
0:? 'colorSampleBad' ( sample out mediump 4-component vector of float)
0:? 'colorfsi' ( flat sample in mediump 4-component vector of float)
0:? 'sampInArray' ( smooth sample in 4-element array of mediump 3-component vector of float)
0:? 'badout' ( out mediump 4-component vector of float)
0:? 'outAA' ( out 2-element array of 2-element array of mediump 4-component vector of float)

251
Test/baseResults/320.geom.out Executable file
View File

@ -0,0 +1,251 @@
320.geom
ERROR: 0:19: 'fromVertex' : block instance name redefinition
ERROR: 0:23: 'fromVertex' : redefinition
ERROR: 0:25: 'fooC' : block instance name redefinition
ERROR: 0:33: 'EmitStreamVertex' : no matching overloaded function found
ERROR: 0:34: 'EndStreamPrimitive' : no matching overloaded function found
ERROR: 0:37: 'gl_ClipDistance' : undeclared identifier
ERROR: 0:37: 'gl_ClipDistance' : left of '[' is not of type array, matrix, or vector
ERROR: 0:38: 'gl_ClipDistance' : no such field in structure
ERROR: 0:38: 'expression' : left of '[' is not of type array, matrix, or vector
ERROR: 0:37: 'assign' : l-value required (can't modify a const)
ERROR: 0:45: 'selecting output stream' : not supported with this profile: es
ERROR: 0:52: 'max_vertices' : too large, must be less than gl_MaxGeometryOutputVertices
ERROR: 0:52: 'max_vertices' : cannot change previously set layout value
ERROR: 0:53: 'max_vertices' : can only apply to a standalone qualifier
ERROR: 0:58: 'points' : cannot change previously set output primitive
ERROR: 0:59: 'points' : cannot change previously set output primitive
ERROR: 0:60: 'triangle_strip' : cannot apply to input
ERROR: 0:61: 'triangle_strip' : cannot apply to: uniform
ERROR: 0:62: 'triangle_strip' : can only apply to a standalone qualifier
ERROR: 0:63: 'triangle_strip' : can only apply to a standalone qualifier
ERROR: 0:64: 'invocations' : can only apply to a standalone qualifier
ERROR: 0:66: 'invocations' : can only apply to a standalone qualifier
ERROR: 0:67: 'max_vertices' : can only apply to a standalone qualifier
ERROR: 0:68: 'triangle_strip' : can only apply to a standalone qualifier
ERROR: 0:71: 'lines' : cannot apply to 'out'
ERROR: 0:73: 'triangles' : cannot change previously set input primitive
ERROR: 0:74: 'triangles_adjacency' : cannot change previously set input primitive
ERROR: 0:106: 'gl_ViewportIndex' : undeclared identifier
ERROR: 0:107: 'gl_MaxViewports' : undeclared identifier
ERROR: 0:113: 'lines_adjacency' : inconsistent input primitive for array size of explArrayBad
ERROR: 0:114: 'in' : type must be an array: nonArrayed
ERROR: 0:122: 'component' : not supported with this profile: es
ERROR: 0:126: 'gl_MaxGeometryVaryingComponents' : undeclared identifier
ERROR: 0:127: 'gl_VerticesIn' : undeclared identifier
ERROR: 0:132: 'gl_PointSize' : required extension not requested: Possible extensions include:
GL_EXT_geometry_point_size
GL_OES_geometry_point_size
ERROR: 0:133: 'gl_PointSize' : required extension not requested: Possible extensions include:
GL_EXT_geometry_point_size
GL_OES_geometry_point_size
ERROR: 36 compilation errors. No code generated.
Shader version: 320
invocations = 4
max_vertices = 200
input primitive = lines_adjacency
output primitive = triangle_strip
ERROR: node is still EOpNull!
0:29 Function Definition: main( ( global void)
0:29 Function Parameters:
0:31 Sequence
0:31 EmitVertex ( global void)
0:32 EndPrimitive ( global void)
0:33 Constant:
0:33 0.000000
0:34 Constant:
0:34 0.000000
0:36 move second child to first child ( temp mediump 3-component vector of float)
0:36 color: direct index for structure (layout( stream=0) out mediump 3-component vector of float)
0:36 'anon@0' (layout( stream=0) out block{layout( stream=0) out mediump 3-component vector of float color})
0:36 Constant:
0:36 0 (const uint)
0:36 color: direct index for structure ( in mediump 3-component vector of float)
0:36 direct index ( temp block{ in mediump 3-component vector of float color})
0:36 'fromV' ( in 4-element array of block{ in mediump 3-component vector of float color})
0:36 Constant:
0:36 0 (const int)
0:36 Constant:
0:36 0 (const int)
0:37 move second child to first child ( temp float)
0:37 Constant:
0:37 0.000000
0:38 Constant:
0:38 0.000000
0:39 move second child to first child ( temp highp 4-component vector of float)
0:39 gl_Position: direct index for structure (layout( stream=0) gl_Position highp 4-component vector of float Position)
0:39 'anon@1' (layout( stream=0) out block{layout( stream=0) gl_Position highp 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize highp float PointSize gl_PointSize})
0:39 Constant:
0:39 0 (const uint)
0:39 gl_Position: direct index for structure ( in highp 4-component vector of float Position)
0:39 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
0:39 'gl_in' ( in 4-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
0:39 Constant:
0:39 0 (const int)
0:39 Constant:
0:39 0 (const int)
0:41 move second child to first child ( temp highp int)
0:41 'gl_PrimitiveID' (layout( stream=0) out highp int PrimitiveID)
0:41 'gl_PrimitiveIDIn' ( in highp int PrimitiveID)
0:42 move second child to first child ( temp highp int)
0:42 'gl_Layer' (layout( stream=0) out highp int Layer)
0:42 Constant:
0:42 2 (const int)
0:53 Function Definition: foo(i1; ( global void)
0:53 Function Parameters:
0:53 'a' ( in highp int)
0:55 Sequence
0:55 move second child to first child ( temp mediump 4-component vector of float)
0:55 a: direct index for structure (layout( stream=0) out mediump 4-component vector of float)
0:55 'ouuaa6' (layout( stream=0) out block{layout( stream=0) out mediump 4-component vector of float a})
0:55 Constant:
0:55 0 (const int)
0:55 Constant:
0:55 1.000000
0:55 1.000000
0:55 1.000000
0:55 1.000000
0:104 Function Definition: fooe1( ( global void)
0:104 Function Parameters:
0:106 Sequence
0:106 'gl_ViewportIndex' ( temp float)
0:107 'gl_MaxViewports' ( temp float)
0:108 Constant:
0:108 4 (const int)
0:109 Sequence
0:109 move second child to first child ( temp highp int)
0:109 'inv' ( temp highp int)
0:109 'gl_InvocationID' ( in highp int InvocationID)
0:124 Function Definition: notHere( ( global void)
0:124 Function Parameters:
0:126 Sequence
0:126 'gl_MaxGeometryVaryingComponents' ( temp float)
0:127 'gl_VerticesIn' ( temp float)
0:130 Function Definition: pointSize2( ( global void)
0:130 Function Parameters:
0:132 Sequence
0:132 Sequence
0:132 move second child to first child ( temp highp float)
0:132 'ps' ( temp highp float)
0:132 gl_PointSize: direct index for structure ( in highp float PointSize)
0:132 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
0:132 'gl_in' ( in 4-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
0:132 Constant:
0:132 3 (const int)
0:132 Constant:
0:132 1 (const int)
0:133 move second child to first child ( temp highp float)
0:133 gl_PointSize: direct index for structure (layout( stream=0) gl_PointSize highp float PointSize)
0:133 'anon@1' (layout( stream=0) out block{layout( stream=0) gl_Position highp 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize highp float PointSize gl_PointSize})
0:133 Constant:
0:133 1 (const uint)
0:133 'ps' ( temp highp float)
0:? Linker Objects
0:? 'fromV' ( in 4-element array of block{ in mediump 3-component vector of float color})
0:? 'nonBlockUnsized' ( in 4-element array of mediump 4-component vector of float)
0:? 'toF' (layout( stream=0) out block{layout( stream=0) out mediump 3-component vector of float color})
0:? 'anon@0' (layout( stream=0) out block{layout( stream=0) out mediump 3-component vector of float color})
0:? 'gl_in' ( in 4-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
0:? 'ov4' (layout( stream=4) out mediump 4-component vector of float)
0:? 'ouuaa6' (layout( stream=0) out block{layout( stream=0) out mediump 4-component vector of float a})
0:? 'badv4' (layout( stream=0) out mediump 4-component vector of float)
0:? 'bad2v4' ( in 4-element array of mediump 4-component vector of float)
0:? 'anon@1' (layout( stream=0) out block{layout( stream=0) out highp int a})
0:? 'outbi' (layout( stream=0) out block{layout( stream=0) out highp int a, layout( stream=0) out highp int b, layout( stream=0) out highp int c})
0:? 'insn' ( in 4-element array of block{ in highp int a15})
0:? 'anon@2' (layout( stream=0) out block{layout( stream=0) out mediump float f15})
0:? 'anon@3' (layout( column_major shared) uniform block{layout( column_major shared) uniform bool b15})
0:? 'summ' ( const highp int)
0:? 2752 (const int)
0:? 'explArray' ( in 4-element array of mediump 4-component vector of float)
0:? 'explArrayBad' ( in 5-element array of mediump 4-component vector of float)
0:? 'nonArrayed' ( in mediump 4-component vector of float)
0:? 'myColor1' (layout( stream=0) flat out mediump 3-component vector of float)
0:? 'myColor2' (layout( stream=0) centroid out mediump 3-component vector of float)
0:? 'centr' ( centroid in 4-element array of mediump 3-component vector of float)
0:? 'perSampleColor' (layout( stream=0) sample out mediump 4-component vector of float)
0:? 'comp' (layout( location=7 component=2) in 4-element array of mediump float)
Linked geometry stage:
Shader version: 320
invocations = 4
max_vertices = 200
input primitive = lines_adjacency
output primitive = triangle_strip
ERROR: node is still EOpNull!
0:29 Function Definition: main( ( global void)
0:29 Function Parameters:
0:31 Sequence
0:31 EmitVertex ( global void)
0:32 EndPrimitive ( global void)
0:33 Constant:
0:33 0.000000
0:34 Constant:
0:34 0.000000
0:36 move second child to first child ( temp mediump 3-component vector of float)
0:36 color: direct index for structure (layout( stream=0) out mediump 3-component vector of float)
0:36 'anon@0' (layout( stream=0) out block{layout( stream=0) out mediump 3-component vector of float color})
0:36 Constant:
0:36 0 (const uint)
0:36 color: direct index for structure ( in mediump 3-component vector of float)
0:36 direct index ( temp block{ in mediump 3-component vector of float color})
0:36 'fromV' ( in 4-element array of block{ in mediump 3-component vector of float color})
0:36 Constant:
0:36 0 (const int)
0:36 Constant:
0:36 0 (const int)
0:37 move second child to first child ( temp float)
0:37 Constant:
0:37 0.000000
0:38 Constant:
0:38 0.000000
0:39 move second child to first child ( temp highp 4-component vector of float)
0:39 gl_Position: direct index for structure (layout( stream=0) gl_Position highp 4-component vector of float Position)
0:39 'anon@1' (layout( stream=0) out block{layout( stream=0) gl_Position highp 4-component vector of float Position gl_Position, layout( stream=0) gl_PointSize highp float PointSize gl_PointSize})
0:39 Constant:
0:39 0 (const uint)
0:39 gl_Position: direct index for structure ( in highp 4-component vector of float Position)
0:39 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
0:39 'gl_in' ( in 4-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
0:39 Constant:
0:39 0 (const int)
0:39 Constant:
0:39 0 (const int)
0:41 move second child to first child ( temp highp int)
0:41 'gl_PrimitiveID' (layout( stream=0) out highp int PrimitiveID)
0:41 'gl_PrimitiveIDIn' ( in highp int PrimitiveID)
0:42 move second child to first child ( temp highp int)
0:42 'gl_Layer' (layout( stream=0) out highp int Layer)
0:42 Constant:
0:42 2 (const int)
0:? Linker Objects
0:? 'fromV' ( in 4-element array of block{ in mediump 3-component vector of float color})
0:? 'nonBlockUnsized' ( in 4-element array of mediump 4-component vector of float)
0:? 'toF' (layout( stream=0) out block{layout( stream=0) out mediump 3-component vector of float color})
0:? 'anon@0' (layout( stream=0) out block{layout( stream=0) out mediump 3-component vector of float color})
0:? 'gl_in' ( in 4-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize})
0:? 'ov4' (layout( stream=4) out mediump 4-component vector of float)
0:? 'ouuaa6' (layout( stream=0) out block{layout( stream=0) out mediump 4-component vector of float a})
0:? 'badv4' (layout( stream=0) out mediump 4-component vector of float)
0:? 'bad2v4' ( in 4-element array of mediump 4-component vector of float)
0:? 'anon@1' (layout( stream=0) out block{layout( stream=0) out highp int a})
0:? 'outbi' (layout( stream=0) out block{layout( stream=0) out highp int a, layout( stream=0) out highp int b, layout( stream=0) out highp int c})
0:? 'insn' ( in 4-element array of block{ in highp int a15})
0:? 'anon@2' (layout( stream=0) out block{layout( stream=0) out mediump float f15})
0:? 'anon@3' (layout( column_major shared) uniform block{layout( column_major shared) uniform bool b15})
0:? 'summ' ( const highp int)
0:? 2752 (const int)
0:? 'explArray' ( in 4-element array of mediump 4-component vector of float)
0:? 'explArrayBad' ( in 5-element array of mediump 4-component vector of float)
0:? 'nonArrayed' ( in mediump 4-component vector of float)
0:? 'myColor1' (layout( stream=0) flat out mediump 3-component vector of float)
0:? 'myColor2' (layout( stream=0) centroid out mediump 3-component vector of float)
0:? 'centr' ( centroid in 4-element array of mediump 3-component vector of float)
0:? 'perSampleColor' (layout( stream=0) sample out mediump 4-component vector of float)
0:? 'comp' (layout( location=7 component=2) in 4-element array of mediump float)

516
Test/baseResults/320.tesc.out Executable file
View File

@ -0,0 +1,516 @@
320.tesc
ERROR: 0:6: 'quads' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4)
ERROR: 0:7: 'ccw' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4)
ERROR: 0:8: 'fractional_even_spacing' : unrecognized layout identifier, or qualifier requires assignment (e.g., binding = 4)
ERROR: 0:10: 'patch' : can only use on output in tessellation-control shader
ERROR: 0:24: 'gl_PointSize' : required extension not requested: Possible extensions include:
GL_EXT_tessellation_point_size
GL_OES_tessellation_point_size
ERROR: 0:25: 'gl_ClipDistance' : no such field in structure
ERROR: 0:25: 'expression' : left of '[' is not of type array, matrix, or vector
ERROR: 0:32: 'gl_PointSize' : required extension not requested: Possible extensions include:
GL_EXT_tessellation_point_size
GL_OES_tessellation_point_size
ERROR: 0:33: 'gl_ClipDistance' : no such field in structure
ERROR: 0:33: 'expression' : left of '[' is not of type array, matrix, or vector
ERROR: 0:33: 'assign' : l-value required (can't modify a const)
ERROR: 0:39: '' : tessellation control barrier() cannot be placed within flow control
ERROR: 0:41: '' : tessellation control barrier() cannot be placed within flow control
ERROR: 0:46: '' : tessellation control barrier() cannot be placed within flow control
ERROR: 0:51: '' : tessellation control barrier() cannot be placed within flow control
ERROR: 0:54: '' : tessellation control barrier() cannot be placed within flow control
ERROR: 0:61: '' : tessellation control barrier() cannot be placed after a return from main()
ERROR: 0:64: 'vertices' : can only apply to 'out'
ERROR: 0:65: 'vertices' : cannot change previously set layout value
ERROR: 0:69: '[' : array index out of range '4'
ERROR: 0:71: '' : tessellation control barrier() must be in main()
ERROR: 0:74: 'in' : type must be an array: ina
ERROR: 0:76: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized
ERROR: 0:78: '' : array size required
ERROR: 0:84: 'location' : overlapping use of location 4
ERROR: 0:88: 'location' : overlapping use of location 4
ERROR: 0:98: 'vertices' : can only apply to a standalone qualifier
ERROR: 0:99: 'vertices' : inconsistent output number of vertices for array size of misSized
ERROR: 0:104: 'gl_PointSize' : required extension not requested: Possible extensions include:
GL_EXT_tessellation_point_size
GL_OES_tessellation_point_size
ERROR: 0:105: 'gl_PointSize' : required extension not requested: Possible extensions include:
GL_EXT_tessellation_point_size
GL_OES_tessellation_point_size
ERROR: 0:123: '[' : array index out of range '2'
ERROR: 0:126: '' : array size required
ERROR: 0:142: '[]' : tessellation-control per-vertex output l-value must be indexed with gl_InvocationID
ERROR: 0:143: '[]' : tessellation-control per-vertex output l-value must be indexed with gl_InvocationID
ERROR: 0:146: '[]' : tessellation-control per-vertex output l-value must be indexed with gl_InvocationID
ERROR: 35 compilation errors. No code generated.
Shader version: 320
Requested GL_ARB_separate_shader_objects
vertices = 4
ERROR: node is still EOpNull!
0:13 Function Definition: main( ( global void)
0:13 Function Parameters:
0:15 Sequence
0:15 Barrier ( global void)
0:17 Sequence
0:17 move second child to first child ( temp highp int)
0:17 'a' ( temp highp int)
0:17 Constant:
0:17 5392 (const int)
0:23 Sequence
0:23 move second child to first child ( temp highp 4-component vector of float)
0:23 'p' ( temp highp 4-component vector of float)
0:23 gl_Position: direct index for structure ( in highp 4-component vector of float Position)
0:23 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in implicitly-sized array of highp 4-component vector of float gl_PositionPerViewNV})
0:23 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in implicitly-sized array of highp 4-component vector of float gl_PositionPerViewNV})
0:23 Constant:
0:23 1 (const int)
0:23 Constant:
0:23 0 (const int)
0:24 Sequence
0:24 move second child to first child ( temp highp float)
0:24 'ps' ( temp highp float)
0:24 gl_PointSize: direct index for structure ( in highp float PointSize)
0:24 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in implicitly-sized array of highp 4-component vector of float gl_PositionPerViewNV})
0:24 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in implicitly-sized array of highp 4-component vector of float gl_PositionPerViewNV})
0:24 Constant:
0:24 1 (const int)
0:24 Constant:
0:24 1 (const int)
0:25 Sequence
0:25 move second child to first child ( temp highp float)
0:25 'cd' ( temp highp float)
0:25 Constant:
0:25 0.000000
0:27 Sequence
0:27 move second child to first child ( temp highp int)
0:27 'pvi' ( temp highp int)
0:27 'gl_PatchVerticesIn' ( in highp int PatchVertices)
0:28 Sequence
0:28 move second child to first child ( temp highp int)
0:28 'pid' ( temp highp int)
0:28 'gl_PrimitiveID' ( in highp int PrimitiveID)
0:29 Sequence
0:29 move second child to first child ( temp highp int)
0:29 'iid' ( temp highp int)
0:29 'gl_InvocationID' ( in highp int InvocationID)
0:31 move second child to first child ( temp highp 4-component vector of float)
0:31 gl_Position: direct index for structure ( out highp 4-component vector of float Position)
0:31 indirect index ( temp block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
0:31 'gl_out' ( out 4-element array of block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
0:31 'gl_InvocationID' ( in highp int InvocationID)
0:31 Constant:
0:31 0 (const int)
0:31 'p' ( temp highp 4-component vector of float)
0:32 move second child to first child ( temp highp float)
0:32 gl_PointSize: direct index for structure ( out highp float PointSize)
0:32 indirect index ( temp block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
0:32 'gl_out' ( out 4-element array of block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
0:32 'gl_InvocationID' ( in highp int InvocationID)
0:32 Constant:
0:32 1 (const int)
0:32 'ps' ( temp highp float)
0:33 move second child to first child ( temp highp float)
0:33 Constant:
0:33 0.000000
0:33 'cd' ( temp highp float)
0:35 move second child to first child ( temp highp float)
0:35 direct index ( patch temp highp float TessLevelOuter)
0:35 'gl_TessLevelOuter' ( patch out 4-element array of highp float TessLevelOuter)
0:35 Constant:
0:35 3 (const int)
0:35 Constant:
0:35 3.200000
0:36 move second child to first child ( temp highp float)
0:36 direct index ( patch temp highp float TessLevelInner)
0:36 'gl_TessLevelInner' ( patch out 2-element array of highp float TessLevelInner)
0:36 Constant:
0:36 1 (const int)
0:36 Constant:
0:36 1.300000
0:38 Test condition and select ( temp void)
0:38 Condition
0:38 Compare Greater Than ( temp bool)
0:38 'a' ( temp highp int)
0:38 Constant:
0:38 10 (const int)
0:38 true case
0:39 Barrier ( global void)
0:38 false case
0:41 Barrier ( global void)
0:43 Barrier ( global void)
0:47 Loop with condition not tested first
0:47 Loop Condition
0:47 Compare Greater Than ( temp bool)
0:47 'a' ( temp highp int)
0:47 Constant:
0:47 10 (const int)
0:47 Loop Body
0:46 Sequence
0:46 Barrier ( global void)
0:49 switch
0:49 condition
0:49 'a' ( temp highp int)
0:49 body
0:49 Sequence
0:50 default:
0:? Sequence
0:51 Barrier ( global void)
0:52 Branch: Break
0:54 Test condition and select ( temp highp int)
0:54 Condition
0:54 Compare Less Than ( temp bool)
0:54 'a' ( temp highp int)
0:54 Constant:
0:54 12 (const int)
0:54 true case
0:54 'a' ( temp highp int)
0:54 false case
0:54 Comma ( temp highp int)
0:54 Barrier ( global void)
0:54 'a' ( temp highp int)
0:56 Sequence
0:56 Barrier ( global void)
0:59 Branch: Return
0:61 Barrier ( global void)
0:67 Function Definition: foo( ( global void)
0:67 Function Parameters:
0:69 Sequence
0:69 gl_Position: direct index for structure ( out highp 4-component vector of float Position)
0:69 direct index ( temp block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
0:69 'gl_out' ( out 4-element array of block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
0:69 Constant:
0:69 4 (const int)
0:69 Constant:
0:69 0 (const int)
0:71 Barrier ( global void)
0:102 Function Definition: pointSize2( ( global void)
0:102 Function Parameters:
0:104 Sequence
0:104 Sequence
0:104 move second child to first child ( temp highp float)
0:104 'ps' ( temp highp float)
0:104 gl_PointSize: direct index for structure ( in highp float PointSize)
0:104 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in implicitly-sized array of highp 4-component vector of float gl_PositionPerViewNV})
0:104 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in implicitly-sized array of highp 4-component vector of float gl_PositionPerViewNV})
0:104 Constant:
0:104 1 (const int)
0:104 Constant:
0:104 1 (const int)
0:105 move second child to first child ( temp highp float)
0:105 gl_PointSize: direct index for structure ( out highp float PointSize)
0:105 indirect index ( temp block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
0:105 'gl_out' ( out 4-element array of block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
0:105 'gl_InvocationID' ( in highp int InvocationID)
0:105 Constant:
0:105 1 (const int)
0:105 'ps' ( temp highp float)
0:110 Function Definition: goodfoop( ( global void)
0:110 Function Parameters:
0:? Sequence
0:114 multiply second child into first child ( temp highp 3-component vector of float)
0:114 'pv3' ( noContraction temp highp 3-component vector of float)
0:114 'pv3' ( noContraction temp highp 3-component vector of float)
0:115 move second child to first child ( temp highp 3-component vector of float)
0:115 'pv3' ( noContraction temp highp 3-component vector of float)
0:115 fma ( global highp 3-component vector of float)
0:115 'pv3' ( noContraction temp highp 3-component vector of float)
0:115 'pv3' ( noContraction temp highp 3-component vector of float)
0:115 'pv3' ( noContraction temp highp 3-component vector of float)
0:116 move second child to first child ( temp highp float)
0:116 'd' ( noContraction temp highp float)
0:116 fma ( global highp float)
0:116 'd' ( noContraction temp highp float)
0:116 'd' ( noContraction temp highp float)
0:116 'd' ( noContraction temp highp float)
0:119 Function Definition: bb( ( global void)
0:119 Function Parameters:
0:121 Sequence
0:121 move second child to first child ( temp highp 4-component vector of float)
0:121 direct index ( patch temp highp 4-component vector of float BoundingBox)
0:121 'gl_BoundingBoxOES' ( patch out 2-element array of highp 4-component vector of float BoundingBox)
0:121 Constant:
0:121 0 (const int)
0:121 Constant:
0:121 0.000000
0:121 0.000000
0:121 0.000000
0:121 0.000000
0:122 move second child to first child ( temp highp 4-component vector of float)
0:122 direct index ( patch temp highp 4-component vector of float BoundingBox)
0:122 'gl_BoundingBoxOES' ( patch out 2-element array of highp 4-component vector of float BoundingBox)
0:122 Constant:
0:122 1 (const int)
0:122 Constant:
0:122 1.000000
0:122 1.000000
0:122 1.000000
0:122 1.000000
0:123 move second child to first child ( temp highp 4-component vector of float)
0:123 direct index ( patch temp highp 4-component vector of float BoundingBox)
0:123 'gl_BoundingBoxOES' ( patch out 2-element array of highp 4-component vector of float BoundingBox)
0:123 Constant:
0:123 2 (const int)
0:123 Constant:
0:123 2.000000
0:123 2.000000
0:123 2.000000
0:123 2.000000
0:134 Function Definition: outputtingOutparam(i1; ( global void)
0:134 Function Parameters:
0:134 'a' ( out highp int)
0:136 Sequence
0:136 move second child to first child ( temp highp int)
0:136 'a' ( out highp int)
0:136 Constant:
0:136 2 (const int)
0:139 Function Definition: outputting( ( global void)
0:139 Function Parameters:
0:141 Sequence
0:141 move second child to first child ( temp highp int)
0:141 indirect index ( temp highp int)
0:141 'outa' ( out 4-element array of highp int)
0:141 'gl_InvocationID' ( in highp int InvocationID)
0:141 Constant:
0:141 2 (const int)
0:142 move second child to first child ( temp highp int)
0:142 direct index ( temp highp int)
0:142 'outa' ( out 4-element array of highp int)
0:142 Constant:
0:142 1 (const int)
0:142 Constant:
0:142 2 (const int)
0:143 move second child to first child ( temp highp 4-component vector of float)
0:143 gl_Position: direct index for structure ( out highp 4-component vector of float Position)
0:143 direct index ( temp block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
0:143 'gl_out' ( out 4-element array of block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
0:143 Constant:
0:143 0 (const int)
0:143 Constant:
0:143 0 (const int)
0:143 Constant:
0:143 1.000000
0:143 1.000000
0:143 1.000000
0:143 1.000000
0:144 direct index ( temp highp int)
0:144 'outa' ( out 4-element array of highp int)
0:144 Constant:
0:144 1 (const int)
0:145 direct index ( temp block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
0:145 'gl_out' ( out 4-element array of block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
0:145 Constant:
0:145 0 (const int)
0:146 Function Call: outputtingOutparam(i1; ( global void)
0:146 direct index ( temp highp int)
0:146 'outa' ( out 4-element array of highp int)
0:146 Constant:
0:146 0 (const int)
0:147 Function Call: outputtingOutparam(i1; ( global void)
0:147 indirect index ( temp highp int)
0:147 'outa' ( out 4-element array of highp int)
0:147 'gl_InvocationID' ( in highp int InvocationID)
0:148 move second child to first child ( temp highp float)
0:148 f: direct index for structure ( out highp float)
0:148 direct index ( patch temp block{ out highp float f})
0:148 'patchIName' ( patch out 4-element array of block{ out highp float f})
0:148 Constant:
0:148 1 (const int)
0:148 Constant:
0:148 0 (const int)
0:148 Constant:
0:148 3.140000
0:149 move second child to first child ( temp highp int)
0:149 indirect index ( temp highp int)
0:149 'outa' ( out 4-element array of highp int)
0:149 'gl_InvocationID' ( in highp int InvocationID)
0:149 Constant:
0:149 2 (const int)
0:? Linker Objects
0:? 'gl_out' ( out 4-element array of block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
0:? 'outa' ( out 4-element array of highp int)
0:? 'patchIn' ( patch in highp 4-component vector of float)
0:? 'patchOut' ( patch out highp 4-component vector of float)
0:? 'ina' ( in highp 2-component vector of float)
0:? 'inb' ( in 32-element array of highp 2-component vector of float)
0:? 'inc' ( in 32-element array of highp 2-component vector of float)
0:? 'ind' ( in 32-element array of highp 2-component vector of float)
0:? 'implA' ( patch out implicitly-sized array of highp float)
0:? 'ivla' (layout( location=3) in 32-element array of highp 4-component vector of float)
0:? 'ivlb' (layout( location=4) in 32-element array of highp 4-component vector of float)
0:? 'ivlc' (layout( location=4) in 32-element array of highp 4-component vector of float)
0:? 'ovla' (layout( location=3) out 4-element array of highp 4-component vector of float)
0:? 'ovlb' (layout( location=4) out 4-element array of highp 4-component vector of float)
0:? 'ovlc' (layout( location=4) out 4-element array of highp 4-component vector of float)
0:? 'pinbi' ( patch out block{ out highp int a})
0:? 'myColor2' ( centroid out 4-element array of highp 3-component vector of float)
0:? 'centr' ( centroid in 32-element array of highp 3-component vector of float)
0:? 'perSampleColor' ( sample out 4-element array of highp 4-component vector of float)
0:? 'badlay' ( out 4-element array of highp float)
0:? 'misSized' ( out 5-element array of highp float)
0:? 'okaySize' ( out 4-element array of highp float)
0:? 'pv3' ( noContraction temp highp 3-component vector of float)
0:? 'badpatchIName' ( patch out implicitly-sized array of block{ out highp float f})
0:? 'patchIName' ( patch out 4-element array of block{ out highp float f})
Linked tessellation control stage:
Shader version: 320
Requested GL_ARB_separate_shader_objects
vertices = 4
ERROR: node is still EOpNull!
0:13 Function Definition: main( ( global void)
0:13 Function Parameters:
0:15 Sequence
0:15 Barrier ( global void)
0:17 Sequence
0:17 move second child to first child ( temp highp int)
0:17 'a' ( temp highp int)
0:17 Constant:
0:17 5392 (const int)
0:23 Sequence
0:23 move second child to first child ( temp highp 4-component vector of float)
0:23 'p' ( temp highp 4-component vector of float)
0:23 gl_Position: direct index for structure ( in highp 4-component vector of float Position)
0:23 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float gl_PositionPerViewNV})
0:23 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float gl_PositionPerViewNV})
0:23 Constant:
0:23 1 (const int)
0:23 Constant:
0:23 0 (const int)
0:24 Sequence
0:24 move second child to first child ( temp highp float)
0:24 'ps' ( temp highp float)
0:24 gl_PointSize: direct index for structure ( in highp float PointSize)
0:24 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float gl_PositionPerViewNV})
0:24 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float gl_PositionPerViewNV})
0:24 Constant:
0:24 1 (const int)
0:24 Constant:
0:24 1 (const int)
0:25 Sequence
0:25 move second child to first child ( temp highp float)
0:25 'cd' ( temp highp float)
0:25 Constant:
0:25 0.000000
0:27 Sequence
0:27 move second child to first child ( temp highp int)
0:27 'pvi' ( temp highp int)
0:27 'gl_PatchVerticesIn' ( in highp int PatchVertices)
0:28 Sequence
0:28 move second child to first child ( temp highp int)
0:28 'pid' ( temp highp int)
0:28 'gl_PrimitiveID' ( in highp int PrimitiveID)
0:29 Sequence
0:29 move second child to first child ( temp highp int)
0:29 'iid' ( temp highp int)
0:29 'gl_InvocationID' ( in highp int InvocationID)
0:31 move second child to first child ( temp highp 4-component vector of float)
0:31 gl_Position: direct index for structure ( out highp 4-component vector of float Position)
0:31 indirect index ( temp block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
0:31 'gl_out' ( out 4-element array of block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
0:31 'gl_InvocationID' ( in highp int InvocationID)
0:31 Constant:
0:31 0 (const int)
0:31 'p' ( temp highp 4-component vector of float)
0:32 move second child to first child ( temp highp float)
0:32 gl_PointSize: direct index for structure ( out highp float PointSize)
0:32 indirect index ( temp block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
0:32 'gl_out' ( out 4-element array of block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
0:32 'gl_InvocationID' ( in highp int InvocationID)
0:32 Constant:
0:32 1 (const int)
0:32 'ps' ( temp highp float)
0:33 move second child to first child ( temp highp float)
0:33 Constant:
0:33 0.000000
0:33 'cd' ( temp highp float)
0:35 move second child to first child ( temp highp float)
0:35 direct index ( patch temp highp float TessLevelOuter)
0:35 'gl_TessLevelOuter' ( patch out 4-element array of highp float TessLevelOuter)
0:35 Constant:
0:35 3 (const int)
0:35 Constant:
0:35 3.200000
0:36 move second child to first child ( temp highp float)
0:36 direct index ( patch temp highp float TessLevelInner)
0:36 'gl_TessLevelInner' ( patch out 2-element array of highp float TessLevelInner)
0:36 Constant:
0:36 1 (const int)
0:36 Constant:
0:36 1.300000
0:38 Test condition and select ( temp void)
0:38 Condition
0:38 Compare Greater Than ( temp bool)
0:38 'a' ( temp highp int)
0:38 Constant:
0:38 10 (const int)
0:38 true case
0:39 Barrier ( global void)
0:38 false case
0:41 Barrier ( global void)
0:43 Barrier ( global void)
0:47 Loop with condition not tested first
0:47 Loop Condition
0:47 Compare Greater Than ( temp bool)
0:47 'a' ( temp highp int)
0:47 Constant:
0:47 10 (const int)
0:47 Loop Body
0:46 Sequence
0:46 Barrier ( global void)
0:49 switch
0:49 condition
0:49 'a' ( temp highp int)
0:49 body
0:49 Sequence
0:50 default:
0:? Sequence
0:51 Barrier ( global void)
0:52 Branch: Break
0:54 Test condition and select ( temp highp int)
0:54 Condition
0:54 Compare Less Than ( temp bool)
0:54 'a' ( temp highp int)
0:54 Constant:
0:54 12 (const int)
0:54 true case
0:54 'a' ( temp highp int)
0:54 false case
0:54 Comma ( temp highp int)
0:54 Barrier ( global void)
0:54 'a' ( temp highp int)
0:56 Sequence
0:56 Barrier ( global void)
0:59 Branch: Return
0:61 Barrier ( global void)
0:? Linker Objects
0:? 'gl_out' ( out 4-element array of block{ out highp 4-component vector of float Position gl_Position, out highp float PointSize gl_PointSize})
0:? 'outa' ( out 4-element array of highp int)
0:? 'patchIn' ( patch in highp 4-component vector of float)
0:? 'patchOut' ( patch out highp 4-component vector of float)
0:? 'ina' ( in highp 2-component vector of float)
0:? 'inb' ( in 32-element array of highp 2-component vector of float)
0:? 'inc' ( in 32-element array of highp 2-component vector of float)
0:? 'ind' ( in 32-element array of highp 2-component vector of float)
0:? 'implA' ( patch out 1-element array of highp float)
0:? 'ivla' (layout( location=3) in 32-element array of highp 4-component vector of float)
0:? 'ivlb' (layout( location=4) in 32-element array of highp 4-component vector of float)
0:? 'ivlc' (layout( location=4) in 32-element array of highp 4-component vector of float)
0:? 'ovla' (layout( location=3) out 4-element array of highp 4-component vector of float)
0:? 'ovlb' (layout( location=4) out 4-element array of highp 4-component vector of float)
0:? 'ovlc' (layout( location=4) out 4-element array of highp 4-component vector of float)
0:? 'pinbi' ( patch out block{ out highp int a})
0:? 'myColor2' ( centroid out 4-element array of highp 3-component vector of float)
0:? 'centr' ( centroid in 32-element array of highp 3-component vector of float)
0:? 'perSampleColor' ( sample out 4-element array of highp 4-component vector of float)
0:? 'badlay' ( out 4-element array of highp float)
0:? 'misSized' ( out 5-element array of highp float)
0:? 'okaySize' ( out 4-element array of highp float)
0:? 'pv3' ( noContraction temp highp 3-component vector of float)
0:? 'badpatchIName' ( patch out 1-element array of block{ out highp float f})
0:? 'patchIName' ( patch out 4-element array of block{ out highp float f})

276
Test/baseResults/320.tese.out Executable file
View File

@ -0,0 +1,276 @@
320.tese
ERROR: 0:3: 'vertices' : there is no such layout identifier for this stage taking an assigned value
ERROR: 0:5: 'triangles' : cannot change previously set input primitive
ERROR: 0:6: 'isolines' : cannot change previously set input primitive
ERROR: 0:8: 'ccw' : cannot change previously set vertex order
ERROR: 0:12: 'equal_spacing' : cannot change previously set vertex spacing
ERROR: 0:13: 'fractional_even_spacing' : cannot change previously set vertex spacing
ERROR: 0:18: 'patch' : can only use on input in tessellation-evaluation shader
ERROR: 0:22: 'barrier' : no matching overloaded function found
ERROR: 0:33: 'gl_PointSize' : required extension not requested: Possible extensions include:
GL_EXT_tessellation_point_size
GL_OES_tessellation_point_size
ERROR: 0:34: 'gl_ClipDistance' : no such field in structure
ERROR: 0:34: 'expression' : left of '[' is not of type array, matrix, or vector
ERROR: 0:43: 'gl_PointSize' : required extension not requested: Possible extensions include:
GL_EXT_tessellation_point_size
GL_OES_tessellation_point_size
ERROR: 0:44: 'gl_ClipDistance' : undeclared identifier
ERROR: 0:44: 'gl_ClipDistance' : left of '[' is not of type array, matrix, or vector
ERROR: 0:44: 'assign' : l-value required (can't modify a const)
ERROR: 0:47: 'patch' : cannot use interpolation qualifiers with patch
ERROR: 0:48: 'patch' : cannot use interpolation qualifiers with patch
ERROR: 0:49: 'noperspective' : Reserved word.
ERROR: 0:49: 'noperspective' : not supported with this profile: es
ERROR: 0:49: 'patch' : cannot use interpolation qualifiers with patch
ERROR: 0:50: '' : can only have one auxiliary qualifier (centroid, patch, and sample)
ERROR: 0:54: 'gl_PerVertex' : block already declared with size, can't redeclare as implicitly-sized
ERROR: 0:59: 'gl_PerVertex' : can only redeclare a built-in block once, and before any use
ERROR: 0:64: 'quads' : cannot apply to 'out'
ERROR: 0:64: 'cw' : can only apply to 'in'
ERROR: 0:65: 'triangles' : cannot apply to 'out'
ERROR: 0:66: 'isolines' : cannot apply to 'out'
ERROR: 0:67: 'cw' : can only apply to 'in'
ERROR: 0:68: 'fractional_odd_spacing' : can only apply to 'in'
ERROR: 0:69: 'equal_spacing' : can only apply to 'in'
ERROR: 0:70: 'fractional_even_spacing' : can only apply to 'in'
ERROR: 0:71: 'point_mode' : can only apply to 'in'
ERROR: 0:73: 'in' : type must be an array: ina
ERROR: 0:75: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized
ERROR: 0:78: 'in' : type must be an array: bla
ERROR: 0:86: '[]' : tessellation input array size must be gl_MaxPatchVertices or implicitly sized
ERROR: 0:96: 'location' : overlapping use of location 24
ERROR: 0:99: 'location' : overlapping use of location 24
ERROR: 0:101: 'gl_TessLevelOuter' : identifiers starting with "gl_" are reserved
ERROR: 0:113: 'gl_BoundingBoxOES' : undeclared identifier
ERROR: 40 compilation errors. No code generated.
Shader version: 320
Requested GL_ARB_separate_shader_objects
input primitive = quads
vertex spacing = fractional_odd_spacing
triangle order = cw
using point mode
ERROR: node is still EOpNull!
0:20 Function Definition: main( ( global void)
0:20 Function Parameters:
0:22 Sequence
0:22 Constant:
0:22 0.000000
0:24 Sequence
0:24 move second child to first child ( temp highp int)
0:24 'a' ( temp highp int)
0:24 Constant:
0:24 1512 (const int)
0:32 Sequence
0:32 move second child to first child ( temp highp 4-component vector of float)
0:32 'p' ( temp highp 4-component vector of float)
0:32 gl_Position: direct index for structure ( in highp 4-component vector of float Position)
0:32 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in implicitly-sized array of highp 4-component vector of float gl_PositionPerViewNV})
0:32 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in implicitly-sized array of highp 4-component vector of float gl_PositionPerViewNV})
0:32 Constant:
0:32 1 (const int)
0:32 Constant:
0:32 0 (const int)
0:33 Sequence
0:33 move second child to first child ( temp highp float)
0:33 'ps' ( temp highp float)
0:33 gl_PointSize: direct index for structure ( in highp float PointSize)
0:33 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in implicitly-sized array of highp 4-component vector of float gl_PositionPerViewNV})
0:33 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in implicitly-sized array of highp 4-component vector of float gl_PositionPerViewNV})
0:33 Constant:
0:33 1 (const int)
0:33 Constant:
0:33 1 (const int)
0:34 Sequence
0:34 move second child to first child ( temp highp float)
0:34 'cd' ( temp highp float)
0:34 Constant:
0:34 0.000000
0:36 Sequence
0:36 move second child to first child ( temp highp int)
0:36 'pvi' ( temp highp int)
0:36 'gl_PatchVerticesIn' ( in highp int PatchVertices)
0:37 Sequence
0:37 move second child to first child ( temp highp int)
0:37 'pid' ( temp highp int)
0:37 'gl_PrimitiveID' ( in highp int PrimitiveID)
0:38 Sequence
0:38 move second child to first child ( temp highp 3-component vector of float)
0:38 'tc' ( temp highp 3-component vector of float)
0:38 'gl_TessCoord' ( in highp 3-component vector of float TessCoord)
0:39 Sequence
0:39 move second child to first child ( temp highp float)
0:39 'tlo' ( temp highp float)
0:39 direct index ( patch temp highp float TessLevelOuter)
0:39 'gl_TessLevelOuter' ( patch in 4-element array of highp float TessLevelOuter)
0:39 Constant:
0:39 3 (const int)
0:40 Sequence
0:40 move second child to first child ( temp highp float)
0:40 'tli' ( temp highp float)
0:40 direct index ( patch temp highp float TessLevelInner)
0:40 'gl_TessLevelInner' ( patch in 2-element array of highp float TessLevelInner)
0:40 Constant:
0:40 1 (const int)
0:42 move second child to first child ( temp highp 4-component vector of float)
0:42 gl_Position: direct index for structure ( gl_Position highp 4-component vector of float Position)
0:42 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position, gl_PointSize highp float PointSize gl_PointSize})
0:42 Constant:
0:42 0 (const uint)
0:42 'p' ( temp highp 4-component vector of float)
0:43 move second child to first child ( temp highp float)
0:43 gl_PointSize: direct index for structure ( gl_PointSize highp float PointSize)
0:43 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position, gl_PointSize highp float PointSize gl_PointSize})
0:43 Constant:
0:43 1 (const uint)
0:43 'ps' ( temp highp float)
0:44 move second child to first child ( temp highp float)
0:44 Constant:
0:44 0.000000
0:44 'cd' ( temp highp float)
0:111 Function Definition: bbbad( ( global void)
0:111 Function Parameters:
0:113 Sequence
0:113 'gl_BoundingBoxOES' ( temp float)
0:? Linker Objects
0:? 'patchIn' ( patch in highp 4-component vector of float)
0:? 'patchOut' ( patch out highp 4-component vector of float)
0:? 'badp1' ( smooth patch in highp 4-component vector of float)
0:? 'badp2' ( flat patch in highp 4-component vector of float)
0:? 'badp3' ( noperspective patch in highp 4-component vector of float)
0:? 'badp4' ( patch sample in highp 3-component vector of float)
0:? 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position})
0:? 'ina' ( in highp 2-component vector of float)
0:? 'inb' ( in 32-element array of highp 2-component vector of float)
0:? 'inc' ( in 32-element array of highp 2-component vector of float)
0:? 'ind' ( in 32-element array of highp 2-component vector of float)
0:? 'bla' ( in block{ in highp int f})
0:? 'blb' ( in 32-element array of block{ in highp int f})
0:? 'blc' ( in 32-element array of block{ in highp int f})
0:? 'bld' ( in 32-element array of block{ in highp int f})
0:? 'ivla' (layout( location=23) in 32-element array of highp 4-component vector of float)
0:? 'ivlb' (layout( location=24) in 32-element array of highp 4-component vector of float)
0:? 'ivlc' (layout( location=24) in 32-element array of highp 4-component vector of float)
0:? 'ovla' (layout( location=23) out 2-element array of highp 4-component vector of float)
0:? 'ovlb' (layout( location=24) out 2-element array of highp 4-component vector of float)
0:? 'pinbi' ( patch in block{ in highp int a})
0:? 'myColor2' ( centroid out highp 3-component vector of float)
0:? 'centr' ( centroid in 32-element array of highp 3-component vector of float)
0:? 'perSampleColor' ( sample out highp 4-component vector of float)
Linked tessellation evaluation stage:
Shader version: 320
Requested GL_ARB_separate_shader_objects
input primitive = quads
vertex spacing = fractional_odd_spacing
triangle order = cw
using point mode
ERROR: node is still EOpNull!
0:20 Function Definition: main( ( global void)
0:20 Function Parameters:
0:22 Sequence
0:22 Constant:
0:22 0.000000
0:24 Sequence
0:24 move second child to first child ( temp highp int)
0:24 'a' ( temp highp int)
0:24 Constant:
0:24 1512 (const int)
0:32 Sequence
0:32 move second child to first child ( temp highp 4-component vector of float)
0:32 'p' ( temp highp 4-component vector of float)
0:32 gl_Position: direct index for structure ( in highp 4-component vector of float Position)
0:32 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float gl_PositionPerViewNV})
0:32 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float gl_PositionPerViewNV})
0:32 Constant:
0:32 1 (const int)
0:32 Constant:
0:32 0 (const int)
0:33 Sequence
0:33 move second child to first child ( temp highp float)
0:33 'ps' ( temp highp float)
0:33 gl_PointSize: direct index for structure ( in highp float PointSize)
0:33 direct index ( temp block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float gl_PositionPerViewNV})
0:33 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position, in highp float PointSize gl_PointSize, in highp 4-component vector of float gl_SecondaryPositionNV, in 1-element array of highp 4-component vector of float gl_PositionPerViewNV})
0:33 Constant:
0:33 1 (const int)
0:33 Constant:
0:33 1 (const int)
0:34 Sequence
0:34 move second child to first child ( temp highp float)
0:34 'cd' ( temp highp float)
0:34 Constant:
0:34 0.000000
0:36 Sequence
0:36 move second child to first child ( temp highp int)
0:36 'pvi' ( temp highp int)
0:36 'gl_PatchVerticesIn' ( in highp int PatchVertices)
0:37 Sequence
0:37 move second child to first child ( temp highp int)
0:37 'pid' ( temp highp int)
0:37 'gl_PrimitiveID' ( in highp int PrimitiveID)
0:38 Sequence
0:38 move second child to first child ( temp highp 3-component vector of float)
0:38 'tc' ( temp highp 3-component vector of float)
0:38 'gl_TessCoord' ( in highp 3-component vector of float TessCoord)
0:39 Sequence
0:39 move second child to first child ( temp highp float)
0:39 'tlo' ( temp highp float)
0:39 direct index ( patch temp highp float TessLevelOuter)
0:39 'gl_TessLevelOuter' ( patch in 4-element array of highp float TessLevelOuter)
0:39 Constant:
0:39 3 (const int)
0:40 Sequence
0:40 move second child to first child ( temp highp float)
0:40 'tli' ( temp highp float)
0:40 direct index ( patch temp highp float TessLevelInner)
0:40 'gl_TessLevelInner' ( patch in 2-element array of highp float TessLevelInner)
0:40 Constant:
0:40 1 (const int)
0:42 move second child to first child ( temp highp 4-component vector of float)
0:42 gl_Position: direct index for structure ( gl_Position highp 4-component vector of float Position)
0:42 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position, gl_PointSize highp float PointSize gl_PointSize})
0:42 Constant:
0:42 0 (const uint)
0:42 'p' ( temp highp 4-component vector of float)
0:43 move second child to first child ( temp highp float)
0:43 gl_PointSize: direct index for structure ( gl_PointSize highp float PointSize)
0:43 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position, gl_PointSize highp float PointSize gl_PointSize})
0:43 Constant:
0:43 1 (const uint)
0:43 'ps' ( temp highp float)
0:44 move second child to first child ( temp highp float)
0:44 Constant:
0:44 0.000000
0:44 'cd' ( temp highp float)
0:? Linker Objects
0:? 'patchIn' ( patch in highp 4-component vector of float)
0:? 'patchOut' ( patch out highp 4-component vector of float)
0:? 'badp1' ( smooth patch in highp 4-component vector of float)
0:? 'badp2' ( flat patch in highp 4-component vector of float)
0:? 'badp3' ( noperspective patch in highp 4-component vector of float)
0:? 'badp4' ( patch sample in highp 3-component vector of float)
0:? 'gl_in' ( in 32-element array of block{ in highp 4-component vector of float Position gl_Position})
0:? 'ina' ( in highp 2-component vector of float)
0:? 'inb' ( in 32-element array of highp 2-component vector of float)
0:? 'inc' ( in 32-element array of highp 2-component vector of float)
0:? 'ind' ( in 32-element array of highp 2-component vector of float)
0:? 'bla' ( in block{ in highp int f})
0:? 'blb' ( in 32-element array of block{ in highp int f})
0:? 'blc' ( in 32-element array of block{ in highp int f})
0:? 'bld' ( in 32-element array of block{ in highp int f})
0:? 'ivla' (layout( location=23) in 32-element array of highp 4-component vector of float)
0:? 'ivlb' (layout( location=24) in 32-element array of highp 4-component vector of float)
0:? 'ivlc' (layout( location=24) in 32-element array of highp 4-component vector of float)
0:? 'ovla' (layout( location=23) out 2-element array of highp 4-component vector of float)
0:? 'ovlb' (layout( location=24) out 2-element array of highp 4-component vector of float)
0:? 'pinbi' ( patch in block{ in highp int a})
0:? 'myColor2' ( centroid out highp 3-component vector of float)
0:? 'centr' ( centroid in 32-element array of highp 3-component vector of float)
0:? 'perSampleColor' ( sample out highp 4-component vector of float)

797
Test/baseResults/320.vert.out Executable file
View File

@ -0,0 +1,797 @@
320.vert
ERROR: 0:6: 's' : member of block cannot be or contain a sampler, image, or atomic_uint type
ERROR: 0:14: 'location' : overlapping use of location 12
ERROR: 0:16: 'input block' : not supported in this stage: vertex
ERROR: 0:18: 'gl_PerVertex' : block redeclaration has extra members
ERROR: 0:28: 'gl_PointSize' : member of nameless block was not redeclared
ERROR: 0:28: 'assign' : cannot convert from ' const float' to ' gl_PointSize highp void PointSize'
ERROR: 0:31: 'gl_PerVertex' : can only redeclare a built-in block once, and before any use
ERROR: 0:36: 'flat/smooth/noperspective' : cannot use interpolation qualifiers on an interface block
ERROR: 0:40: 'flat/smooth/noperspective' : cannot use interpolation qualifiers on an interface block
ERROR: 0:44: 'centroid' : cannot use centroid qualifier on an interface block
ERROR: 0:48: 'invariant' : cannot use invariant qualifier on an interface block
ERROR: 0:68: 'variable indexing buffer block array' : not supported with this profile: es
ERROR: 0:73: 'textureGatherOffsets(...)' : must be a compile-time constant: offsets argument
ERROR: 0:76: 'sampler/image' : type requires declaration of default precision qualifier
ERROR: 0:77: 'sampler/image' : type requires declaration of default precision qualifier
ERROR: 0:78: 'sampler/image' : type requires declaration of default precision qualifier
ERROR: 0:79: 'sampler/image' : type requires declaration of default precision qualifier
ERROR: 0:80: 'sampler/image' : type requires declaration of default precision qualifier
ERROR: 0:81: 'sampler/image' : type requires declaration of default precision qualifier
ERROR: 0:116: 'sampler/image' : type requires declaration of default precision qualifier
ERROR: 0:117: 'sampler/image' : type requires declaration of default precision qualifier
ERROR: 0:118: 'sampler/image' : type requires declaration of default precision qualifier
ERROR: 0:120: 'sampler/image' : type requires declaration of default precision qualifier
ERROR: 0:121: 'sampler/image' : type requires declaration of default precision qualifier
ERROR: 0:122: 'sampler/image' : type requires declaration of default precision qualifier
ERROR: 0:123: 'sampler/image' : type requires declaration of default precision qualifier
ERROR: 0:191: 'sampler/image' : type requires declaration of default precision qualifier
ERROR: 0:192: 'sampler/image' : type requires declaration of default precision qualifier
ERROR: 0:193: 'sampler/image' : type requires declaration of default precision qualifier
ERROR: 0:211: 'textureSize' : no matching overloaded function found
ERROR: 0:211: '=' : cannot convert from ' const float' to ' temp highp 3-component vector of int'
ERROR: 0:252: 'interpolateAtCentroid' : no matching overloaded function found
ERROR: 0:253: 'interpolateAtSample' : no matching overloaded function found
ERROR: 0:254: 'interpolateAtOffset' : no matching overloaded function found
ERROR: 34 compilation errors. No code generated.
Shader version: 320
ERROR: node is still EOpNull!
0:23 Function Definition: main( ( global void)
0:23 Function Parameters:
0:25 Sequence
0:25 Sequence
0:25 move second child to first child ( temp highp int)
0:25 'sum' ( temp highp int)
0:25 add ( temp highp int)
0:25 'gl_VertexID' ( gl_VertexId highp int VertexId)
0:26 'gl_InstanceID' ( gl_InstanceId highp int InstanceId)
0:27 move second child to first child ( temp highp 4-component vector of float)
0:27 gl_Position: direct index for structure ( gl_Position highp 4-component vector of float Position)
0:27 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position, })
0:27 Constant:
0:27 0 (const uint)
0:27 Constant:
0:27 1.000000
0:27 1.000000
0:27 1.000000
0:27 1.000000
0:28 gl_PointSize: direct index for structure ( gl_PointSize highp void PointSize)
0:28 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position, })
0:28 Constant:
0:28 1 (const uint)
0:62 Function Definition: pfoo( ( global void)
0:62 Function Parameters:
0:? Sequence
0:65 move second child to first child ( temp highp 2-component vector of float)
0:65 'h' ( noContraction temp highp 2-component vector of float)
0:65 fma ( global highp 2-component vector of float)
0:65 'inf' ( in highp 2-component vector of float)
0:65 'ing' ( in highp 2-component vector of float)
0:65 'h' ( noContraction temp highp 2-component vector of float)
0:66 indirect index ( temp lowp sampler2D)
0:66 'sArray' ( uniform 4-element array of lowp sampler2D)
0:66 add ( temp highp int)
0:66 'sIndex' ( uniform highp int)
0:66 Constant:
0:66 1 (const int)
0:67 indirect index (layout( column_major shared) temp block{layout( column_major shared) uniform highp int i})
0:67 'ubInst' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform highp int i})
0:67 add ( temp highp int)
0:67 'sIndex' ( uniform highp int)
0:67 Constant:
0:67 1 (const int)
0:68 indirect index (layout( column_major shared) temp block{layout( column_major shared) buffer highp int i})
0:68 'bbInst' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp int i})
0:68 subtract ( temp highp int)
0:68 'sIndex' ( uniform highp int)
0:68 Constant:
0:68 2 (const int)
0:69 direct index ( writeonly temp highp image2D)
0:69 'iArray' ( writeonly uniform 5-element array of highp image2D)
0:69 Constant:
0:69 2 (const int)
0:70 indirect index ( writeonly temp highp image2D)
0:70 'iArray' ( writeonly uniform 5-element array of highp image2D)
0:70 subtract ( temp highp int)
0:70 'sIndex' ( uniform highp int)
0:70 Constant:
0:70 2 (const int)
0:71 textureGatherOffset ( global lowp 4-component vector of float)
0:71 direct index ( temp lowp sampler2D)
0:71 'sArray' ( uniform 4-element array of lowp sampler2D)
0:71 Constant:
0:71 0 (const int)
0:71 Constant:
0:71 0.100000
0:71 0.100000
0:71 Convert float to int ( temp lowp 2-component vector of int)
0:71 'inf' ( in highp 2-component vector of float)
0:72 textureGatherOffsets ( global lowp 4-component vector of float, operation at highp)
0:72 direct index ( temp lowp sampler2D)
0:72 'sArray' ( uniform 4-element array of lowp sampler2D)
0:72 Constant:
0:72 0 (const int)
0:72 Constant:
0:72 0.100000
0:72 0.100000
0:72 Constant:
0:72 0 (const int)
0:72 0 (const int)
0:72 0 (const int)
0:72 0 (const int)
0:72 0 (const int)
0:72 0 (const int)
0:72 0 (const int)
0:72 0 (const int)
0:73 textureGatherOffsets ( global lowp 4-component vector of float, operation at highp)
0:73 direct index ( temp lowp sampler2D)
0:73 'sArray' ( uniform 4-element array of lowp sampler2D)
0:73 Constant:
0:73 0 (const int)
0:73 Constant:
0:73 0.100000
0:73 0.100000
0:73 'offsets' ( uniform 4-element array of highp 2-component vector of int)
0:101 Function Definition: bufferT( ( global void)
0:101 Function Parameters:
0:103 Sequence
0:103 Sequence
0:103 move second child to first child ( temp highp int)
0:103 's1' ( temp highp int)
0:103 textureSize ( global highp int)
0:103 'bufSamp1' ( uniform highp samplerBuffer)
0:104 Sequence
0:104 move second child to first child ( temp highp int)
0:104 's2' ( temp highp int)
0:104 textureSize ( global highp int)
0:104 'bufSamp2' ( uniform highp isamplerBuffer)
0:105 Sequence
0:105 move second child to first child ( temp highp int)
0:105 's3' ( temp highp int)
0:105 textureSize ( global highp int)
0:105 'bufSamp3' ( uniform highp usamplerBuffer)
0:107 Sequence
0:107 move second child to first child ( temp highp int)
0:107 's4' ( temp highp int)
0:107 imageQuerySize ( global highp int)
0:107 'bufSamp4' ( writeonly uniform highp imageBuffer)
0:108 Sequence
0:108 move second child to first child ( temp highp int)
0:108 's5' ( temp highp int)
0:108 imageQuerySize ( global highp int)
0:108 'bufSamp5' ( writeonly uniform highp iimageBuffer)
0:109 Sequence
0:109 move second child to first child ( temp highp int)
0:109 's6' ( temp highp int)
0:109 imageQuerySize ( global highp int)
0:109 'bufSamp6' ( writeonly uniform highp uimageBuffer)
0:111 Sequence
0:111 move second child to first child ( temp highp 4-component vector of float)
0:111 'f1' ( temp highp 4-component vector of float)
0:111 textureFetch ( global highp 4-component vector of float)
0:111 'bufSamp1' ( uniform highp samplerBuffer)
0:111 's1' ( temp highp int)
0:112 Sequence
0:112 move second child to first child ( temp highp 4-component vector of int)
0:112 'f2' ( temp highp 4-component vector of int)
0:112 textureFetch ( global highp 4-component vector of int)
0:112 'bufSamp2' ( uniform highp isamplerBuffer)
0:112 's2' ( temp highp int)
0:113 Sequence
0:113 move second child to first child ( temp highp 4-component vector of uint)
0:113 'f3' ( temp highp 4-component vector of uint)
0:113 textureFetch ( global highp 4-component vector of uint)
0:113 'bufSamp3' ( uniform highp usamplerBuffer)
0:113 's3' ( temp highp int)
0:149 Function Definition: CAT( ( global void)
0:149 Function Parameters:
0:151 Sequence
0:151 Sequence
0:151 move second child to first child ( temp highp 3-component vector of int)
0:151 's4' ( temp highp 3-component vector of int)
0:151 textureSize ( global highp 3-component vector of int)
0:151 'CA4' ( uniform highp samplerCubeArray)
0:151 Constant:
0:151 1 (const int)
0:152 Sequence
0:152 move second child to first child ( temp highp 3-component vector of int)
0:152 's5' ( temp highp 3-component vector of int)
0:152 textureSize ( global highp 3-component vector of int)
0:152 'CA5' ( uniform highp samplerCubeArrayShadow)
0:152 Constant:
0:152 1 (const int)
0:153 Sequence
0:153 move second child to first child ( temp highp 3-component vector of int)
0:153 's6' ( temp highp 3-component vector of int)
0:153 textureSize ( global highp 3-component vector of int)
0:153 'CA6' ( uniform highp isamplerCubeArray)
0:153 Constant:
0:153 1 (const int)
0:154 Sequence
0:154 move second child to first child ( temp highp 3-component vector of int)
0:154 's7' ( temp highp 3-component vector of int)
0:154 textureSize ( global highp 3-component vector of int)
0:154 'CA7' ( uniform highp usamplerCubeArray)
0:154 Constant:
0:154 1 (const int)
0:156 Sequence
0:156 move second child to first child ( temp highp 4-component vector of float)
0:156 't4' ( temp highp 4-component vector of float)
0:156 texture ( global highp 4-component vector of float)
0:156 'CA4' ( uniform highp samplerCubeArray)
0:156 Constant:
0:156 0.500000
0:156 0.500000
0:156 0.500000
0:156 0.500000
0:157 Sequence
0:157 move second child to first child ( temp highp float)
0:157 't5' ( temp highp float)
0:157 texture ( global highp float)
0:157 'CA5' ( uniform highp samplerCubeArrayShadow)
0:157 Constant:
0:157 0.500000
0:157 0.500000
0:157 0.500000
0:157 0.500000
0:157 Constant:
0:157 3.000000
0:158 Sequence
0:158 move second child to first child ( temp highp 4-component vector of int)
0:158 't6' ( temp highp 4-component vector of int)
0:158 texture ( global highp 4-component vector of int)
0:158 'CA6' ( uniform highp isamplerCubeArray)
0:158 Constant:
0:158 0.500000
0:158 0.500000
0:158 0.500000
0:158 0.500000
0:159 Sequence
0:159 move second child to first child ( temp highp 4-component vector of uint)
0:159 't7' ( temp highp 4-component vector of uint)
0:159 texture ( global highp 4-component vector of uint)
0:159 'CA7' ( uniform highp usamplerCubeArray)
0:159 Constant:
0:159 0.500000
0:159 0.500000
0:159 0.500000
0:159 0.500000
0:161 Sequence
0:161 move second child to first child ( temp highp 4-component vector of float)
0:161 'L4' ( temp highp 4-component vector of float)
0:161 textureLod ( global highp 4-component vector of float)
0:161 'CA4' ( uniform highp samplerCubeArray)
0:161 Constant:
0:161 0.500000
0:161 0.500000
0:161 0.500000
0:161 0.500000
0:161 Constant:
0:161 0.240000
0:162 Sequence
0:162 move second child to first child ( temp highp 4-component vector of int)
0:162 'L6' ( temp highp 4-component vector of int)
0:162 textureLod ( global highp 4-component vector of int)
0:162 'CA6' ( uniform highp isamplerCubeArray)
0:162 Constant:
0:162 0.500000
0:162 0.500000
0:162 0.500000
0:162 0.500000
0:162 Constant:
0:162 0.260000
0:163 Sequence
0:163 move second child to first child ( temp highp 4-component vector of uint)
0:163 'L7' ( temp highp 4-component vector of uint)
0:163 textureLod ( global highp 4-component vector of uint)
0:163 'CA7' ( uniform highp usamplerCubeArray)
0:163 Constant:
0:163 0.500000
0:163 0.500000
0:163 0.500000
0:163 0.500000
0:163 Constant:
0:163 0.270000
0:165 Sequence
0:165 move second child to first child ( temp highp 4-component vector of float)
0:165 'g4' ( temp highp 4-component vector of float)
0:165 textureGrad ( global highp 4-component vector of float)
0:165 'CA4' ( uniform highp samplerCubeArray)
0:165 Constant:
0:165 0.500000
0:165 0.500000
0:165 0.500000
0:165 0.500000
0:165 Constant:
0:165 0.100000
0:165 0.100000
0:165 0.100000
0:165 Constant:
0:165 0.200000
0:165 0.200000
0:165 0.200000
0:166 Sequence
0:166 move second child to first child ( temp highp 4-component vector of int)
0:166 'g6' ( temp highp 4-component vector of int)
0:166 textureGrad ( global highp 4-component vector of int)
0:166 'CA6' ( uniform highp isamplerCubeArray)
0:166 Constant:
0:166 0.500000
0:166 0.500000
0:166 0.500000
0:166 0.500000
0:166 Constant:
0:166 0.100000
0:166 0.100000
0:166 0.100000
0:166 Constant:
0:166 0.200000
0:166 0.200000
0:166 0.200000
0:167 Sequence
0:167 move second child to first child ( temp highp 4-component vector of uint)
0:167 'g7' ( temp highp 4-component vector of uint)
0:167 textureGrad ( global highp 4-component vector of uint)
0:167 'CA7' ( uniform highp usamplerCubeArray)
0:167 Constant:
0:167 0.500000
0:167 0.500000
0:167 0.500000
0:167 0.500000
0:167 Constant:
0:167 0.100000
0:167 0.100000
0:167 0.100000
0:167 Constant:
0:167 0.200000
0:167 0.200000
0:167 0.200000
0:169 Sequence
0:169 move second child to first child ( temp highp 4-component vector of float)
0:169 'gath4' ( temp highp 4-component vector of float)
0:169 textureGather ( global highp 4-component vector of float)
0:169 'CA4' ( uniform highp samplerCubeArray)
0:169 Constant:
0:169 0.500000
0:169 0.500000
0:169 0.500000
0:169 0.500000
0:170 Sequence
0:170 move second child to first child ( temp highp 4-component vector of float)
0:170 'gathC4' ( temp highp 4-component vector of float)
0:170 textureGather ( global highp 4-component vector of float)
0:170 'CA4' ( uniform highp samplerCubeArray)
0:170 Constant:
0:170 0.500000
0:170 0.500000
0:170 0.500000
0:170 0.500000
0:170 Constant:
0:170 2 (const int)
0:171 Sequence
0:171 move second child to first child ( temp highp 4-component vector of int)
0:171 'gath6' ( temp highp 4-component vector of int)
0:171 textureGather ( global highp 4-component vector of int)
0:171 'CA6' ( uniform highp isamplerCubeArray)
0:171 Constant:
0:171 0.500000
0:171 0.500000
0:171 0.500000
0:171 0.500000
0:172 Sequence
0:172 move second child to first child ( temp highp 4-component vector of int)
0:172 'gathC6' ( temp highp 4-component vector of int)
0:172 textureGather ( global highp 4-component vector of int)
0:172 'CA6' ( uniform highp isamplerCubeArray)
0:172 Constant:
0:172 0.500000
0:172 0.500000
0:172 0.500000
0:172 0.500000
0:172 Constant:
0:172 1 (const int)
0:173 Sequence
0:173 move second child to first child ( temp highp 4-component vector of uint)
0:173 'gath7' ( temp highp 4-component vector of uint)
0:173 textureGather ( global highp 4-component vector of uint)
0:173 'CA7' ( uniform highp usamplerCubeArray)
0:173 Constant:
0:173 0.500000
0:173 0.500000
0:173 0.500000
0:173 0.500000
0:174 Sequence
0:174 move second child to first child ( temp highp 4-component vector of uint)
0:174 'gathC7' ( temp highp 4-component vector of uint)
0:174 textureGather ( global highp 4-component vector of uint)
0:174 'CA7' ( uniform highp usamplerCubeArray)
0:174 Constant:
0:174 0.500000
0:174 0.500000
0:174 0.500000
0:174 0.500000
0:174 Constant:
0:174 0 (const int)
0:176 Sequence
0:176 move second child to first child ( temp highp 4-component vector of float)
0:176 'gath5' ( temp highp 4-component vector of float)
0:176 textureGather ( global highp 4-component vector of float)
0:176 'CA5' ( uniform highp samplerCubeArrayShadow)
0:176 Constant:
0:176 0.500000
0:176 0.500000
0:176 0.500000
0:176 0.500000
0:176 Constant:
0:176 2.500000
0:178 Sequence
0:178 move second child to first child ( temp highp 3-component vector of int)
0:178 's1' ( temp highp 3-component vector of int)
0:178 imageQuerySize ( global highp 3-component vector of int)
0:178 'CA1' ( writeonly uniform highp imageCubeArray)
0:179 Sequence
0:179 move second child to first child ( temp highp 3-component vector of int)
0:179 's2' ( temp highp 3-component vector of int)
0:179 imageQuerySize ( global highp 3-component vector of int)
0:179 'CA2' ( writeonly uniform highp iimageCubeArray)
0:180 Sequence
0:180 move second child to first child ( temp highp 3-component vector of int)
0:180 's3' ( temp highp 3-component vector of int)
0:180 imageQuerySize ( global highp 3-component vector of int)
0:180 'CA3' ( writeonly uniform highp uimageCubeArray)
0:182 imageStore ( global highp void)
0:182 'CA1' ( writeonly uniform highp imageCubeArray)
0:182 's3' ( temp highp 3-component vector of int)
0:182 Constant:
0:182 1.000000
0:182 1.000000
0:182 1.000000
0:182 1.000000
0:183 imageStore ( global highp void)
0:183 'CA2' ( writeonly uniform highp iimageCubeArray)
0:183 's3' ( temp highp 3-component vector of int)
0:183 Constant:
0:183 1 (const int)
0:183 1 (const int)
0:183 1 (const int)
0:183 1 (const int)
0:184 imageStore ( global highp void)
0:184 'CA3' ( writeonly uniform highp uimageCubeArray)
0:184 's3' ( temp highp 3-component vector of int)
0:184 Constant:
0:184 1 (const uint)
0:184 1 (const uint)
0:184 1 (const uint)
0:184 1 (const uint)
0:186 Sequence
0:186 move second child to first child ( temp highp 4-component vector of float)
0:186 'cl1' ( temp highp 4-component vector of float)
0:186 imageLoad ( global highp 4-component vector of float)
0:186 'rCA1' (layout( rgba16f) readonly uniform highp imageCubeArray)
0:186 's3' ( temp highp 3-component vector of int)
0:187 Sequence
0:187 move second child to first child ( temp highp 4-component vector of int)
0:187 'cl2' ( temp highp 4-component vector of int)
0:187 imageLoad ( global highp 4-component vector of int)
0:187 'rCA2' (layout( rgba32i) readonly uniform highp iimageCubeArray)
0:187 's3' ( temp highp 3-component vector of int)
0:188 Sequence
0:188 move second child to first child ( temp highp 4-component vector of uint)
0:188 'cl3' ( temp highp 4-component vector of uint)
0:188 imageLoad ( global highp 4-component vector of uint)
0:188 'rCA3' (layout( r32ui) readonly uniform highp uimageCubeArray)
0:188 's3' ( temp highp 3-component vector of int)
0:203 Function Definition: MSA( ( global void)
0:203 Function Parameters:
0:205 Sequence
0:205 Sequence
0:205 move second child to first child ( temp highp 4-component vector of float)
0:205 'tf' ( temp highp 4-component vector of float)
0:205 textureFetch ( global highp 4-component vector of float)
0:205 'samp2DMSA' ( uniform highp sampler2DMSArray)
0:205 Constant:
0:205 5 (const int)
0:205 5 (const int)
0:205 5 (const int)
0:205 Constant:
0:205 2 (const int)
0:206 Sequence
0:206 move second child to first child ( temp highp 4-component vector of int)
0:206 'tfi' ( temp highp 4-component vector of int)
0:206 textureFetch ( global highp 4-component vector of int)
0:206 'samp2DMSAi' ( uniform highp isampler2DMSArray)
0:206 Constant:
0:206 5 (const int)
0:206 5 (const int)
0:206 5 (const int)
0:206 Constant:
0:206 2 (const int)
0:207 Sequence
0:207 move second child to first child ( temp highp 4-component vector of uint)
0:207 'tfu' ( temp highp 4-component vector of uint)
0:207 textureFetch ( global highp 4-component vector of uint)
0:207 'samp2DMSAu' ( uniform highp usampler2DMSArray)
0:207 Constant:
0:207 5 (const int)
0:207 5 (const int)
0:207 5 (const int)
0:207 Constant:
0:207 2 (const int)
0:209 Sequence
0:209 move second child to first child ( temp highp 3-component vector of int)
0:209 'tfs' ( temp highp 3-component vector of int)
0:209 textureSize ( global highp 3-component vector of int)
0:209 'samp2DMSA' ( uniform highp sampler2DMSArray)
0:210 Sequence
0:210 move second child to first child ( temp highp 3-component vector of int)
0:210 'tfsi' ( temp highp 3-component vector of int)
0:210 textureSize ( global highp 3-component vector of int)
0:210 'samp2DMSAi' ( uniform highp isampler2DMSArray)
0:212 Sequence
0:212 move second child to first child ( temp highp 3-component vector of int)
0:212 'tfsu' ( temp highp 3-component vector of int)
0:212 textureSize ( global highp 3-component vector of int)
0:212 'samp2DMSAu' ( uniform highp usampler2DMSArray)
0:220 Function Definition: goodImageAtom( ( global void)
0:220 Function Parameters:
0:? Sequence
0:226 imageAtomicAdd ( global highp int)
0:226 'im2Di' (layout( r32i) uniform highp iimage2D)
0:226 'P' ( uniform highp 2-component vector of int)
0:226 'dati' ( temp highp int)
0:227 imageAtomicAdd ( global highp uint)
0:227 'im2Du' (layout( r32ui) uniform highp uimage2D)
0:227 'P' ( uniform highp 2-component vector of int)
0:227 'datu' ( temp highp uint)
0:228 imageAtomicMin ( global highp int)
0:228 'im2Di' (layout( r32i) uniform highp iimage2D)
0:228 'P' ( uniform highp 2-component vector of int)
0:228 'dati' ( temp highp int)
0:229 imageAtomicMin ( global highp uint)
0:229 'im2Du' (layout( r32ui) uniform highp uimage2D)
0:229 'P' ( uniform highp 2-component vector of int)
0:229 'datu' ( temp highp uint)
0:230 imageAtomicMax ( global highp int)
0:230 'im2Di' (layout( r32i) uniform highp iimage2D)
0:230 'P' ( uniform highp 2-component vector of int)
0:230 'dati' ( temp highp int)
0:231 imageAtomicMax ( global highp uint)
0:231 'im2Du' (layout( r32ui) uniform highp uimage2D)
0:231 'P' ( uniform highp 2-component vector of int)
0:231 'datu' ( temp highp uint)
0:232 imageAtomicAnd ( global highp int)
0:232 'im2Di' (layout( r32i) uniform highp iimage2D)
0:232 'P' ( uniform highp 2-component vector of int)
0:232 'dati' ( temp highp int)
0:233 imageAtomicAnd ( global highp uint)
0:233 'im2Du' (layout( r32ui) uniform highp uimage2D)
0:233 'P' ( uniform highp 2-component vector of int)
0:233 'datu' ( temp highp uint)
0:234 imageAtomicOr ( global highp int)
0:234 'im2Di' (layout( r32i) uniform highp iimage2D)
0:234 'P' ( uniform highp 2-component vector of int)
0:234 'dati' ( temp highp int)
0:235 imageAtomicOr ( global highp uint)
0:235 'im2Du' (layout( r32ui) uniform highp uimage2D)
0:235 'P' ( uniform highp 2-component vector of int)
0:235 'datu' ( temp highp uint)
0:236 imageAtomicXor ( global highp int)
0:236 'im2Di' (layout( r32i) uniform highp iimage2D)
0:236 'P' ( uniform highp 2-component vector of int)
0:236 'dati' ( temp highp int)
0:237 imageAtomicXor ( global highp uint)
0:237 'im2Du' (layout( r32ui) uniform highp uimage2D)
0:237 'P' ( uniform highp 2-component vector of int)
0:237 'datu' ( temp highp uint)
0:238 imageAtomicExchange ( global highp int)
0:238 'im2Di' (layout( r32i) uniform highp iimage2D)
0:238 'P' ( uniform highp 2-component vector of int)
0:238 'dati' ( temp highp int)
0:239 imageAtomicExchange ( global highp uint)
0:239 'im2Du' (layout( r32ui) uniform highp uimage2D)
0:239 'P' ( uniform highp 2-component vector of int)
0:239 'datu' ( temp highp uint)
0:240 imageAtomicExchange ( global highp float)
0:240 'im2Df' (layout( r32f) uniform highp image2D)
0:240 'P' ( uniform highp 2-component vector of int)
0:240 'datf' ( temp highp float)
0:241 imageAtomicCompSwap ( global highp int)
0:241 'im2Di' (layout( r32i) uniform highp iimage2D)
0:241 'P' ( uniform highp 2-component vector of int)
0:241 Constant:
0:241 3 (const int)
0:241 'dati' ( temp highp int)
0:242 imageAtomicCompSwap ( global highp uint)
0:242 'im2Du' (layout( r32ui) uniform highp uimage2D)
0:242 'P' ( uniform highp 2-component vector of int)
0:242 Constant:
0:242 5 (const uint)
0:242 'datu' ( temp highp uint)
0:250 Function Definition: badInterp( ( global void)
0:250 Function Parameters:
0:252 Sequence
0:252 Constant:
0:252 0.000000
0:253 Constant:
0:253 0.000000
0:254 Constant:
0:254 0.000000
0:? Linker Objects
0:? 'outbinst' ( out block{ out highp int a, out highp 4-component vector of float v, out highp sampler2D s})
0:? 'anon@0' ( out block{layout( location=12) out highp int aAnon, layout( location=13) out highp 4-component vector of float vAnon})
0:? 'aliased' (layout( location=12) smooth out highp int)
0:? 'inbinst' ( in block{ in highp int a})
0:? 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position, })
0:? 'smon' ( smooth out block{ out highp int i})
0:? 'fmon' ( flat out block{ out highp int i})
0:? 'cmon' ( centroid out block{ out highp int i})
0:? 'imon' ( invariant out block{ out highp int i})
0:? 'inf' ( in highp 2-component vector of float)
0:? 'ing' ( in highp 2-component vector of float)
0:? 'offsets' ( uniform 4-element array of highp 2-component vector of int)
0:? 'sArray' ( uniform 4-element array of lowp sampler2D)
0:? 'sIndex' ( uniform highp int)
0:? 'auArray' (layout( binding=0 offset=0) uniform 2-element array of highp atomic_uint)
0:? 'ubInst' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform highp int i})
0:? 'bbInst' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp int i})
0:? 'iArray' ( writeonly uniform 5-element array of highp image2D)
0:? 'constOffsets' ( const 4-element array of highp 2-component vector of int)
0:? 0 (const int)
0:? 0 (const int)
0:? 0 (const int)
0:? 0 (const int)
0:? 0 (const int)
0:? 0 (const int)
0:? 0 (const int)
0:? 0 (const int)
0:? 'noPreSamp1' ( uniform mediump samplerBuffer)
0:? 'noPreSamp2' ( uniform mediump isamplerBuffer)
0:? 'noPreSamp3' ( uniform mediump usamplerBuffer)
0:? 'noPreSamp4' ( writeonly uniform mediump imageBuffer)
0:? 'noPreSamp5' ( writeonly uniform mediump iimageBuffer)
0:? 'noPreSamp6' ( writeonly uniform mediump uimageBuffer)
0:? 'bufSamp1' ( uniform highp samplerBuffer)
0:? 'bufSamp2' ( uniform highp isamplerBuffer)
0:? 'bufSamp3' ( uniform highp usamplerBuffer)
0:? 'bufSamp4' ( writeonly uniform highp imageBuffer)
0:? 'bufSamp5' ( writeonly uniform highp iimageBuffer)
0:? 'bufSamp6' ( writeonly uniform highp uimageBuffer)
0:? 'noPreCA1' ( writeonly uniform mediump imageCubeArray)
0:? 'noPreCA2' ( writeonly uniform mediump iimageCubeArray)
0:? 'noPreCA3' ( writeonly uniform mediump uimageCubeArray)
0:? 'noPreCA4' ( uniform mediump samplerCubeArray)
0:? 'noPreCA5' ( uniform mediump samplerCubeArrayShadow)
0:? 'noPreCA6' ( uniform mediump isamplerCubeArray)
0:? 'noPreCA7' ( uniform mediump usamplerCubeArray)
0:? 'CA1' ( writeonly uniform highp imageCubeArray)
0:? 'CA2' ( writeonly uniform highp iimageCubeArray)
0:? 'CA3' ( writeonly uniform highp uimageCubeArray)
0:? 'rCA1' (layout( rgba16f) readonly uniform highp imageCubeArray)
0:? 'rCA2' (layout( rgba32i) readonly uniform highp iimageCubeArray)
0:? 'rCA3' (layout( r32ui) readonly uniform highp uimageCubeArray)
0:? 'CA4' ( uniform highp samplerCubeArray)
0:? 'CA5' ( uniform highp samplerCubeArrayShadow)
0:? 'CA6' ( uniform highp isamplerCubeArray)
0:? 'CA7' ( uniform highp usamplerCubeArray)
0:? 'noPrec2DMS' ( uniform mediump sampler2DMSArray)
0:? 'noPrec2DMSi' ( uniform mediump isampler2DMSArray)
0:? 'noPrec2DMSu' ( uniform mediump usampler2DMSArray)
0:? 'samp2DMSA' ( uniform highp sampler2DMSArray)
0:? 'samp2DMSAi' ( uniform highp isampler2DMSArray)
0:? 'samp2DMSAu' ( uniform highp usampler2DMSArray)
0:? 'im2Df' (layout( r32f) uniform highp image2D)
0:? 'im2Du' (layout( r32ui) uniform highp uimage2D)
0:? 'im2Di' (layout( r32i) uniform highp iimage2D)
0:? 'P' ( uniform highp 2-component vector of int)
0:? 'colorSample' ( smooth sample out highp 4-component vector of float)
0:? 'colorfsi' ( flat sample out highp 4-component vector of float)
0:? 'sampInArray' ( smooth sample out 4-element array of highp 3-component vector of float)
0:? 'inv4' ( in highp 4-component vector of float)
0:? 'gl_VertexID' ( gl_VertexId highp int VertexId)
0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId)
Linked vertex stage:
Shader version: 320
ERROR: node is still EOpNull!
0:23 Function Definition: main( ( global void)
0:23 Function Parameters:
0:25 Sequence
0:25 Sequence
0:25 move second child to first child ( temp highp int)
0:25 'sum' ( temp highp int)
0:25 add ( temp highp int)
0:25 'gl_VertexID' ( gl_VertexId highp int VertexId)
0:26 'gl_InstanceID' ( gl_InstanceId highp int InstanceId)
0:27 move second child to first child ( temp highp 4-component vector of float)
0:27 gl_Position: direct index for structure ( gl_Position highp 4-component vector of float Position)
0:27 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position, })
0:27 Constant:
0:27 0 (const uint)
0:27 Constant:
0:27 1.000000
0:27 1.000000
0:27 1.000000
0:27 1.000000
0:28 gl_PointSize: direct index for structure ( gl_PointSize highp void PointSize)
0:28 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position, })
0:28 Constant:
0:28 1 (const uint)
0:? Linker Objects
0:? 'outbinst' ( out block{ out highp int a, out highp 4-component vector of float v, out highp sampler2D s})
0:? 'anon@0' ( out block{layout( location=12) out highp int aAnon, layout( location=13) out highp 4-component vector of float vAnon})
0:? 'aliased' (layout( location=12) smooth out highp int)
0:? 'inbinst' ( in block{ in highp int a})
0:? 'anon@1' ( out block{ gl_Position highp 4-component vector of float Position gl_Position, })
0:? 'smon' ( smooth out block{ out highp int i})
0:? 'fmon' ( flat out block{ out highp int i})
0:? 'cmon' ( centroid out block{ out highp int i})
0:? 'imon' ( invariant out block{ out highp int i})
0:? 'inf' ( in highp 2-component vector of float)
0:? 'ing' ( in highp 2-component vector of float)
0:? 'offsets' ( uniform 4-element array of highp 2-component vector of int)
0:? 'sArray' ( uniform 4-element array of lowp sampler2D)
0:? 'sIndex' ( uniform highp int)
0:? 'auArray' (layout( binding=0 offset=0) uniform 2-element array of highp atomic_uint)
0:? 'ubInst' (layout( column_major shared) uniform 4-element array of block{layout( column_major shared) uniform highp int i})
0:? 'bbInst' (layout( column_major shared) buffer 4-element array of block{layout( column_major shared) buffer highp int i})
0:? 'iArray' ( writeonly uniform 5-element array of highp image2D)
0:? 'constOffsets' ( const 4-element array of highp 2-component vector of int)
0:? 0 (const int)
0:? 0 (const int)
0:? 0 (const int)
0:? 0 (const int)
0:? 0 (const int)
0:? 0 (const int)
0:? 0 (const int)
0:? 0 (const int)
0:? 'noPreSamp1' ( uniform mediump samplerBuffer)
0:? 'noPreSamp2' ( uniform mediump isamplerBuffer)
0:? 'noPreSamp3' ( uniform mediump usamplerBuffer)
0:? 'noPreSamp4' ( writeonly uniform mediump imageBuffer)
0:? 'noPreSamp5' ( writeonly uniform mediump iimageBuffer)
0:? 'noPreSamp6' ( writeonly uniform mediump uimageBuffer)
0:? 'bufSamp1' ( uniform highp samplerBuffer)
0:? 'bufSamp2' ( uniform highp isamplerBuffer)
0:? 'bufSamp3' ( uniform highp usamplerBuffer)
0:? 'bufSamp4' ( writeonly uniform highp imageBuffer)
0:? 'bufSamp5' ( writeonly uniform highp iimageBuffer)
0:? 'bufSamp6' ( writeonly uniform highp uimageBuffer)
0:? 'noPreCA1' ( writeonly uniform mediump imageCubeArray)
0:? 'noPreCA2' ( writeonly uniform mediump iimageCubeArray)
0:? 'noPreCA3' ( writeonly uniform mediump uimageCubeArray)
0:? 'noPreCA4' ( uniform mediump samplerCubeArray)
0:? 'noPreCA5' ( uniform mediump samplerCubeArrayShadow)
0:? 'noPreCA6' ( uniform mediump isamplerCubeArray)
0:? 'noPreCA7' ( uniform mediump usamplerCubeArray)
0:? 'CA1' ( writeonly uniform highp imageCubeArray)
0:? 'CA2' ( writeonly uniform highp iimageCubeArray)
0:? 'CA3' ( writeonly uniform highp uimageCubeArray)
0:? 'rCA1' (layout( rgba16f) readonly uniform highp imageCubeArray)
0:? 'rCA2' (layout( rgba32i) readonly uniform highp iimageCubeArray)
0:? 'rCA3' (layout( r32ui) readonly uniform highp uimageCubeArray)
0:? 'CA4' ( uniform highp samplerCubeArray)
0:? 'CA5' ( uniform highp samplerCubeArrayShadow)
0:? 'CA6' ( uniform highp isamplerCubeArray)
0:? 'CA7' ( uniform highp usamplerCubeArray)
0:? 'noPrec2DMS' ( uniform mediump sampler2DMSArray)
0:? 'noPrec2DMSi' ( uniform mediump isampler2DMSArray)
0:? 'noPrec2DMSu' ( uniform mediump usampler2DMSArray)
0:? 'samp2DMSA' ( uniform highp sampler2DMSArray)
0:? 'samp2DMSAi' ( uniform highp isampler2DMSArray)
0:? 'samp2DMSAu' ( uniform highp usampler2DMSArray)
0:? 'im2Df' (layout( r32f) uniform highp image2D)
0:? 'im2Du' (layout( r32ui) uniform highp uimage2D)
0:? 'im2Di' (layout( r32i) uniform highp iimage2D)
0:? 'P' ( uniform highp 2-component vector of int)
0:? 'colorSample' ( smooth sample out highp 4-component vector of float)
0:? 'colorfsi' ( flat sample out highp 4-component vector of float)
0:? 'sampInArray' ( smooth sample out 4-element array of highp 3-component vector of float)
0:? 'inv4' ( in highp 4-component vector of float)
0:? 'gl_VertexID' ( gl_VertexId highp int VertexId)
0:? 'gl_InstanceID' ( gl_InstanceId highp int InstanceId)

View File

@ -5316,13 +5316,14 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
symbolTable.setFunctionExtensions("texture2DGradEXT", 1, &E_GL_EXT_shader_texture_lod);
symbolTable.setFunctionExtensions("texture2DProjGradEXT", 1, &E_GL_EXT_shader_texture_lod);
symbolTable.setFunctionExtensions("textureCubeGradEXT", 1, &E_GL_EXT_shader_texture_lod);
symbolTable.setFunctionExtensions("textureGatherOffsets", Num_AEP_gpu_shader5, AEP_gpu_shader5);
if (version == 310)
symbolTable.setFunctionExtensions("textureGatherOffsets", Num_AEP_gpu_shader5, AEP_gpu_shader5);
}
if (version >= 310)
if (version == 310)
symbolTable.setFunctionExtensions("fma", Num_AEP_gpu_shader5, AEP_gpu_shader5);
}
if (profile == EEsProfile) {
if (profile == EEsProfile && version < 320) {
symbolTable.setFunctionExtensions("imageAtomicAdd", 1, &E_GL_OES_shader_image_atomic);
symbolTable.setFunctionExtensions("imageAtomicMin", 1, &E_GL_OES_shader_image_atomic);
symbolTable.setFunctionExtensions("imageAtomicMax", 1, &E_GL_OES_shader_image_atomic);
@ -5357,8 +5358,10 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
case EShLangTessControl:
if (profile == EEsProfile && version >= 310) {
symbolTable.setVariableExtensions("gl_BoundingBoxOES", Num_AEP_primitive_bounding_box, AEP_primitive_bounding_box);
BuiltInVariable("gl_BoundingBoxOES", EbvBoundingBox, symbolTable);
if (version < 320)
symbolTable.setVariableExtensions("gl_BoundingBoxOES", Num_AEP_primitive_bounding_box,
AEP_primitive_bounding_box);
}
// Fall through
@ -5505,7 +5508,7 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
BuiltInVariable("gl_SamplePosition", EbvSamplePosition, symbolTable);
BuiltInVariable("gl_SampleMaskIn", EbvSampleMask, symbolTable);
BuiltInVariable("gl_SampleMask", EbvSampleMask, symbolTable);
if (profile == EEsProfile) {
if (profile == EEsProfile && version < 320) {
symbolTable.setVariableExtensions("gl_SampleID", 1, &E_GL_OES_sample_variables);
symbolTable.setVariableExtensions("gl_SamplePosition", 1, &E_GL_OES_sample_variables);
symbolTable.setVariableExtensions("gl_SampleMaskIn", 1, &E_GL_OES_sample_variables);
@ -5539,14 +5542,15 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
symbolTable.setFunctionExtensions("texture2DGradEXT", 1, &E_GL_EXT_shader_texture_lod);
symbolTable.setFunctionExtensions("texture2DProjGradEXT", 1, &E_GL_EXT_shader_texture_lod);
symbolTable.setFunctionExtensions("textureCubeGradEXT", 1, &E_GL_EXT_shader_texture_lod);
symbolTable.setFunctionExtensions("textureGatherOffsets", Num_AEP_gpu_shader5, AEP_gpu_shader5);
if (version < 320)
symbolTable.setFunctionExtensions("textureGatherOffsets", Num_AEP_gpu_shader5, AEP_gpu_shader5);
}
if (version == 100) {
symbolTable.setFunctionExtensions("dFdx", 1, &E_GL_OES_standard_derivatives);
symbolTable.setFunctionExtensions("dFdy", 1, &E_GL_OES_standard_derivatives);
symbolTable.setFunctionExtensions("fwidth", 1, &E_GL_OES_standard_derivatives);
}
if (version >= 310) {
if (version == 310) {
symbolTable.setFunctionExtensions("fma", Num_AEP_gpu_shader5, AEP_gpu_shader5);
symbolTable.setFunctionExtensions("interpolateAtCentroid", 1, &E_GL_OES_shader_multisample_interpolation);
symbolTable.setFunctionExtensions("interpolateAtSample", 1, &E_GL_OES_shader_multisample_interpolation);
@ -5675,12 +5679,12 @@ void TBuiltIns::identifyBuiltIns(int version, EProfile profile, const SpvVersion
symbolTable.setVariableExtensions("gl_FragDepthEXT", 1, &E_GL_EXT_frag_depth);
if (profile == EEsProfile) {
if (profile == EEsProfile && version < 320) {
symbolTable.setVariableExtensions("gl_PrimitiveID", Num_AEP_geometry_shader, AEP_geometry_shader);
symbolTable.setVariableExtensions("gl_Layer", Num_AEP_geometry_shader, AEP_geometry_shader);
}
if (profile == EEsProfile) {
if (profile == EEsProfile && version < 320) {
symbolTable.setFunctionExtensions("imageAtomicAdd", 1, &E_GL_OES_shader_image_atomic);
symbolTable.setFunctionExtensions("imageAtomicMin", 1, &E_GL_OES_shader_image_atomic);
symbolTable.setFunctionExtensions("imageAtomicMax", 1, &E_GL_OES_shader_image_atomic);

View File

@ -383,7 +383,8 @@ TIntermTyped* TParseContext::handleBracketDereference(const TSourceLoc& loc, TIn
if (base->getQualifier().storage == EvqBuffer)
requireProfile(base->getLoc(), ~EEsProfile, "variable indexing buffer block array");
else if (base->getQualifier().storage == EvqUniform)
profileRequires(base->getLoc(), EEsProfile, 0, Num_AEP_gpu_shader5, AEP_gpu_shader5, "variable indexing uniform block array");
profileRequires(base->getLoc(), EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5,
"variable indexing uniform block array");
else {
// input/output blocks either don't exist or can be variable indexed
}
@ -392,7 +393,7 @@ TIntermTyped* TParseContext::handleBracketDereference(const TSourceLoc& loc, TIn
else if (base->getBasicType() == EbtSampler && version >= 130) {
const char* explanation = "variable indexing sampler array";
requireProfile(base->getLoc(), EEsProfile | ECoreProfile | ECompatibilityProfile, explanation);
profileRequires(base->getLoc(), EEsProfile, 0, Num_AEP_gpu_shader5, AEP_gpu_shader5, explanation);
profileRequires(base->getLoc(), EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5, explanation);
profileRequires(base->getLoc(), ECoreProfile | ECompatibilityProfile, 400, nullptr, explanation);
}
@ -1417,7 +1418,8 @@ void TParseContext::builtInOpCheck(const TSourceLoc& loc, const TFunction& fnCan
else
profileRequires(loc, ~EEsProfile, 400, E_GL_ARB_gpu_shader5, feature);
if (! (*argp)[fnCandidate[0].type->getSampler().shadow ? 3 : 2]->getAsConstantUnion())
profileRequires(loc, EEsProfile, 0, Num_AEP_gpu_shader5, AEP_gpu_shader5, "non-constant offset argument");
profileRequires(loc, EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5,
"non-constant offset argument");
if (! fnCandidate[0].type->getSampler().shadow)
compArg = 3;
break;
@ -1631,7 +1633,8 @@ void TParseContext::nonOpBuiltInCheck(const TSourceLoc& loc, const TFunction& fn
profileRequires(loc, ~EEsProfile, 400, E_GL_ARB_gpu_shader5, feature);
int offsetArg = fnCandidate[0].type->getSampler().shadow ? 3 : 2;
if (! callNode.getSequence()[offsetArg]->getAsConstantUnion())
profileRequires(loc, EEsProfile, 0, Num_AEP_gpu_shader5, AEP_gpu_shader5, "non-constant offset argument");
profileRequires(loc, EEsProfile, 320, Num_AEP_gpu_shader5, AEP_gpu_shader5,
"non-constant offset argument");
if (! fnCandidate[0].type->getSampler().shadow)
compArg = 3;
} else if (fnCandidate.getName().compare("textureGatherOffsets") == 0) {
@ -3016,19 +3019,22 @@ void TParseContext::arraySizesCheck(const TSourceLoc& loc, const TQualifier& qua
switch (language) {
case EShLangGeometry:
if (qualifier.storage == EvqVaryingIn)
if (extensionsTurnedOn(Num_AEP_geometry_shader, AEP_geometry_shader))
if ((profile == EEsProfile && version >= 320) ||
extensionsTurnedOn(Num_AEP_geometry_shader, AEP_geometry_shader))
return;
break;
case EShLangTessControl:
if ( qualifier.storage == EvqVaryingIn ||
(qualifier.storage == EvqVaryingOut && ! qualifier.patch))
if (extensionsTurnedOn(Num_AEP_tessellation_shader, AEP_tessellation_shader))
if ((profile == EEsProfile && version >= 320) ||
extensionsTurnedOn(Num_AEP_tessellation_shader, AEP_tessellation_shader))
return;
break;
case EShLangTessEvaluation:
if ((qualifier.storage == EvqVaryingIn && ! qualifier.patch) ||
qualifier.storage == EvqVaryingOut)
if (extensionsTurnedOn(Num_AEP_tessellation_shader, AEP_tessellation_shader))
if ((profile == EEsProfile && version >= 320) ||
extensionsTurnedOn(Num_AEP_tessellation_shader, AEP_tessellation_shader))
return;
break;
default:
@ -3267,7 +3273,8 @@ TSymbol* TParseContext::redeclareBuiltinVariable(const TSourceLoc& loc, const TS
return nullptr;
bool nonEsRedecls = (profile != EEsProfile && (version >= 130 || identifier == "gl_TexCoord"));
bool esRedecls = (profile == EEsProfile && extensionsTurnedOn(Num_AEP_shader_io_blocks, AEP_shader_io_blocks));
bool esRedecls = (profile == EEsProfile &&
(version >= 320 || extensionsTurnedOn(Num_AEP_shader_io_blocks, AEP_shader_io_blocks)));
if (! esRedecls && ! nonEsRedecls)
return nullptr;
@ -3406,7 +3413,7 @@ TSymbol* TParseContext::redeclareBuiltinVariable(const TSourceLoc& loc, const TS
void TParseContext::redeclareBuiltinBlock(const TSourceLoc& loc, TTypeList& newTypeList, const TString& blockName, const TString* instanceName, TArraySizes* arraySizes)
{
const char* feature = "built-in block redeclaration";
profileRequires(loc, EEsProfile, 0, Num_AEP_shader_io_blocks, AEP_shader_io_blocks, feature);
profileRequires(loc, EEsProfile, 320, Num_AEP_shader_io_blocks, AEP_shader_io_blocks, feature);
profileRequires(loc, ~EEsProfile, 410, E_GL_ARB_separate_shader_objects, feature);
if (blockName != "gl_PerVertex" && blockName != "gl_PerFragment") {
@ -4040,7 +4047,8 @@ void TParseContext::setLayoutQualifier(const TSourceLoc& loc, TPublicType& publi
bool found = false;
for (TBlendEquationShift be = (TBlendEquationShift)0; be < EBlendCount; be = (TBlendEquationShift)(be + 1)) {
if (id == TQualifier::getBlendEquationString(be)) {
requireExtensions(loc, 1, &E_GL_KHR_blend_equation_advanced, "blend equation");
profileRequires(loc, EEsProfile, 320, E_GL_KHR_blend_equation_advanced, "blend equation");
profileRequires(loc, ~EEsProfile, 0, E_GL_KHR_blend_equation_advanced, "blend equation");
intermediate.addBlendEquation(be);
publicType.shaderQualifiers.blendEquation = true;
found = true;
@ -5807,7 +5815,7 @@ void TParseContext::declareBlock(const TSourceLoc& loc, TTypeList& typeList, con
case EvqVaryingOut:
requireProfile(memberLoc, ECoreProfile | ECompatibilityProfile | EEsProfile, feature);
profileRequires(memberLoc, ECoreProfile | ECompatibilityProfile, 440, E_GL_ARB_enhanced_layouts, feature);
profileRequires(memberLoc, EEsProfile, 0, Num_AEP_shader_io_blocks, AEP_shader_io_blocks, feature);
profileRequires(memberLoc, EEsProfile, 320, Num_AEP_shader_io_blocks, AEP_shader_io_blocks, feature);
memberWithLocation = true;
break;
default:
@ -5931,14 +5939,14 @@ void TParseContext::blockStageIoCheck(const TSourceLoc& loc, const TQualifier& q
// "Compute shaders do not permit user-defined input variables..."
requireStage(loc, (EShLanguageMask)(EShLangTessControlMask|EShLangTessEvaluationMask|EShLangGeometryMask|EShLangFragmentMask), "input block");
if (language == EShLangFragment)
profileRequires(loc, EEsProfile, 0, Num_AEP_shader_io_blocks, AEP_shader_io_blocks, "fragment input block");
profileRequires(loc, EEsProfile, 320, Num_AEP_shader_io_blocks, AEP_shader_io_blocks, "fragment input block");
break;
case EvqVaryingOut:
profileRequires(loc, ~EEsProfile, 150, E_GL_ARB_separate_shader_objects, "output block");
requireStage(loc, (EShLanguageMask)(EShLangVertexMask|EShLangTessControlMask|EShLangTessEvaluationMask|EShLangGeometryMask), "output block");
// ES 310 can have a block before shader_io is turned on, so skip this test for built-ins
if (language == EShLangVertex && ! parsingBuiltins)
profileRequires(loc, EEsProfile, 0, Num_AEP_shader_io_blocks, AEP_shader_io_blocks, "vertex output block");
profileRequires(loc, EEsProfile, 320, Num_AEP_shader_io_blocks, AEP_shader_io_blocks, "vertex output block");
break;
default:
error(loc, "only uniform, buffer, in, or out blocks are supported", blockName->c_str(), "");

View File

@ -864,14 +864,17 @@ int TScanContext::tokenizeIdentifier()
case PATCH:
if (parseContext.symbolTable.atBuiltInLevel() ||
(parseContext.profile == EEsProfile && parseContext.extensionsTurnedOn(Num_AEP_tessellation_shader, AEP_tessellation_shader)) ||
(parseContext.profile == EEsProfile &&
(parseContext.version >= 320 ||
parseContext.extensionsTurnedOn(Num_AEP_tessellation_shader, AEP_tessellation_shader))) ||
(parseContext.profile != EEsProfile && parseContext.extensionTurnedOn(E_GL_ARB_tessellation_shader)))
return keyword;
return es30ReservedFromGLSL(400);
case SAMPLE:
if (parseContext.extensionsTurnedOn(1, &E_GL_OES_shader_multisample_interpolation))
if ((parseContext.profile == EEsProfile && parseContext.version >= 320) ||
parseContext.extensionsTurnedOn(1, &E_GL_OES_shader_multisample_interpolation))
return keyword;
return es30ReservedFromGLSL(400);
@ -925,7 +928,8 @@ int TScanContext::tokenizeIdentifier()
case IIMAGEBUFFER:
case UIMAGEBUFFER:
afterType = true;
if (parseContext.extensionsTurnedOn(Num_AEP_texture_buffer, AEP_texture_buffer))
if ((parseContext.profile == EEsProfile && parseContext.version >= 320) ||
parseContext.extensionsTurnedOn(Num_AEP_texture_buffer, AEP_texture_buffer))
return keyword;
return firstGenerationImage(false);
@ -948,7 +952,8 @@ int TScanContext::tokenizeIdentifier()
case IIMAGECUBEARRAY:
case UIMAGECUBEARRAY:
afterType = true;
if (parseContext.extensionsTurnedOn(Num_AEP_texture_cube_map_array, AEP_texture_cube_map_array))
if ((parseContext.profile == EEsProfile && parseContext.version >= 320) ||
parseContext.extensionsTurnedOn(Num_AEP_texture_cube_map_array, AEP_texture_cube_map_array))
return keyword;
return secondGenerationImage();
@ -1030,7 +1035,8 @@ int TScanContext::tokenizeIdentifier()
case ISAMPLERCUBEARRAY:
case USAMPLERCUBEARRAY:
afterType = true;
if (parseContext.extensionsTurnedOn(Num_AEP_texture_cube_map_array, AEP_texture_cube_map_array))
if ((parseContext.profile == EEsProfile && parseContext.version >= 320) ||
parseContext.extensionsTurnedOn(Num_AEP_texture_cube_map_array, AEP_texture_cube_map_array))
return keyword;
if (parseContext.profile == EEsProfile || (parseContext.version < 400 && ! parseContext.extensionTurnedOn(E_GL_ARB_texture_cube_map_array)))
reservedWord();
@ -1069,14 +1075,16 @@ int TScanContext::tokenizeIdentifier()
case SAMPLERBUFFER:
afterType = true;
if (parseContext.extensionsTurnedOn(Num_AEP_texture_buffer, AEP_texture_buffer))
if ((parseContext.profile == EEsProfile && parseContext.version >= 320) ||
parseContext.extensionsTurnedOn(Num_AEP_texture_buffer, AEP_texture_buffer))
return keyword;
return es30ReservedFromGLSL(130);
case ISAMPLERBUFFER:
case USAMPLERBUFFER:
afterType = true;
if (parseContext.extensionsTurnedOn(Num_AEP_texture_buffer, AEP_texture_buffer))
if ((parseContext.profile == EEsProfile && parseContext.version >= 320) ||
parseContext.extensionsTurnedOn(Num_AEP_texture_buffer, AEP_texture_buffer))
return keyword;
return es30ReservedFromGLSL(140);
@ -1092,7 +1100,8 @@ int TScanContext::tokenizeIdentifier()
case ISAMPLER2DMSARRAY:
case USAMPLER2DMSARRAY:
afterType = true;
if (parseContext.extensionsTurnedOn(1, &E_GL_OES_texture_storage_multisample_2d_array))
if ((parseContext.profile == EEsProfile && parseContext.version >= 320) ||
parseContext.extensionsTurnedOn(1, &E_GL_OES_texture_storage_multisample_2d_array))
return keyword;
return es30ReservedFromGLSL(150);
@ -1228,7 +1237,8 @@ int TScanContext::tokenizeIdentifier()
return keyword;
case PRECISE:
if ((parseContext.profile == EEsProfile && parseContext.extensionsTurnedOn(Num_AEP_gpu_shader5, AEP_gpu_shader5)) ||
if ((parseContext.profile == EEsProfile &&
(parseContext.version >= 320 || parseContext.extensionsTurnedOn(Num_AEP_gpu_shader5, AEP_gpu_shader5))) ||
(parseContext.profile != EEsProfile && parseContext.version >= 400))
return keyword;
if (parseContext.profile == EEsProfile && parseContext.version == 310) {

View File

@ -116,7 +116,7 @@ TParseContextBase* CreateParseContext(TSymbolTable& symbolTable, TIntermediate&
// Local mapping functions for making arrays of symbol tables....
const int VersionCount = 15; // index range in MapVersionToIndex
const int VersionCount = 16; // index range in MapVersionToIndex
int MapVersionToIndex(int version)
{
@ -139,6 +139,7 @@ int MapVersionToIndex(int version)
case 310: index = 13; break;
case 450: index = 14; break;
case 500: index = 0; break; // HLSL
case 320: index = 15; break;
default: assert(0); break;
}
@ -456,9 +457,9 @@ bool DeduceVersionProfile(TInfoSink& infoSink, EShLanguage stage, bool versionNo
// Get a good profile...
if (profile == ENoProfile) {
if (version == 300 || version == 310) {
if (version == 300 || version == 310 || version == 320) {
correct = false;
infoSink.info.message(EPrefixError, "#version: versions 300 and 310 require specifying the 'es' profile");
infoSink.info.message(EPrefixError, "#version: versions 300, 310, and 320 require specifying the 'es' profile");
profile = EEsProfile;
} else if (version == 100)
profile = EEsProfile;
@ -475,16 +476,16 @@ bool DeduceVersionProfile(TInfoSink& infoSink, EShLanguage stage, bool versionNo
profile = EEsProfile;
else
profile = ENoProfile;
} else if (version == 300 || version == 310) {
} else if (version == 300 || version == 310 || version == 320) {
if (profile != EEsProfile) {
correct = false;
infoSink.info.message(EPrefixError, "#version: versions 300 and 310 support only the es profile");
infoSink.info.message(EPrefixError, "#version: versions 300, 310, and 320 support only the es profile");
}
profile = EEsProfile;
} else {
if (profile == EEsProfile) {
correct = false;
infoSink.info.message(EPrefixError, "#version: only version 300 and 310 support the es profile");
infoSink.info.message(EPrefixError, "#version: only version 300, 310, and 320 support the es profile");
if (version >= FirstProfileVersion)
profile = ECoreProfile;
else
@ -500,6 +501,7 @@ bool DeduceVersionProfile(TInfoSink& infoSink, EShLanguage stage, bool versionNo
case 100: break;
case 300: break;
case 310: break;
case 320: break;
// desktop versions
case 110: break;

View File

@ -101,6 +101,12 @@ INSTANTIATE_TEST_CASE_P(
"310.tese",
"310implicitSizeArrayError.vert",
"310AofA.vert",
"320.comp",
"320.vert",
"320.geom",
"320.frag",
"320.tesc",
"320.tese",
"330.frag",
"330comp.frag",
"constErrors.frag",