12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- #version 430 core
- layout(local_size_x = 2) in;
- layout(local_size_x = 16) in; // ERROR, changing
- layout(local_size_z = 4096) in; // ERROR, too large
- layout(local_size_x = 2) in;
- const int total = gl_MaxComputeWorkGroupCount.y
- + gl_MaxComputeUniformComponents
- + gl_MaxComputeTextureImageUnits
- + gl_MaxComputeImageUniforms
- + gl_MaxComputeAtomicCounters
- + gl_MaxComputeAtomicCounterBuffers;
- buffer ShaderStorageBlock
- {
- int value;
- float values[];
- };
- buffer InvalidShaderStorageBlock
- {
- float values[];
- int value;
- } invalid;
- void main()
- {
- barrier();
- memoryBarrier();
- memoryBarrierAtomicCounter();
- memoryBarrierBuffer();
- memoryBarrierShared();
- memoryBarrierImage();
- groupMemoryBarrier();
- value = int(values[gl_LocalInvocationIndex]);
- int a;
- if (a > 10)
- barrier();
- }
- layout(location = 2) in vec3 v3; // ERROR
- in float f; // ERROR
- out float fo; // ERROR
- shared vec4 s;
- layout(location = 2) shared vec4 sl; // ERROR
- shared float fs = 4.2; // ERROR
- layout(local_size_x = 2, local_size_y = 3, local_size_z = 4) out; // ERROR
- int arrX[gl_WorkGroupSize.x];
- int arrY[gl_WorkGroupSize.y];
- int arrZ[gl_WorkGroupSize.z];
- readonly buffer roblock
- {
- int value;
- float values[];
- } ro;
- void foo()
- {
- ro.values[2] = 4.7; // ERROR, readonly
- ro.values.length();
- barrier();
- }
- uniform double roll;
- uniform writeonly image2D destTex;
- void fooaoeu() {
- ivec2 storePos = ivec2(gl_GlobalInvocationID.xy);
- double localCoef = length(vec2(ivec2(gl_LocalInvocationID.xy)-8)/8.0);
- dvec4 aa = dvec4(0.4, 0.2, 0.3, 0.4);
- double globalCoef = 1.0;
- int i = globalCoef; // ERROR, can't convert from double to int
- double di = i;
- }
- in inb { // ERROR
- int a;
- } inbi;
- out outb { // ERROR
- int a;
- } outbi;
|