Put in infrastructure for tessellation, geometry, and compute stages, and partially flesh out with built-in functions.
Added the built-in functions EmitVertex(), EndPrimitive(), barrier(), memoryBarrier(), memoryBarrierAtomicCounter(), memoryBarrierBuffer(), memoryBarrierImage(), memoryBarrierShared(), and groupMemoryBarrier().
Have not added any new built-in variables.
Also changed the linear performance relateToOperator() to a high-performance version.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22659 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2013-08-09 17:14:49 +00:00
|
|
|
#version 400 core
|
|
|
|
|
2013-12-11 18:57:40 +00:00
|
|
|
layout(vertices = 4) out;
|
|
|
|
int outa[gl_out.length()];
|
|
|
|
|
|
|
|
layout(quads) in; // ERROR
|
|
|
|
layout(ccw) out; // ERROR
|
|
|
|
layout(fractional_even_spacing) in; // ERROR
|
|
|
|
|
2013-12-12 01:25:37 +00:00
|
|
|
patch in vec4 patchIn; // ERROR
|
|
|
|
patch out vec4 patchOut;
|
2013-12-11 18:57:40 +00:00
|
|
|
|
Put in infrastructure for tessellation, geometry, and compute stages, and partially flesh out with built-in functions.
Added the built-in functions EmitVertex(), EndPrimitive(), barrier(), memoryBarrier(), memoryBarrierAtomicCounter(), memoryBarrierBuffer(), memoryBarrierImage(), memoryBarrierShared(), and groupMemoryBarrier().
Have not added any new built-in variables.
Also changed the linear performance relateToOperator() to a high-performance version.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22659 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2013-08-09 17:14:49 +00:00
|
|
|
void main()
|
|
|
|
{
|
|
|
|
barrier();
|
2013-12-11 18:57:40 +00:00
|
|
|
|
|
|
|
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];
|
|
|
|
|
|
|
|
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;
|
|
|
|
|
|
|
|
gl_TessLevelOuter[3] = 3.2;
|
|
|
|
gl_TessLevelInner[1] = 1.3;
|
2015-01-07 06:14:06 +00:00
|
|
|
|
|
|
|
if (a > 10)
|
|
|
|
barrier(); // ERROR
|
|
|
|
else
|
|
|
|
barrier(); // ERROR
|
|
|
|
|
|
|
|
barrier();
|
|
|
|
|
|
|
|
do {
|
|
|
|
barrier(); // ERROR
|
|
|
|
} while (a > 10);
|
|
|
|
|
|
|
|
switch (a) {
|
|
|
|
default:
|
|
|
|
barrier(); // ERROR
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
{
|
|
|
|
barrier();
|
|
|
|
}
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
barrier(); // ERROR
|
Put in infrastructure for tessellation, geometry, and compute stages, and partially flesh out with built-in functions.
Added the built-in functions EmitVertex(), EndPrimitive(), barrier(), memoryBarrier(), memoryBarrierAtomicCounter(), memoryBarrierBuffer(), memoryBarrierImage(), memoryBarrierShared(), and groupMemoryBarrier().
Have not added any new built-in variables.
Also changed the linear performance relateToOperator() to a high-performance version.
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@22659 e7fa87d3-cd2b-0410-9028-fcbf551c1848
2013-08-09 17:14:49 +00:00
|
|
|
}
|
2013-12-13 18:38:43 +00:00
|
|
|
|
|
|
|
layout(vertices = 4) in; // ERROR
|
|
|
|
layout(vertices = 5) out; // ERROR
|
|
|
|
|
|
|
|
void foo()
|
|
|
|
{
|
|
|
|
gl_out[4].gl_PointSize; // ERROR
|
2015-01-07 06:14:06 +00:00
|
|
|
|
|
|
|
barrier(); // ERROR
|
2013-12-20 18:36:27 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
in vec2 ina; // ERROR, not array
|
|
|
|
in vec2 inb[];
|
|
|
|
in vec2 inc[18]; // ERROR, wrong size
|
|
|
|
in vec2 ind[gl_MaxPatchVertices];
|
2014-01-26 01:37:13 +00:00
|
|
|
|
|
|
|
#extension GL_ARB_separate_shader_objects : enable
|
2013-12-20 18:36:27 +00:00
|
|
|
|
|
|
|
layout(location = 3) in vec4 ivla[];
|
|
|
|
layout(location = 4) in vec4 ivlb[];
|
|
|
|
layout(location = 4) in vec4 ivlc[]; // ERROR
|
|
|
|
|
|
|
|
layout(location = 3) out vec4 ovla[];
|
|
|
|
layout(location = 4) out vec4 ovlb[];
|
|
|
|
layout(location = 4) out vec4 ovlc[]; // ERROR
|
2014-08-14 20:05:57 +00:00
|
|
|
|
|
|
|
precise vec3 pv3;
|
|
|
|
|
|
|
|
void foop()
|
|
|
|
{
|
|
|
|
precise double d;
|
|
|
|
|
|
|
|
pv3 *= pv3;
|
|
|
|
pv3 = fma(pv3, pv3, pv3);
|
|
|
|
d = fma(d, d, d);
|
|
|
|
}
|
2014-10-08 21:57:17 +00:00
|
|
|
|
|
|
|
patch out pinbn {
|
|
|
|
int a;
|
|
|
|
} pinbi;
|