| #version 150 | |
| #extension GL_NV_gpu_shader5 : enable | |
| #extension GL_ARB_gpu_shader_fp64 : enable | |
| // Testing storage interpolation qualifiers sample in/ sample out | |
| sample in vec4 colorSampIn[3]; | |
| sample out vec4 colorSampOut; | |
| // Testing geometry layout qualifiers | |
| // input qualifier: invocations | |
| // output qualifier: stream | |
| layout(triangles, invocations=6) in; | |
| layout(points, stream=0) out; | |
| in vec4 color[3]; | |
| out vec3 Ocolor; | |
| layout(stream=1) out; // default is now stream 1 | |
| // Test explicitly sized input variables | |
| in int8_t var1[3]; | |
| in int16_t var5[3]; | |
| in int32_t var9[3]; | |
| in int64_t var13[3]; | |
| in float16_t var33[3]; | |
| in float64_t var41[3]; | |
| in double var42[3]; | |
| out int8_t var11; | |
| out int16_t var51; | |
| out int32_t var91; | |
| out int64_t var131; | |
| out float16_t var331; | |
| out float64_t var411; | |
| out double var421; | |
| // This test case verifies builtins enabled for geometry shader by NV_gpu_shader5 | |
| void testGeomBuiltins() | |
| { | |
| EmitStreamVertex(1); // Geometry-only | |
| EndStreamPrimitive(0); // Geometry-only | |
| EmitVertex(); // Geometry-only | |
| EndPrimitive(); // Geometry-only | |
| int i = gl_InvocationID; | |
| // Note: "patch" feature is not enabled as it's not used, below builtins are | |
| // related to patch | |
| int j = gl_PatchVerticesIn; | |
| float k = gl_TessLevelOuter[3]; | |
| k = gl_TessLevelInner[1]; | |
| } | |
| void main() | |
| { | |
| } |