yum-mirror/glslang

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

Jeff BolzImplement GL_EXT_long_vector (#4132)b937eae5

main
1.9 KiB84 linesraw
1#version 450 core
2#extension GL_KHR_memory_scope_semantics : enable
3#extension GL_EXT_long_vector : enable
4#extension GL_EXT_shader_explicit_arithmetic_types : enable
5#extension GL_EXT_buffer_reference : enable
6#extension GL_EXT_scalar_block_layout : enable
7
8layout (local_size_x = 64, local_size_y = 1, local_size_z = 1) in;
9
10layout(constant_id = 0) const uint32_t c0 = 0;
11
12layout(set = 0, binding = 0, std140) buffer Buf140 {
13    vector<uint32_t, 5> v5[2];
14    vector<uint32_t, 7> v7;
15    vector<uint32_t, 1> v1[2];
16} buf140;
17
18layout(set = 0, binding = 0, std430) buffer Buf430 {
19    vector<uint32_t, 5> v5[2];
20    vector<uint32_t, 7> v7;
21    vector<uint32_t, 1> v1[2];
22} buf430;
23
24layout(set = 0, binding = 0, scalar) buffer BufScalar {
25    vector<uint32_t, 5> v5[2];
26    vector<uint32_t, 7> v7;
27    vector<uint32_t, 1> v1[2];
28} bufScalar;
29
30layout(set = 0, binding = 1) uniform UBO {
31    vector<uint32_t, 5> v5[2];
32    vector<uint32_t, 7> v7;
33    vector<uint32_t, 1> v1[2];
34} ubo;
35
36layout (push_constant, scalar) uniform PC {
37    layout(offset = 0) vector<uint32_t, 5> v5;
38    layout(offset = 28) vector<uint32_t, 7> v7;
39} pc;
40
41layout(scalar, buffer_reference) buffer BufScalarRef {
42    vector<uint32_t, 5> v5[2];
43    vector<uint32_t, 7> v7;
44    vector<uint32_t, 1> v1[2];
45};
46
47shared vector<uint32_t, 9> s9;
48shared vector<float, c0> s5;
49
50
51
52void main()
53{
54    vector<uint32_t, 1> v1;
55    vector<uint32_t, 5> v5;
56    vector<uint32_t, 7> v7;
57    vector<uint32_t, 9> v9;
58    vector<float, c0> vc;
59
60    BufScalarRef ref;
61
62    v1 = buf140.v1[0];
63    v1 = buf430.v1[1];
64    v1 = bufScalar.v1[1];
65    v1 = ubo.v1[1];
66    v1 = ref.v1[1];
67
68    v5 = buf140.v5[1];
69    v5 = buf430.v5[1];
70    v5 = bufScalar.v5[1];
71    v5 = ubo.v5[1];
72    v5 = pc.v5;
73    v5 = ref.v5[1];
74
75    v7 = buf140.v7;
76    v7 = buf430.v7;
77    v7 = bufScalar.v7;
78    v7 = ubo.v7;
79    v7 = pc.v7;
80    v7 = ref.v7;
81
82    v9 = s9;
83    vc = s5;
84}