blob: dc75c26d6bd4932d5e8654f7f3a33232da9647c7 [file] [edit]
// Covers heap buffer layout qualifiers for inline buffer references and buffer types.
#version 460
#extension GL_EXT_descriptor_heap : require
#extension GL_EXT_structured_descriptor_heap : require
#extension GL_EXT_buffer_reference : require
#extension GL_EXT_buffer_reference2 : require
#extension GL_EXT_scalar_block_layout : require
layout(local_size_x = 1) in;
layout(buffer_type, std140) buffer Std140Type {
vec4 v;
uint x;
};
layout(buffer_type, std430) buffer Std430Type {
vec4 v;
uint x;
};
layout(buffer_type, scalar) buffer ScalarType {
vec3 v;
uint x;
};
layout(heap_offset = 512) resourceheap LayoutHeap {
layout(buffer_reference, std140) buffer {
vec4 v;
uint x;
} inlineStd140;
layout(buffer_reference, std430) buffer {
vec4 v;
uint x;
} inlineStd430;
layout(buffer_reference, scalar) buffer {
vec3 v;
uint x;
} inlineScalar;
Std140Type typeStd140;
Std430Type typeStd430;
ScalarType typeScalar;
} layoutHeap;
layout(binding = 0, std430) buffer Result {
uint value;
} resultBuffer;
void main()
{
resultBuffer.value = layoutHeap.inlineStd140.x +
layoutHeap.inlineStd430.x +
layoutHeap.inlineScalar.x +
layoutHeap.typeStd140.x +
layoutHeap.typeStd430.x +
layoutHeap.typeScalar.x;
}