зеркало из https://github.com/stride3d/xkslang.git
88 строки
2.0 KiB
Plaintext
88 строки
2.0 KiB
Plaintext
#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;
|