Apply memory decorations from GLSL source to the top-level OpVariable. Previously, these decorations would only be applied to individual members. While this is correct behavior, it is more convenient for some front ends to see the decorations (specifically ReadOnly and WriteOnly) applied to the whole variable rather than individual members.
277 lines
14 KiB
Text
277 lines
14 KiB
Text
spv.expect_assume.expectEXT.comp
|
|
// Module Version 10000
|
|
// Generated by (magic number): 8000b
|
|
// Id's are bound by 178
|
|
|
|
Capability Shader
|
|
Capability ExpectAssumeKHR
|
|
Extension "SPV_KHR_expect_assume"
|
|
1: ExtInstImport "GLSL.std.450"
|
|
MemoryModel Logical GLSL450
|
|
EntryPoint GLCompute 4 "main"
|
|
ExecutionMode 4 LocalSize 8 1 1
|
|
Source GLSL 450
|
|
SourceExtension "GL_EXT_expect_assume"
|
|
Name 4 "main"
|
|
Name 8 "x"
|
|
Name 18 "roblock"
|
|
MemberName 18(roblock) 0 "b"
|
|
MemberName 18(roblock) 1 "bv2"
|
|
MemberName 18(roblock) 2 "bv3"
|
|
MemberName 18(roblock) 3 "bv4"
|
|
MemberName 18(roblock) 4 "i"
|
|
MemberName 18(roblock) 5 "iv2"
|
|
MemberName 18(roblock) 6 "iv3"
|
|
MemberName 18(roblock) 7 "iv4"
|
|
MemberName 18(roblock) 8 "ui"
|
|
MemberName 18(roblock) 9 "uv2"
|
|
MemberName 18(roblock) 10 "uv3"
|
|
MemberName 18(roblock) 11 "uv4"
|
|
Name 20 "ro"
|
|
Decorate 18(roblock) BufferBlock
|
|
MemberDecorate 18(roblock) 0 NonWritable
|
|
MemberDecorate 18(roblock) 0 Offset 0
|
|
MemberDecorate 18(roblock) 1 NonWritable
|
|
MemberDecorate 18(roblock) 1 Offset 8
|
|
MemberDecorate 18(roblock) 2 NonWritable
|
|
MemberDecorate 18(roblock) 2 Offset 16
|
|
MemberDecorate 18(roblock) 3 NonWritable
|
|
MemberDecorate 18(roblock) 3 Offset 32
|
|
MemberDecorate 18(roblock) 4 NonWritable
|
|
MemberDecorate 18(roblock) 4 Offset 48
|
|
MemberDecorate 18(roblock) 5 NonWritable
|
|
MemberDecorate 18(roblock) 5 Offset 56
|
|
MemberDecorate 18(roblock) 6 NonWritable
|
|
MemberDecorate 18(roblock) 6 Offset 64
|
|
MemberDecorate 18(roblock) 7 NonWritable
|
|
MemberDecorate 18(roblock) 7 Offset 80
|
|
MemberDecorate 18(roblock) 8 NonWritable
|
|
MemberDecorate 18(roblock) 8 Offset 96
|
|
MemberDecorate 18(roblock) 9 NonWritable
|
|
MemberDecorate 18(roblock) 9 Offset 104
|
|
MemberDecorate 18(roblock) 10 NonWritable
|
|
MemberDecorate 18(roblock) 10 Offset 112
|
|
MemberDecorate 18(roblock) 11 NonWritable
|
|
MemberDecorate 18(roblock) 11 Offset 128
|
|
Decorate 20(ro) NonWritable
|
|
Decorate 20(ro) Binding 0
|
|
Decorate 20(ro) DescriptorSet 0
|
|
Decorate 177 BuiltIn WorkgroupSize
|
|
2: TypeVoid
|
|
3: TypeFunction 2
|
|
6: TypeInt 32 1
|
|
7: TypePointer Function 6(int)
|
|
9: 6(int) Constant 0
|
|
10: TypeBool
|
|
11: TypeInt 32 0
|
|
12: TypeVector 11(int) 2
|
|
13: TypeVector 11(int) 3
|
|
14: TypeVector 11(int) 4
|
|
15: TypeVector 6(int) 2
|
|
16: TypeVector 6(int) 3
|
|
17: TypeVector 6(int) 4
|
|
18(roblock): TypeStruct 11(int) 12(ivec2) 13(ivec3) 14(ivec4) 6(int) 15(ivec2) 16(ivec3) 17(ivec4) 11(int) 12(ivec2) 13(ivec3) 14(ivec4)
|
|
19: TypePointer Uniform 18(roblock)
|
|
20(ro): 19(ptr) Variable Uniform
|
|
21: TypePointer Uniform 11(int)
|
|
24: 11(int) Constant 0
|
|
26: 10(bool) ConstantTrue
|
|
32: 6(int) Constant 1
|
|
33: TypePointer Uniform 12(ivec2)
|
|
36: TypeVector 10(bool) 2
|
|
37: 12(ivec2) ConstantComposite 24 24
|
|
39: 10(bool) ConstantFalse
|
|
40: 36(bvec2) ConstantComposite 26 39
|
|
48: 6(int) Constant 2
|
|
49: TypePointer Uniform 13(ivec3)
|
|
52: TypeVector 10(bool) 3
|
|
53: 13(ivec3) ConstantComposite 24 24 24
|
|
55: 52(bvec3) ConstantComposite 26 39 26
|
|
63: 6(int) Constant 3
|
|
64: TypePointer Uniform 14(ivec4)
|
|
67: TypeVector 10(bool) 4
|
|
68: 14(ivec4) ConstantComposite 24 24 24 24
|
|
70: 67(bvec4) ConstantComposite 39 26 39 26
|
|
79: 6(int) Constant 4
|
|
80: TypePointer Uniform 6(int)
|
|
83: 6(int) Constant 10
|
|
89: 6(int) Constant 5
|
|
90: TypePointer Uniform 15(ivec2)
|
|
93: 6(int) Constant 11
|
|
94: 6(int) Constant 4294967274
|
|
95: 15(ivec2) ConstantComposite 93 94
|
|
103: 6(int) Constant 6
|
|
104: TypePointer Uniform 16(ivec3)
|
|
107: 6(int) Constant 33
|
|
108: 16(ivec3) ConstantComposite 93 94 107
|
|
116: 6(int) Constant 7
|
|
117: TypePointer Uniform 17(ivec4)
|
|
120: 6(int) Constant 44
|
|
121: 17(ivec4) ConstantComposite 93 94 107 120
|
|
130: 6(int) Constant 8
|
|
133: 11(int) Constant 10
|
|
139: 6(int) Constant 9
|
|
142: 11(int) Constant 11
|
|
143: 11(int) Constant 22
|
|
144: 12(ivec2) ConstantComposite 142 143
|
|
154: 11(int) Constant 33
|
|
155: 13(ivec3) ConstantComposite 142 143 154
|
|
165: 11(int) Constant 44
|
|
166: 14(ivec4) ConstantComposite 142 143 154 165
|
|
175: 11(int) Constant 8
|
|
176: 11(int) Constant 1
|
|
177: 13(ivec3) ConstantComposite 175 176 176
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
8(x): 7(ptr) Variable Function
|
|
Store 8(x) 9
|
|
22: 21(ptr) AccessChain 20(ro) 9
|
|
23: 11(int) Load 22
|
|
25: 10(bool) INotEqual 23 24
|
|
27: 10(bool) ExpectKHR 25 26
|
|
28: 10(bool) LogicalEqual 27 26
|
|
29: 10(bool) LogicalNot 28
|
|
SelectionMerge 31 None
|
|
BranchConditional 29 30 31
|
|
30: Label
|
|
34: 33(ptr) AccessChain 20(ro) 32
|
|
35: 12(ivec2) Load 34
|
|
38: 36(bvec2) INotEqual 35 37
|
|
41: 36(bvec2) ExpectKHR 38 40
|
|
42: 36(bvec2) LogicalEqual 41 40
|
|
43: 10(bool) All 42
|
|
Branch 31
|
|
31: Label
|
|
44: 10(bool) Phi 28 5 43 30
|
|
45: 10(bool) LogicalNot 44
|
|
SelectionMerge 47 None
|
|
BranchConditional 45 46 47
|
|
46: Label
|
|
50: 49(ptr) AccessChain 20(ro) 48
|
|
51: 13(ivec3) Load 50
|
|
54: 52(bvec3) INotEqual 51 53
|
|
56: 52(bvec3) ExpectKHR 54 55
|
|
57: 52(bvec3) LogicalEqual 56 55
|
|
58: 10(bool) All 57
|
|
Branch 47
|
|
47: Label
|
|
59: 10(bool) Phi 44 31 58 46
|
|
60: 10(bool) LogicalNot 59
|
|
SelectionMerge 62 None
|
|
BranchConditional 60 61 62
|
|
61: Label
|
|
65: 64(ptr) AccessChain 20(ro) 63
|
|
66: 14(ivec4) Load 65
|
|
69: 67(bvec4) INotEqual 66 68
|
|
71: 67(bvec4) ExpectKHR 69 70
|
|
72: 67(bvec4) LogicalEqual 71 70
|
|
73: 10(bool) All 72
|
|
Branch 62
|
|
62: Label
|
|
74: 10(bool) Phi 59 47 73 61
|
|
SelectionMerge 76 None
|
|
BranchConditional 74 75 76
|
|
75: Label
|
|
77: 6(int) Load 8(x)
|
|
78: 6(int) IAdd 77 32
|
|
Store 8(x) 78
|
|
Branch 76
|
|
76: Label
|
|
81: 80(ptr) AccessChain 20(ro) 79
|
|
82: 6(int) Load 81
|
|
84: 6(int) ExpectKHR 82 83
|
|
85: 10(bool) IEqual 84 83
|
|
86: 10(bool) LogicalNot 85
|
|
SelectionMerge 88 None
|
|
BranchConditional 86 87 88
|
|
87: Label
|
|
91: 90(ptr) AccessChain 20(ro) 89
|
|
92: 15(ivec2) Load 91
|
|
96: 15(ivec2) ExpectKHR 92 95
|
|
97: 36(bvec2) IEqual 96 95
|
|
98: 10(bool) All 97
|
|
Branch 88
|
|
88: Label
|
|
99: 10(bool) Phi 85 76 98 87
|
|
100: 10(bool) LogicalNot 99
|
|
SelectionMerge 102 None
|
|
BranchConditional 100 101 102
|
|
101: Label
|
|
105: 104(ptr) AccessChain 20(ro) 103
|
|
106: 16(ivec3) Load 105
|
|
109: 16(ivec3) ExpectKHR 106 108
|
|
110: 52(bvec3) IEqual 109 108
|
|
111: 10(bool) All 110
|
|
Branch 102
|
|
102: Label
|
|
112: 10(bool) Phi 99 88 111 101
|
|
113: 10(bool) LogicalNot 112
|
|
SelectionMerge 115 None
|
|
BranchConditional 113 114 115
|
|
114: Label
|
|
118: 117(ptr) AccessChain 20(ro) 116
|
|
119: 17(ivec4) Load 118
|
|
122: 17(ivec4) ExpectKHR 119 121
|
|
123: 67(bvec4) IEqual 122 121
|
|
124: 10(bool) All 123
|
|
Branch 115
|
|
115: Label
|
|
125: 10(bool) Phi 112 102 124 114
|
|
SelectionMerge 127 None
|
|
BranchConditional 125 126 127
|
|
126: Label
|
|
128: 6(int) Load 8(x)
|
|
129: 6(int) IAdd 128 32
|
|
Store 8(x) 129
|
|
Branch 127
|
|
127: Label
|
|
131: 21(ptr) AccessChain 20(ro) 130
|
|
132: 11(int) Load 131
|
|
134: 11(int) ExpectKHR 132 133
|
|
135: 10(bool) IEqual 134 133
|
|
136: 10(bool) LogicalNot 135
|
|
SelectionMerge 138 None
|
|
BranchConditional 136 137 138
|
|
137: Label
|
|
140: 33(ptr) AccessChain 20(ro) 139
|
|
141: 12(ivec2) Load 140
|
|
145: 12(ivec2) ExpectKHR 141 144
|
|
146: 36(bvec2) IEqual 145 144
|
|
147: 10(bool) All 146
|
|
Branch 138
|
|
138: Label
|
|
148: 10(bool) Phi 135 127 147 137
|
|
149: 10(bool) LogicalNot 148
|
|
SelectionMerge 151 None
|
|
BranchConditional 149 150 151
|
|
150: Label
|
|
152: 49(ptr) AccessChain 20(ro) 83
|
|
153: 13(ivec3) Load 152
|
|
156: 13(ivec3) ExpectKHR 153 155
|
|
157: 52(bvec3) IEqual 156 155
|
|
158: 10(bool) All 157
|
|
Branch 151
|
|
151: Label
|
|
159: 10(bool) Phi 148 138 158 150
|
|
160: 10(bool) LogicalNot 159
|
|
SelectionMerge 162 None
|
|
BranchConditional 160 161 162
|
|
161: Label
|
|
163: 64(ptr) AccessChain 20(ro) 93
|
|
164: 14(ivec4) Load 163
|
|
167: 14(ivec4) ExpectKHR 164 166
|
|
168: 67(bvec4) IEqual 167 166
|
|
169: 10(bool) All 168
|
|
Branch 162
|
|
162: Label
|
|
170: 10(bool) Phi 159 151 169 161
|
|
SelectionMerge 172 None
|
|
BranchConditional 170 171 172
|
|
171: Label
|
|
173: 6(int) Load 8(x)
|
|
174: 6(int) IAdd 173 32
|
|
Store 8(x) 174
|
|
Branch 172
|
|
172: Label
|
|
Return
|
|
FunctionEnd
|