yum-mirror/glslang

git clone https://git.yummers.dev/yum-mirror/glslang

Guang-035Add groundwork for GLSL_EXT_structured_descriptor_heap in glslang799ea066

main
1.2 KiB44 linesraw
1#version 460
2#extension GL_EXT_descriptor_heap : require
3#extension GL_EXT_structured_descriptor_heap : require
4#extension GL_EXT_buffer_reference : require
5#extension GL_EXT_buffer_reference2 : require
6
7layout(local_size_x = 1) in;
8
9layout(buffer_reference) buffer ForwardRefType;
10
11layout(buffer_reference, std430, buffer_reference_align = 16) buffer VertexBuffer {
12    vec4 positions[];
13};
14
15layout(heap_offset = 256) resourceheap RefHeap {
16    VertexBuffer vertexBuffer;
17    layout(buffer_reference, std430) buffer {
18        uint data;
19    } inlineRef;
20    ForwardRefType forwardRef;
21    layout(buffer_reference, std430, buffer_reference_align = 4) buffer {
22        uint data;
23    } inlineRef2;
24} refHeap;
25
26layout(buffer_reference, std430) buffer ForwardRefType {
27    float value;
28    uint count;
29};
30
31layout(binding = 0, std430) buffer Output {
32    vec4 position;
33    uint count;
34    uint inlineData;
35    uint inlineData2;
36} outputBuffer;
37
38void main()
39{
40    outputBuffer.position = refHeap.vertexBuffer.positions[0];
41    outputBuffer.count = refHeap.forwardRef.count + uint(refHeap.forwardRef.value);
42    outputBuffer.inlineData = refHeap.inlineRef.data;
43    outputBuffer.inlineData2 = refHeap.inlineRef2.data;
44}