#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(); }