qt6-bb10/qtshadertools/tests/auto/qshaderbaker/data/storagebuffer.comp

56 lines
1.3 KiB
Plaintext

#version 440
layout ( local_size_x = 1, local_size_y = 1, local_size_z = 1 ) in;
layout ( std430, binding = 0) buffer Buffer430
{
float _float[];
}buffer430;
layout ( std140, binding = 1 ) coherent buffer Buffer140
{
float _float[];
}buffer140;
layout ( std430, binding = 2 ) volatile writeonly buffer BufferWriteOnly430
{
vec2 _vec2[];
}bufferWriteOnly430;
layout ( std140, binding = 3 ) restrict writeonly buffer BufferWriteOnly140
{
vec2 _vec2[];
}bufferWriteOnly140;
layout ( std430, binding = 4 ) readonly buffer BufferReadOnly430
{
vec3 _vec3[];
}bufferReadOnly430;
layout ( std140, binding = 5 ) coherent readonly buffer BufferReadOnly140
{
vec3 _vec3[];
}bufferReadOnly140;
layout ( std430, binding = 6 ) volatile readonly writeonly buffer BufferReadOnlyWriteOnly430
{
vec4 _vec4[];
}bufferReadOnlyWriteOnly430;
layout ( std140, binding = 7 ) restrict readonly writeonly buffer BufferReadOnlyWriteOnly140
{
vec4 _vec4[];
}bufferReadOnlyWriteOnly140;
void main()
{
buffer430._float[0] = 0.0f;
buffer140._float[1] = 1.0f;
bufferWriteOnly430._vec2[0] = vec2(2.0f, 3.0f);
bufferWriteOnly140._vec2[0] = vec2(4.0f, 5.0f);
vec3 a = bufferReadOnly430._vec3[0];
vec3 b = bufferReadOnly140._vec3[0];
int c = bufferReadOnlyWriteOnly430._vec4.length();
int d = bufferReadOnlyWriteOnly140._vec4.length();
}