Add geometry-shader stream, invocations, max_vertices, lines, triangles, etc. layout qualifiers, and their default/inheritance behaviors, and some other misc. geometry shader features. (Geometry shaders are not yet done though.)
git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23679 e7fa87d3-cd2b-0410-9028-fcbf551c1848
This commit is contained in:
parent
284231c9c5
commit
94fdd1117b
24 changed files with 639 additions and 225 deletions
|
|
@ -36,3 +36,57 @@ void main()
|
|||
gl_PrimitiveID = gl_PrimitiveIDIn;
|
||||
gl_Layer = 2;
|
||||
}
|
||||
|
||||
out vec4 ov0; // stream should be 0
|
||||
layout(stream = 4) out vec4 ov4;
|
||||
out vec4 o1v0; // stream should be 0
|
||||
|
||||
layout(stream = 3) uniform; // ERROR
|
||||
layout(stream = 3) in; // ERROR
|
||||
layout(stream = 3) uniform int ua; // ERROR
|
||||
layout(stream = 3) uniform ubb { int ua; } ibb; // ERROR
|
||||
|
||||
layout(line_strip, points, triangle_strip, stream = 3, points, triangle_strip) out; // just means "stream = 3, triangle_strip"
|
||||
layout(stream = 3, triangle_strip) out;
|
||||
out vec4 ov3; // stream should be 3
|
||||
|
||||
layout(stream = 6) out ooutb { vec4 a; } ouuaa6;
|
||||
|
||||
layout(stream = 6) out ooutb {
|
||||
layout(stream = 6) vec4 a;
|
||||
} ouua6;
|
||||
|
||||
layout(stream = 7) out ooutb {
|
||||
layout(stream = 6) vec4 a; // ERROR
|
||||
} ouua7;
|
||||
|
||||
out vec4 ov2s3; // stream should be 3
|
||||
|
||||
void foo(layout(max_vertices = 4) int a) // ERROR
|
||||
{
|
||||
ouuaa6.a = vec4(1.0);
|
||||
}
|
||||
|
||||
layout(line_strip, points, triangle_strip, stream = 3, points) out; // ERROR, changing output primitive
|
||||
layout(line_strip, points, stream = 3) 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; }; // ERROR, not on a block
|
||||
out outbn {
|
||||
layout(invocations = 3) int a; // ERROR, not on a block member
|
||||
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_adjancency) in;
|
||||
layout(triangles) in; // ERROR, can't change it
|
||||
layout(triangles_adjacency) in; // ERROR, can't change it
|
||||
|
||||
layout(invocations = 4, max_vertices = 127) out;
|
||||
|
||||
in inbn {
|
||||
layout(stream = 2) int a; // ERROR, stream on input
|
||||
} inbi;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue