blob: 3dcb18c75edde5d2bc8530d5047a53267f96ee76 [file] [edit]
#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
layout(local_size_x = 1) in;
layout(buffer_reference) buffer ForwardRefType;
layout(buffer_reference, std430, buffer_reference_align = 16) buffer VertexBuffer {
vec4 positions[];
};
layout(heap_offset = 256) resourceheap RefHeap {
VertexBuffer vertexBuffer;
layout(buffer_reference, std430) buffer {
uint data;
} inlineRef;
ForwardRefType forwardRef;
layout(buffer_reference, std430, buffer_reference_align = 4) buffer {
uint data;
} inlineRef2;
} refHeap;
layout(buffer_reference, std430) buffer ForwardRefType {
float value;
uint count;
};
layout(binding = 0, std430) buffer Output {
vec4 position;
uint count;
uint inlineData;
uint inlineData2;
} outputBuffer;
void main()
{
outputBuffer.position = refHeap.vertexBuffer.positions[0];
outputBuffer.count = refHeap.forwardRef.count + uint(refHeap.forwardRef.value);
outputBuffer.inlineData = refHeap.inlineRef.data;
outputBuffer.inlineData2 = refHeap.inlineRef2.data;
}