glslang front-end: Full turn-on of AEP tessellation semantics.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@31538 e7fa87d3-cd2b-0410-9028-fcbf551c1848
This commit is contained in:
121
Test/310.tesc
Normal file
121
Test/310.tesc
Normal file
@@ -0,0 +1,121 @@
|
||||
#version 310 es
|
||||
|
||||
#extension GL_OES_tessellation_shader : enable
|
||||
|
||||
layout(vertices = 4) 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;
|
||||
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[1].gl_Position = p;
|
||||
gl_out[1].gl_PointSize = ps;
|
||||
gl_out[1].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
|
||||
|
||||
void foop()
|
||||
{
|
||||
precise float d; // ERROR without gpu_shader5
|
||||
d = fma(d, d, d); // ERROR without gpu_shader5
|
||||
}
|
||||
|
||||
patch out pinbn {
|
||||
int a;
|
||||
} pinbi;
|
||||
|
||||
centroid out vec3 myColor2[];
|
||||
centroid in vec3 centr[];
|
||||
sample out vec4 perSampleColor[]; // ERROR without sample extensions
|
||||
|
||||
layout(vertices = 4) out float badlay[]; // ERROR, not on a variable
|
||||
out float misSized[5]; // ERROR, size doesn't match
|
||||
out float okaySize[4];
|
||||
|
||||
// for testing with gpu_shader5
|
||||
//precise vec3 pv3;
|
||||
//
|
||||
//void foop()
|
||||
//{
|
||||
// precise double d;
|
||||
//
|
||||
// pv3 *= pv3;
|
||||
// pv3 = fma(pv3, pv3, pv3);
|
||||
// d = fma(d, d, d);
|
||||
//}
|
||||
//
|
||||
Reference in New Issue
Block a user