1 hlsl.struct.split.trivial.geom 2 Shader version: 500 3 invocations = -1 4 max_vertices = 3 5 input primitive = triangles 6 output primitive = triangle_strip 7 0:? Sequence 8 0:14 Function Definition: @main(struct-PS_IN-vf41[3];struct-GS_OUT-vf41; ( temp void) 9 0:14 Function Parameters: 10 0:14 'i' ( in 3-element array of structure{ temp 4-component vector of float pos}) 11 0:14 'ts' ( out structure{ temp 4-component vector of float pos}) 12 0:? Sequence 13 0:17 Sequence 14 0:17 move second child to first child ( temp int) 15 0:17 'x' ( temp int) 16 0:17 Constant: 17 0:17 0 (const int) 18 0:17 Loop with condition tested first 19 0:17 Loop Condition 20 0:17 Compare Less Than ( temp bool) 21 0:17 'x' ( temp int) 22 0:17 Constant: 23 0:17 3 (const int) 24 0:17 Loop Body 25 0:? Sequence 26 0:18 move second child to first child ( temp 4-component vector of float) 27 0:18 pos: direct index for structure ( temp 4-component vector of float) 28 0:18 'o' ( temp structure{ temp 4-component vector of float pos}) 29 0:18 Constant: 30 0:18 0 (const int) 31 0:18 pos: direct index for structure ( temp 4-component vector of float) 32 0:18 indirect index ( temp structure{ temp 4-component vector of float pos}) 33 0:18 'i' ( in 3-element array of structure{ temp 4-component vector of float pos}) 34 0:18 'x' ( temp int) 35 0:18 Constant: 36 0:18 0 (const int) 37 0:19 Sequence 38 0:19 Sequence 39 0:19 move second child to first child ( temp 4-component vector of float) 40 0:? 'ts.pos' ( out 4-component vector of float Position) 41 0:19 pos: direct index for structure ( temp 4-component vector of float) 42 0:19 'o' ( temp structure{ temp 4-component vector of float pos}) 43 0:19 Constant: 44 0:19 0 (const int) 45 0:19 EmitVertex ( temp void) 46 0:17 Loop Terminal Expression 47 0:17 Pre-Increment ( temp int) 48 0:17 'x' ( temp int) 49 0:14 Function Definition: main( ( temp void) 50 0:14 Function Parameters: 51 0:? Sequence 52 0:14 Sequence 53 0:14 move second child to first child ( temp 4-component vector of float) 54 0:14 pos: direct index for structure ( temp 4-component vector of float) 55 0:14 direct index ( temp structure{ temp 4-component vector of float pos}) 56 0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos}) 57 0:14 Constant: 58 0:14 0 (const int) 59 0:14 Constant: 60 0:14 0 (const int) 61 0:14 direct index ( in 4-component vector of float Position) 62 0:? 'i.pos' ( in 3-element array of 4-component vector of float Position) 63 0:14 Constant: 64 0:14 0 (const int) 65 0:14 move second child to first child ( temp 4-component vector of float) 66 0:14 pos: direct index for structure ( temp 4-component vector of float) 67 0:14 direct index ( temp structure{ temp 4-component vector of float pos}) 68 0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos}) 69 0:14 Constant: 70 0:14 1 (const int) 71 0:14 Constant: 72 0:14 0 (const int) 73 0:14 direct index ( in 4-component vector of float Position) 74 0:? 'i.pos' ( in 3-element array of 4-component vector of float Position) 75 0:14 Constant: 76 0:14 1 (const int) 77 0:14 move second child to first child ( temp 4-component vector of float) 78 0:14 pos: direct index for structure ( temp 4-component vector of float) 79 0:14 direct index ( temp structure{ temp 4-component vector of float pos}) 80 0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos}) 81 0:14 Constant: 82 0:14 2 (const int) 83 0:14 Constant: 84 0:14 0 (const int) 85 0:14 direct index ( in 4-component vector of float Position) 86 0:? 'i.pos' ( in 3-element array of 4-component vector of float Position) 87 0:14 Constant: 88 0:14 2 (const int) 89 0:14 Function Call: @main(struct-PS_IN-vf41[3];struct-GS_OUT-vf41; ( temp void) 90 0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos}) 91 0:? 'ts' ( temp structure{ temp 4-component vector of float pos}) 92 0:? Linker Objects 93 0:? 'i.pos' ( in 3-element array of 4-component vector of float Position) 94 0:? 'ts.pos' ( out 4-component vector of float Position) 95 96 97 Linked geometry stage: 98 99 100 Shader version: 500 101 invocations = 1 102 max_vertices = 3 103 input primitive = triangles 104 output primitive = triangle_strip 105 0:? Sequence 106 0:14 Function Definition: @main(struct-PS_IN-vf41[3];struct-GS_OUT-vf41; ( temp void) 107 0:14 Function Parameters: 108 0:14 'i' ( in 3-element array of structure{ temp 4-component vector of float pos}) 109 0:14 'ts' ( out structure{ temp 4-component vector of float pos}) 110 0:? Sequence 111 0:17 Sequence 112 0:17 move second child to first child ( temp int) 113 0:17 'x' ( temp int) 114 0:17 Constant: 115 0:17 0 (const int) 116 0:17 Loop with condition tested first 117 0:17 Loop Condition 118 0:17 Compare Less Than ( temp bool) 119 0:17 'x' ( temp int) 120 0:17 Constant: 121 0:17 3 (const int) 122 0:17 Loop Body 123 0:? Sequence 124 0:18 move second child to first child ( temp 4-component vector of float) 125 0:18 pos: direct index for structure ( temp 4-component vector of float) 126 0:18 'o' ( temp structure{ temp 4-component vector of float pos}) 127 0:18 Constant: 128 0:18 0 (const int) 129 0:18 pos: direct index for structure ( temp 4-component vector of float) 130 0:18 indirect index ( temp structure{ temp 4-component vector of float pos}) 131 0:18 'i' ( in 3-element array of structure{ temp 4-component vector of float pos}) 132 0:18 'x' ( temp int) 133 0:18 Constant: 134 0:18 0 (const int) 135 0:19 Sequence 136 0:19 Sequence 137 0:19 move second child to first child ( temp 4-component vector of float) 138 0:? 'ts.pos' ( out 4-component vector of float Position) 139 0:19 pos: direct index for structure ( temp 4-component vector of float) 140 0:19 'o' ( temp structure{ temp 4-component vector of float pos}) 141 0:19 Constant: 142 0:19 0 (const int) 143 0:19 EmitVertex ( temp void) 144 0:17 Loop Terminal Expression 145 0:17 Pre-Increment ( temp int) 146 0:17 'x' ( temp int) 147 0:14 Function Definition: main( ( temp void) 148 0:14 Function Parameters: 149 0:? Sequence 150 0:14 Sequence 151 0:14 move second child to first child ( temp 4-component vector of float) 152 0:14 pos: direct index for structure ( temp 4-component vector of float) 153 0:14 direct index ( temp structure{ temp 4-component vector of float pos}) 154 0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos}) 155 0:14 Constant: 156 0:14 0 (const int) 157 0:14 Constant: 158 0:14 0 (const int) 159 0:14 direct index ( in 4-component vector of float Position) 160 0:? 'i.pos' ( in 3-element array of 4-component vector of float Position) 161 0:14 Constant: 162 0:14 0 (const int) 163 0:14 move second child to first child ( temp 4-component vector of float) 164 0:14 pos: direct index for structure ( temp 4-component vector of float) 165 0:14 direct index ( temp structure{ temp 4-component vector of float pos}) 166 0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos}) 167 0:14 Constant: 168 0:14 1 (const int) 169 0:14 Constant: 170 0:14 0 (const int) 171 0:14 direct index ( in 4-component vector of float Position) 172 0:? 'i.pos' ( in 3-element array of 4-component vector of float Position) 173 0:14 Constant: 174 0:14 1 (const int) 175 0:14 move second child to first child ( temp 4-component vector of float) 176 0:14 pos: direct index for structure ( temp 4-component vector of float) 177 0:14 direct index ( temp structure{ temp 4-component vector of float pos}) 178 0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos}) 179 0:14 Constant: 180 0:14 2 (const int) 181 0:14 Constant: 182 0:14 0 (const int) 183 0:14 direct index ( in 4-component vector of float Position) 184 0:? 'i.pos' ( in 3-element array of 4-component vector of float Position) 185 0:14 Constant: 186 0:14 2 (const int) 187 0:14 Function Call: @main(struct-PS_IN-vf41[3];struct-GS_OUT-vf41; ( temp void) 188 0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos}) 189 0:? 'ts' ( temp structure{ temp 4-component vector of float pos}) 190 0:? Linker Objects 191 0:? 'i.pos' ( in 3-element array of 4-component vector of float Position) 192 0:? 'ts.pos' ( out 4-component vector of float Position) 193 194 // Module Version 10000 195 // Generated by (magic number): 80007 196 // Id's are bound by 67 197 198 Capability Geometry 199 1: ExtInstImport "GLSL.std.450" 200 MemoryModel Logical GLSL450 201 EntryPoint Geometry 4 "main" 40 49 202 ExecutionMode 4 Triangles 203 ExecutionMode 4 Invocations 1 204 ExecutionMode 4 OutputTriangleStrip 205 ExecutionMode 4 OutputVertices 3 206 Source HLSL 500 207 Name 4 "main" 208 Name 8 "PS_IN" 209 MemberName 8(PS_IN) 0 "pos" 210 Name 13 "GS_OUT" 211 MemberName 13(GS_OUT) 0 "pos" 212 Name 18 "@main(struct-PS_IN-vf41[3];struct-GS_OUT-vf41;" 213 Name 16 "i" 214 Name 17 "ts" 215 Name 22 "x" 216 Name 33 "o" 217 Name 40 "ts.pos" 218 Name 46 "i" 219 Name 49 "i.pos" 220 Name 61 "ts" 221 Name 62 "param" 222 Name 64 "param" 223 Decorate 40(ts.pos) BuiltIn Position 224 Decorate 49(i.pos) BuiltIn Position 225 2: TypeVoid 226 3: TypeFunction 2 227 6: TypeFloat 32 228 7: TypeVector 6(float) 4 229 8(PS_IN): TypeStruct 7(fvec4) 230 9: TypeInt 32 0 231 10: 9(int) Constant 3 232 11: TypeArray 8(PS_IN) 10 233 12: TypePointer Function 11 234 13(GS_OUT): TypeStruct 7(fvec4) 235 14: TypePointer Function 13(GS_OUT) 236 15: TypeFunction 2 12(ptr) 14(ptr) 237 20: TypeInt 32 1 238 21: TypePointer Function 20(int) 239 23: 20(int) Constant 0 240 30: 20(int) Constant 3 241 31: TypeBool 242 35: TypePointer Function 7(fvec4) 243 39: TypePointer Output 7(fvec4) 244 40(ts.pos): 39(ptr) Variable Output 245 44: 20(int) Constant 1 246 47: TypeArray 7(fvec4) 10 247 48: TypePointer Input 47 248 49(i.pos): 48(ptr) Variable Input 249 50: TypePointer Input 7(fvec4) 250 57: 20(int) Constant 2 251 4(main): 2 Function None 3 252 5: Label 253 46(i): 12(ptr) Variable Function 254 61(ts): 14(ptr) Variable Function 255 62(param): 12(ptr) Variable Function 256 64(param): 14(ptr) Variable Function 257 51: 50(ptr) AccessChain 49(i.pos) 23 258 52: 7(fvec4) Load 51 259 53: 35(ptr) AccessChain 46(i) 23 23 260 Store 53 52 261 54: 50(ptr) AccessChain 49(i.pos) 44 262 55: 7(fvec4) Load 54 263 56: 35(ptr) AccessChain 46(i) 44 23 264 Store 56 55 265 58: 50(ptr) AccessChain 49(i.pos) 57 266 59: 7(fvec4) Load 58 267 60: 35(ptr) AccessChain 46(i) 57 23 268 Store 60 59 269 63: 11 Load 46(i) 270 Store 62(param) 63 271 65: 2 FunctionCall 18(@main(struct-PS_IN-vf41[3];struct-GS_OUT-vf41;) 62(param) 64(param) 272 66: 13(GS_OUT) Load 64(param) 273 Store 61(ts) 66 274 Return 275 FunctionEnd 276 18(@main(struct-PS_IN-vf41[3];struct-GS_OUT-vf41;): 2 Function None 15 277 16(i): 12(ptr) FunctionParameter 278 17(ts): 14(ptr) FunctionParameter 279 19: Label 280 22(x): 21(ptr) Variable Function 281 33(o): 14(ptr) Variable Function 282 Store 22(x) 23 283 Branch 24 284 24: Label 285 LoopMerge 26 27 None 286 Branch 28 287 28: Label 288 29: 20(int) Load 22(x) 289 32: 31(bool) SLessThan 29 30 290 BranchConditional 32 25 26 291 25: Label 292 34: 20(int) Load 22(x) 293 36: 35(ptr) AccessChain 16(i) 34 23 294 37: 7(fvec4) Load 36 295 38: 35(ptr) AccessChain 33(o) 23 296 Store 38 37 297 41: 35(ptr) AccessChain 33(o) 23 298 42: 7(fvec4) Load 41 299 Store 40(ts.pos) 42 300 EmitVertex 301 Branch 27 302 27: Label 303 43: 20(int) Load 22(x) 304 45: 20(int) IAdd 43 44 305 Store 22(x) 45 306 Branch 24 307 26: Label 308 Return 309 FunctionEnd 310