56 lines
1.3 KiB
Plaintext
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();
|
|
}
|