1hlsl.struct.split.trivial.geom 2Shader version: 500 3invocations = -1 4max_vertices = 3 5input primitive = triangles 6output primitive = triangle_strip 70:? Sequence 80:14 Function Definition: @main(struct-PS_IN-vf41[3];struct-GS_OUT-vf41; ( temp void) 90:14 Function Parameters: 100:14 'i' ( in 3-element array of structure{ temp 4-component vector of float pos}) 110:14 'ts' ( out structure{ temp 4-component vector of float pos}) 120:? Sequence 130:17 Sequence 140:17 move second child to first child ( temp int) 150:17 'x' ( temp int) 160:17 Constant: 170:17 0 (const int) 180:17 Loop with condition tested first 190:17 Loop Condition 200:17 Compare Less Than ( temp bool) 210:17 'x' ( temp int) 220:17 Constant: 230:17 3 (const int) 240:17 Loop Body 250:? Sequence 260:18 move second child to first child ( temp 4-component vector of float) 270:18 pos: direct index for structure ( temp 4-component vector of float) 280:18 'o' ( temp structure{ temp 4-component vector of float pos}) 290:18 Constant: 300:18 0 (const int) 310:18 pos: direct index for structure ( temp 4-component vector of float) 320:18 indirect index ( temp structure{ temp 4-component vector of float pos}) 330:18 'i' ( in 3-element array of structure{ temp 4-component vector of float pos}) 340:18 'x' ( temp int) 350:18 Constant: 360:18 0 (const int) 370:19 Sequence 380:19 Sequence 390:19 move second child to first child ( temp 4-component vector of float) 400:? 'ts.pos' ( out 4-component vector of float Position) 410:19 pos: direct index for structure ( temp 4-component vector of float) 420:19 'o' ( temp structure{ temp 4-component vector of float pos}) 430:19 Constant: 440:19 0 (const int) 450:19 EmitVertex ( temp void) 460:17 Loop Terminal Expression 470:17 Pre-Increment ( temp int) 480:17 'x' ( temp int) 490:14 Function Definition: main( ( temp void) 500:14 Function Parameters: 510:? Sequence 520:14 Sequence 530:14 move second child to first child ( temp 4-component vector of float) 540:14 pos: direct index for structure ( temp 4-component vector of float) 550:14 direct index ( temp structure{ temp 4-component vector of float pos}) 560:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos}) 570:14 Constant: 580:14 0 (const int) 590:14 Constant: 600:14 0 (const int) 610:14 direct index ( in 4-component vector of float Position) 620:? 'i.pos' ( in 3-element array of 4-component vector of float Position) 630:14 Constant: 640:14 0 (const int) 650:14 move second child to first child ( temp 4-component vector of float) 660:14 pos: direct index for structure ( temp 4-component vector of float) 670:14 direct index ( temp structure{ temp 4-component vector of float pos}) 680:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos}) 690:14 Constant: 700:14 1 (const int) 710:14 Constant: 720:14 0 (const int) 730:14 direct index ( in 4-component vector of float Position) 740:? 'i.pos' ( in 3-element array of 4-component vector of float Position) 750:14 Constant: 760:14 1 (const int) 770:14 move second child to first child ( temp 4-component vector of float) 780:14 pos: direct index for structure ( temp 4-component vector of float) 790:14 direct index ( temp structure{ temp 4-component vector of float pos}) 800:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos}) 810:14 Constant: 820:14 2 (const int) 830:14 Constant: 840:14 0 (const int) 850:14 direct index ( in 4-component vector of float Position) 860:? 'i.pos' ( in 3-element array of 4-component vector of float Position) 870:14 Constant: 880:14 2 (const int) 890:14 Function Call: @main(struct-PS_IN-vf41[3];struct-GS_OUT-vf41; ( temp void) 900:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos}) 910:? 'ts' ( temp structure{ temp 4-component vector of float pos}) 920:? Linker Objects 930:? 'i.pos' ( in 3-element array of 4-component vector of float Position) 940:? 'ts.pos' ( out 4-component vector of float Position) 95 96 97Linked geometry stage: 98 99 100Shader version: 500 101invocations = 1 102max_vertices = 3 103input primitive = triangles 104output primitive = triangle_strip 1050:? Sequence 1060:14 Function Definition: @main(struct-PS_IN-vf41[3];struct-GS_OUT-vf41; ( temp void) 1070:14 Function Parameters: 1080:14 'i' ( in 3-element array of structure{ temp 4-component vector of float pos}) 1090:14 'ts' ( out structure{ temp 4-component vector of float pos}) 1100:? Sequence 1110:17 Sequence 1120:17 move second child to first child ( temp int) 1130:17 'x' ( temp int) 1140:17 Constant: 1150:17 0 (const int) 1160:17 Loop with condition tested first 1170:17 Loop Condition 1180:17 Compare Less Than ( temp bool) 1190:17 'x' ( temp int) 1200:17 Constant: 1210:17 3 (const int) 1220:17 Loop Body 1230:? Sequence 1240:18 move second child to first child ( temp 4-component vector of float) 1250:18 pos: direct index for structure ( temp 4-component vector of float) 1260:18 'o' ( temp structure{ temp 4-component vector of float pos}) 1270:18 Constant: 1280:18 0 (const int) 1290:18 pos: direct index for structure ( temp 4-component vector of float) 1300:18 indirect index ( temp structure{ temp 4-component vector of float pos}) 1310:18 'i' ( in 3-element array of structure{ temp 4-component vector of float pos}) 1320:18 'x' ( temp int) 1330:18 Constant: 1340:18 0 (const int) 1350:19 Sequence 1360:19 Sequence 1370:19 move second child to first child ( temp 4-component vector of float) 1380:? 'ts.pos' ( out 4-component vector of float Position) 1390:19 pos: direct index for structure ( temp 4-component vector of float) 1400:19 'o' ( temp structure{ temp 4-component vector of float pos}) 1410:19 Constant: 1420:19 0 (const int) 1430:19 EmitVertex ( temp void) 1440:17 Loop Terminal Expression 1450:17 Pre-Increment ( temp int) 1460:17 'x' ( temp int) 1470:14 Function Definition: main( ( temp void) 1480:14 Function Parameters: 1490:? Sequence 1500:14 Sequence 1510:14 move second child to first child ( temp 4-component vector of float) 1520:14 pos: direct index for structure ( temp 4-component vector of float) 1530:14 direct index ( temp structure{ temp 4-component vector of float pos}) 1540:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos}) 1550:14 Constant: 1560:14 0 (const int) 1570:14 Constant: 1580:14 0 (const int) 1590:14 direct index ( in 4-component vector of float Position) 1600:? 'i.pos' ( in 3-element array of 4-component vector of float Position) 1610:14 Constant: 1620:14 0 (const int) 1630:14 move second child to first child ( temp 4-component vector of float) 1640:14 pos: direct index for structure ( temp 4-component vector of float) 1650:14 direct index ( temp structure{ temp 4-component vector of float pos}) 1660:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos}) 1670:14 Constant: 1680:14 1 (const int) 1690:14 Constant: 1700:14 0 (const int) 1710:14 direct index ( in 4-component vector of float Position) 1720:? 'i.pos' ( in 3-element array of 4-component vector of float Position) 1730:14 Constant: 1740:14 1 (const int) 1750:14 move second child to first child ( temp 4-component vector of float) 1760:14 pos: direct index for structure ( temp 4-component vector of float) 1770:14 direct index ( temp structure{ temp 4-component vector of float pos}) 1780:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos}) 1790:14 Constant: 1800:14 2 (const int) 1810:14 Constant: 1820:14 0 (const int) 1830:14 direct index ( in 4-component vector of float Position) 1840:? 'i.pos' ( in 3-element array of 4-component vector of float Position) 1850:14 Constant: 1860:14 2 (const int) 1870:14 Function Call: @main(struct-PS_IN-vf41[3];struct-GS_OUT-vf41; ( temp void) 1880:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos}) 1890:? 'ts' ( temp structure{ temp 4-component vector of float pos}) 1900:? Linker Objects 1910:? 'i.pos' ( in 3-element array of 4-component vector of float Position) 1920:? 'ts.pos' ( out 4-component vector of float Position) 193 194// Module Version 10000 195// Generated by (magic number): 8000a 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 27618(@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