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.4 KiB56 linesraw
1// Covers heap buffer layout qualifiers for inline buffer references and buffer types.
2#version 460
3#extension GL_EXT_descriptor_heap : require
4#extension GL_EXT_structured_descriptor_heap : require
5#extension GL_EXT_buffer_reference : require
6#extension GL_EXT_buffer_reference2 : require
7#extension GL_EXT_scalar_block_layout : require
8
9layout(local_size_x = 1) in;
10
11layout(buffer_type, std140) buffer Std140Type {
12    vec4 v;
13    uint x;
14};
15
16layout(buffer_type, std430) buffer Std430Type {
17    vec4 v;
18    uint x;
19};
20
21layout(buffer_type, scalar) buffer ScalarType {
22    vec3 v;
23    uint x;
24};
25
26layout(heap_offset = 512) resourceheap LayoutHeap {
27    layout(buffer_reference, std140) buffer {
28        vec4 v;
29        uint x;
30    } inlineStd140;
31    layout(buffer_reference, std430) buffer {
32        vec4 v;
33        uint x;
34    } inlineStd430;
35    layout(buffer_reference, scalar) buffer {
36        vec3 v;
37        uint x;
38    } inlineScalar;
39    Std140Type typeStd140;
40    Std430Type typeStd430;
41    ScalarType typeScalar;
42} layoutHeap;
43
44layout(binding = 0, std430) buffer Result {
45    uint value;
46} resultBuffer;
47
48void main()
49{
50    resultBuffer.value = layoutHeap.inlineStd140.x +
51                         layoutHeap.inlineStd430.x +
52                         layoutHeap.inlineScalar.x +
53                         layoutHeap.typeStd140.x +
54                         layoutHeap.typeStd430.x +
55                         layoutHeap.typeScalar.x;
56}