The KHR form comes along as part of 1.5, and otherwise should require another form of request to emit it.
239 lines
12 KiB
Plaintext
239 lines
12 KiB
Plaintext
spv.bufferhandle6.frag
|
|
// Module Version 10000
|
|
// Generated by (magic number): 80007
|
|
// Id's are bound by 165
|
|
|
|
Capability Shader
|
|
Capability PhysicalStorageBufferAddressesEXT
|
|
Extension "SPV_EXT_physical_storage_buffer"
|
|
Extension "SPV_KHR_storage_buffer_storage_class"
|
|
1: ExtInstImport "GLSL.std.450"
|
|
MemoryModel PhysicalStorageBuffer64EXT GLSL450
|
|
EntryPoint Fragment 4 "main" 154
|
|
ExecutionMode 4 OriginUpperLeft
|
|
Source GLSL 450
|
|
SourceExtension "GL_EXT_buffer_reference"
|
|
Name 4 "main"
|
|
Name 8 "accum"
|
|
Name 15 "T1"
|
|
MemberName 15(T1) 0 "a"
|
|
MemberName 15(T1) 1 "b"
|
|
MemberName 15(T1) 2 "c"
|
|
MemberName 15(T1) 3 "d"
|
|
Name 18 "T1"
|
|
MemberName 18(T1) 0 "a"
|
|
MemberName 18(T1) 1 "b"
|
|
MemberName 18(T1) 2 "c"
|
|
MemberName 18(T1) 3 "d"
|
|
Name 21 "x"
|
|
Name 30 "Block"
|
|
MemberName 30(Block) 0 "identity"
|
|
Name 32 "pc"
|
|
Name 136 "color"
|
|
Name 149 "image0_0"
|
|
Name 154 "gl_FragCoord"
|
|
Decorate 12 ArrayStride 4
|
|
Decorate 14 ArrayStride 8
|
|
MemberDecorate 15(T1) 0 Offset 0
|
|
MemberDecorate 15(T1) 1 Offset 32
|
|
MemberDecorate 15(T1) 2 Offset 48
|
|
MemberDecorate 15(T1) 3 Offset 80
|
|
Decorate 15(T1) Block
|
|
Decorate 16 ArrayStride 4
|
|
Decorate 17 ArrayStride 8
|
|
MemberDecorate 18(T1) 0 Offset 0
|
|
MemberDecorate 18(T1) 1 Offset 32
|
|
MemberDecorate 18(T1) 2 Offset 48
|
|
MemberDecorate 18(T1) 3 Offset 80
|
|
Decorate 18(T1) Block
|
|
Decorate 19 ArrayStride 8
|
|
Decorate 21(x) DescriptorSet 3
|
|
Decorate 21(x) Binding 1
|
|
Decorate 29 ArrayStride 4
|
|
MemberDecorate 30(Block) 0 Offset 0
|
|
Decorate 30(Block) Block
|
|
Decorate 149(image0_0) DescriptorSet 3
|
|
Decorate 149(image0_0) Binding 0
|
|
Decorate 154(gl_FragCoord) BuiltIn FragCoord
|
|
2: TypeVoid
|
|
3: TypeFunction 2
|
|
6: TypeInt 32 1
|
|
7: TypePointer Function 6(int)
|
|
9: 6(int) Constant 0
|
|
10: TypeInt 32 0
|
|
11: 10(int) Constant 2
|
|
12: TypeArray 6(int) 11
|
|
TypeForwardPointer 13 PhysicalStorageBufferEXT
|
|
14: TypeArray 13 11
|
|
15(T1): TypeStruct 12 6(int) 14 13
|
|
16: TypeArray 6(int) 11
|
|
17: TypeArray 13 11
|
|
18(T1): TypeStruct 16 6(int) 17 13
|
|
13: TypePointer PhysicalStorageBufferEXT 18(T1)
|
|
19: TypeArray 13(ptr) 11
|
|
20: TypePointer StorageBuffer 15(T1)
|
|
21(x): 20(ptr) Variable StorageBuffer
|
|
22: TypePointer StorageBuffer 6(int)
|
|
28: 10(int) Constant 32
|
|
29: TypeArray 6(int) 28
|
|
30(Block): TypeStruct 29
|
|
31: TypePointer PushConstant 30(Block)
|
|
32(pc): 31(ptr) Variable PushConstant
|
|
33: 6(int) Constant 1
|
|
34: TypePointer PushConstant 6(int)
|
|
44: 6(int) Constant 2
|
|
48: TypePointer StorageBuffer 13(ptr)
|
|
51: TypePointer PhysicalStorageBufferEXT 6(int)
|
|
54: 6(int) Constant 3
|
|
64: 6(int) Constant 4
|
|
72: 6(int) Constant 5
|
|
82: 6(int) Constant 6
|
|
94: 6(int) Constant 7
|
|
104: 6(int) Constant 8
|
|
112: 6(int) Constant 9
|
|
122: 6(int) Constant 10
|
|
130: 6(int) Constant 11
|
|
134: TypeVector 10(int) 4
|
|
135: TypePointer Function 134(ivec4)
|
|
138: TypeBool
|
|
140: 10(int) Constant 0
|
|
141: 134(ivec4) ConstantComposite 140 140 140 140
|
|
142: 10(int) Constant 1
|
|
143: 134(ivec4) ConstantComposite 142 140 140 142
|
|
144: TypeVector 138(bool) 4
|
|
147: TypeImage 10(int) 2D nonsampled format:R32ui
|
|
148: TypePointer UniformConstant 147
|
|
149(image0_0): 148(ptr) Variable UniformConstant
|
|
151: TypeFloat 32
|
|
152: TypeVector 151(float) 4
|
|
153: TypePointer Input 152(fvec4)
|
|
154(gl_FragCoord): 153(ptr) Variable Input
|
|
155: TypePointer Input 151(float)
|
|
162: TypeVector 6(int) 2
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
8(accum): 7(ptr) Variable Function
|
|
136(color): 135(ptr) Variable Function
|
|
Store 8(accum) 9
|
|
23: 22(ptr) AccessChain 21(x) 9 9
|
|
24: 6(int) Load 23
|
|
25: 6(int) ISub 24 9
|
|
26: 6(int) Load 8(accum)
|
|
27: 6(int) BitwiseOr 26 25
|
|
Store 8(accum) 27
|
|
35: 34(ptr) AccessChain 32(pc) 9 33
|
|
36: 6(int) Load 35
|
|
37: 22(ptr) AccessChain 21(x) 9 36
|
|
38: 6(int) Load 37
|
|
39: 6(int) ISub 38 33
|
|
40: 6(int) Load 8(accum)
|
|
41: 6(int) BitwiseOr 40 39
|
|
Store 8(accum) 41
|
|
42: 22(ptr) AccessChain 21(x) 33
|
|
43: 6(int) Load 42
|
|
45: 6(int) ISub 43 44
|
|
46: 6(int) Load 8(accum)
|
|
47: 6(int) BitwiseOr 46 45
|
|
Store 8(accum) 47
|
|
49: 48(ptr) AccessChain 21(x) 44 9
|
|
50: 13(ptr) Load 49
|
|
52: 51(ptr) AccessChain 50 9 9
|
|
53: 6(int) Load 52 Aligned 4
|
|
55: 6(int) ISub 53 54
|
|
56: 6(int) Load 8(accum)
|
|
57: 6(int) BitwiseOr 56 55
|
|
Store 8(accum) 57
|
|
58: 48(ptr) AccessChain 21(x) 44 9
|
|
59: 13(ptr) Load 58
|
|
60: 34(ptr) AccessChain 32(pc) 9 33
|
|
61: 6(int) Load 60
|
|
62: 51(ptr) AccessChain 59 9 61
|
|
63: 6(int) Load 62 Aligned 4
|
|
65: 6(int) ISub 63 64
|
|
66: 6(int) Load 8(accum)
|
|
67: 6(int) BitwiseOr 66 65
|
|
Store 8(accum) 67
|
|
68: 48(ptr) AccessChain 21(x) 44 9
|
|
69: 13(ptr) Load 68
|
|
70: 51(ptr) AccessChain 69 33
|
|
71: 6(int) Load 70 Aligned 16
|
|
73: 6(int) ISub 71 72
|
|
74: 6(int) Load 8(accum)
|
|
75: 6(int) BitwiseOr 74 73
|
|
Store 8(accum) 75
|
|
76: 34(ptr) AccessChain 32(pc) 9 33
|
|
77: 6(int) Load 76
|
|
78: 48(ptr) AccessChain 21(x) 44 77
|
|
79: 13(ptr) Load 78
|
|
80: 51(ptr) AccessChain 79 9 9
|
|
81: 6(int) Load 80 Aligned 4
|
|
83: 6(int) ISub 81 82
|
|
84: 6(int) Load 8(accum)
|
|
85: 6(int) BitwiseOr 84 83
|
|
Store 8(accum) 85
|
|
86: 34(ptr) AccessChain 32(pc) 9 33
|
|
87: 6(int) Load 86
|
|
88: 48(ptr) AccessChain 21(x) 44 87
|
|
89: 13(ptr) Load 88
|
|
90: 34(ptr) AccessChain 32(pc) 9 33
|
|
91: 6(int) Load 90
|
|
92: 51(ptr) AccessChain 89 9 91
|
|
93: 6(int) Load 92 Aligned 4
|
|
95: 6(int) ISub 93 94
|
|
96: 6(int) Load 8(accum)
|
|
97: 6(int) BitwiseOr 96 95
|
|
Store 8(accum) 97
|
|
98: 34(ptr) AccessChain 32(pc) 9 33
|
|
99: 6(int) Load 98
|
|
100: 48(ptr) AccessChain 21(x) 44 99
|
|
101: 13(ptr) Load 100
|
|
102: 51(ptr) AccessChain 101 33
|
|
103: 6(int) Load 102 Aligned 16
|
|
105: 6(int) ISub 103 104
|
|
106: 6(int) Load 8(accum)
|
|
107: 6(int) BitwiseOr 106 105
|
|
Store 8(accum) 107
|
|
108: 48(ptr) AccessChain 21(x) 54
|
|
109: 13(ptr) Load 108
|
|
110: 51(ptr) AccessChain 109 9 9
|
|
111: 6(int) Load 110 Aligned 4
|
|
113: 6(int) ISub 111 112
|
|
114: 6(int) Load 8(accum)
|
|
115: 6(int) BitwiseOr 114 113
|
|
Store 8(accum) 115
|
|
116: 48(ptr) AccessChain 21(x) 54
|
|
117: 13(ptr) Load 116
|
|
118: 34(ptr) AccessChain 32(pc) 9 33
|
|
119: 6(int) Load 118
|
|
120: 51(ptr) AccessChain 117 9 119
|
|
121: 6(int) Load 120 Aligned 4
|
|
123: 6(int) ISub 121 122
|
|
124: 6(int) Load 8(accum)
|
|
125: 6(int) BitwiseOr 124 123
|
|
Store 8(accum) 125
|
|
126: 48(ptr) AccessChain 21(x) 54
|
|
127: 13(ptr) Load 126
|
|
128: 51(ptr) AccessChain 127 33
|
|
129: 6(int) Load 128 Aligned 16
|
|
131: 6(int) ISub 129 130
|
|
132: 6(int) Load 8(accum)
|
|
133: 6(int) BitwiseOr 132 131
|
|
Store 8(accum) 133
|
|
137: 6(int) Load 8(accum)
|
|
139: 138(bool) INotEqual 137 9
|
|
145: 144(bvec4) CompositeConstruct 139 139 139 139
|
|
146: 134(ivec4) Select 145 141 143
|
|
Store 136(color) 146
|
|
150: 147 Load 149(image0_0)
|
|
156: 155(ptr) AccessChain 154(gl_FragCoord) 140
|
|
157: 151(float) Load 156
|
|
158: 6(int) ConvertFToS 157
|
|
159: 155(ptr) AccessChain 154(gl_FragCoord) 142
|
|
160: 151(float) Load 159
|
|
161: 6(int) ConvertFToS 160
|
|
163: 162(ivec2) CompositeConstruct 158 161
|
|
164: 134(ivec4) Load 136(color)
|
|
ImageWrite 150 163 164
|
|
Return
|
|
FunctionEnd
|