HLSL Tests: Fix two tests to be valid under FXC.

This commit is contained in:
John Kessenich 2017-07-31 01:19:26 -06:00
parent 318a379b1f
commit fda6edcbad
4 changed files with 529 additions and 370 deletions

View File

@ -34,42 +34,78 @@ output primitive = triangle_strip
0:? Constant:
0:? 5.000000
0:? 6.000000
0:30 Sequence
0:30 Sequence
0:30 move second child to first child ( temp 4-component vector of float)
0:? 'ts_psIn_pos' ( out 4-component vector of float Position)
0:30 pos: direct index for structure ( temp 4-component vector of float)
0:30 psIn: direct index for structure ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc})
0:30 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io})
0:30 Constant:
0:30 0 (const int)
0:30 Constant:
0:30 0 (const int)
0:30 move second child to first child ( temp 2-component vector of float)
0:30 tc: direct index for structure ( temp 2-component vector of float)
0:30 psIn: direct index for structure ( temp structure{ temp 2-component vector of float tc})
0:30 'ts' (layout( location=0) out structure{ temp structure{ temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io})
0:30 Constant:
0:30 0 (const int)
0:30 Constant:
0:30 0 (const int)
0:30 tc: direct index for structure ( temp 2-component vector of float)
0:30 psIn: direct index for structure ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc})
0:30 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io})
0:30 Constant:
0:30 0 (const int)
0:30 Constant:
0:30 1 (const int)
0:30 move second child to first child ( temp structure{ temp 2-element array of float m0_array, temp int m1})
0:30 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1})
0:30 'ts' (layout( location=0) out structure{ temp structure{ temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io})
0:30 Constant:
0:30 1 (const int)
0:29 move second child to first child ( temp float)
0:29 direct index ( temp float)
0:29 m0_array: direct index for structure ( temp 2-element array of float)
0:29 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1})
0:29 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io})
0:29 Constant:
0:29 1 (const int)
0:29 Constant:
0:29 0 (const int)
0:29 Constant:
0:29 0 (const int)
0:29 Constant:
0:29 2.300000
0:30 move second child to first child ( temp float)
0:30 direct index ( temp float)
0:30 m0_array: direct index for structure ( temp 2-element array of float)
0:30 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1})
0:30 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io})
0:30 Constant:
0:30 1 (const int)
0:30 EmitVertex ( temp void)
0:30 Constant:
0:30 0 (const int)
0:30 Constant:
0:30 1 (const int)
0:30 Constant:
0:30 2.300000
0:31 move second child to first child ( temp int)
0:31 m1: direct index for structure ( temp int)
0:31 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1})
0:31 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io})
0:31 Constant:
0:31 1 (const int)
0:31 Constant:
0:31 1 (const int)
0:31 Constant:
0:31 2 (const int)
0:33 Sequence
0:33 Sequence
0:33 move second child to first child ( temp 4-component vector of float)
0:? 'ts_psIn_pos' ( out 4-component vector of float Position)
0:33 pos: direct index for structure ( temp 4-component vector of float)
0:33 psIn: direct index for structure ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc})
0:33 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io})
0:33 Constant:
0:33 0 (const int)
0:33 Constant:
0:33 0 (const int)
0:33 move second child to first child ( temp 2-component vector of float)
0:33 tc: direct index for structure ( temp 2-component vector of float)
0:33 psIn: direct index for structure ( temp structure{ temp 2-component vector of float tc})
0:33 'ts' (layout( location=0) out structure{ temp structure{ temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io})
0:33 Constant:
0:33 0 (const int)
0:33 Constant:
0:33 0 (const int)
0:33 tc: direct index for structure ( temp 2-component vector of float)
0:33 psIn: direct index for structure ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc})
0:33 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io})
0:33 Constant:
0:33 0 (const int)
0:33 Constant:
0:33 1 (const int)
0:33 move second child to first child ( temp structure{ temp 2-element array of float m0_array, temp int m1})
0:33 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1})
0:33 'ts' (layout( location=0) out structure{ temp structure{ temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io})
0:33 Constant:
0:33 1 (const int)
0:33 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1})
0:33 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io})
0:33 Constant:
0:33 1 (const int)
0:33 EmitVertex ( temp void)
0:24 Function Definition: main( ( temp void)
0:24 Function Parameters:
0:? Sequence
@ -201,42 +237,78 @@ output primitive = triangle_strip
0:? Constant:
0:? 5.000000
0:? 6.000000
0:30 Sequence
0:30 Sequence
0:30 move second child to first child ( temp 4-component vector of float)
0:? 'ts_psIn_pos' ( out 4-component vector of float Position)
0:30 pos: direct index for structure ( temp 4-component vector of float)
0:30 psIn: direct index for structure ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc})
0:30 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io})
0:30 Constant:
0:30 0 (const int)
0:30 Constant:
0:30 0 (const int)
0:30 move second child to first child ( temp 2-component vector of float)
0:30 tc: direct index for structure ( temp 2-component vector of float)
0:30 psIn: direct index for structure ( temp structure{ temp 2-component vector of float tc})
0:30 'ts' (layout( location=0) out structure{ temp structure{ temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io})
0:30 Constant:
0:30 0 (const int)
0:30 Constant:
0:30 0 (const int)
0:30 tc: direct index for structure ( temp 2-component vector of float)
0:30 psIn: direct index for structure ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc})
0:30 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io})
0:30 Constant:
0:30 0 (const int)
0:30 Constant:
0:30 1 (const int)
0:30 move second child to first child ( temp structure{ temp 2-element array of float m0_array, temp int m1})
0:30 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1})
0:30 'ts' (layout( location=0) out structure{ temp structure{ temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io})
0:30 Constant:
0:30 1 (const int)
0:29 move second child to first child ( temp float)
0:29 direct index ( temp float)
0:29 m0_array: direct index for structure ( temp 2-element array of float)
0:29 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1})
0:29 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io})
0:29 Constant:
0:29 1 (const int)
0:29 Constant:
0:29 0 (const int)
0:29 Constant:
0:29 0 (const int)
0:29 Constant:
0:29 2.300000
0:30 move second child to first child ( temp float)
0:30 direct index ( temp float)
0:30 m0_array: direct index for structure ( temp 2-element array of float)
0:30 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1})
0:30 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io})
0:30 Constant:
0:30 1 (const int)
0:30 EmitVertex ( temp void)
0:30 Constant:
0:30 0 (const int)
0:30 Constant:
0:30 1 (const int)
0:30 Constant:
0:30 2.300000
0:31 move second child to first child ( temp int)
0:31 m1: direct index for structure ( temp int)
0:31 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1})
0:31 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io})
0:31 Constant:
0:31 1 (const int)
0:31 Constant:
0:31 1 (const int)
0:31 Constant:
0:31 2 (const int)
0:33 Sequence
0:33 Sequence
0:33 move second child to first child ( temp 4-component vector of float)
0:? 'ts_psIn_pos' ( out 4-component vector of float Position)
0:33 pos: direct index for structure ( temp 4-component vector of float)
0:33 psIn: direct index for structure ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc})
0:33 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io})
0:33 Constant:
0:33 0 (const int)
0:33 Constant:
0:33 0 (const int)
0:33 move second child to first child ( temp 2-component vector of float)
0:33 tc: direct index for structure ( temp 2-component vector of float)
0:33 psIn: direct index for structure ( temp structure{ temp 2-component vector of float tc})
0:33 'ts' (layout( location=0) out structure{ temp structure{ temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io})
0:33 Constant:
0:33 0 (const int)
0:33 Constant:
0:33 0 (const int)
0:33 tc: direct index for structure ( temp 2-component vector of float)
0:33 psIn: direct index for structure ( temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc})
0:33 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io})
0:33 Constant:
0:33 0 (const int)
0:33 Constant:
0:33 1 (const int)
0:33 move second child to first child ( temp structure{ temp 2-element array of float m0_array, temp int m1})
0:33 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1})
0:33 'ts' (layout( location=0) out structure{ temp structure{ temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io})
0:33 Constant:
0:33 1 (const int)
0:33 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1})
0:33 'o' ( temp structure{ temp structure{ temp 4-component vector of float pos, temp 2-component vector of float tc} psIn, temp structure{ temp 2-element array of float m0_array, temp int m1} contains_no_builtin_io})
0:33 Constant:
0:33 1 (const int)
0:33 EmitVertex ( temp void)
0:24 Function Definition: main( ( temp void)
0:24 Function Parameters:
0:? Sequence
@ -331,12 +403,12 @@ output primitive = triangle_strip
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 99
// Id's are bound by 105
Capability Geometry
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Geometry 4 "main" 41 48 67 75
EntryPoint Geometry 4 "main" 48 55 74 82
ExecutionMode 4 Triangles
ExecutionMode 4 Invocations 1
ExecutionMode 4 OutputTriangleStrip
@ -356,28 +428,28 @@ output primitive = triangle_strip
Name 21 "tin"
Name 22 "ts"
Name 25 "o"
Name 41 "ts_psIn_pos"
Name 44 "PS_IN"
MemberName 44(PS_IN) 0 "tc"
Name 45 "STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO"
MemberName 45(STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO) 0 "m0_array"
MemberName 45(STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO) 1 "m1"
Name 46 "GS_OUT"
MemberName 46(GS_OUT) 0 "psIn"
MemberName 46(GS_OUT) 1 "contains_no_builtin_io"
Name 48 "ts"
Name 64 "tin"
Name 67 "tin_pos"
Name 72 "PS_IN"
MemberName 72(PS_IN) 0 "tc"
Name 75 "tin"
Name 93 "ts"
Name 94 "param"
Name 96 "param"
Decorate 41(ts_psIn_pos) BuiltIn Position
Decorate 48(ts) Location 0
Decorate 67(tin_pos) BuiltIn Position
Decorate 75(tin) Location 0
Name 48 "ts_psIn_pos"
Name 51 "PS_IN"
MemberName 51(PS_IN) 0 "tc"
Name 52 "STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO"
MemberName 52(STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO) 0 "m0_array"
MemberName 52(STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO) 1 "m1"
Name 53 "GS_OUT"
MemberName 53(GS_OUT) 0 "psIn"
MemberName 53(GS_OUT) 1 "contains_no_builtin_io"
Name 55 "ts"
Name 71 "tin"
Name 74 "tin_pos"
Name 79 "PS_IN"
MemberName 79(PS_IN) 0 "tc"
Name 82 "tin"
Name 99 "ts"
Name 100 "param"
Name 102 "param"
Decorate 48(ts_psIn_pos) BuiltIn Position
Decorate 55(ts) Location 0
Decorate 74(tin_pos) BuiltIn Position
Decorate 82(tin) Location 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@ -407,63 +479,66 @@ output primitive = triangle_strip
36: 6(float) Constant 1086324736
37: 8(fvec2) ConstantComposite 35 36
38: TypePointer Function 8(fvec2)
40: TypePointer Output 7(fvec4)
41(ts_psIn_pos): 40(ptr) Variable Output
44(PS_IN): TypeStruct 8(fvec2)
45(STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO): TypeStruct 15 16(int)
46(GS_OUT): TypeStruct 44(PS_IN) 45(STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO)
47: TypePointer Output 46(GS_OUT)
48(ts): 47(ptr) Variable Output
51: TypePointer Output 8(fvec2)
53: TypePointer Function 17(STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO)
56: TypePointer Output 45(STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO)
59: TypePointer Output 15
62: TypePointer Output 16(int)
65: TypeArray 7(fvec4) 11
66: TypePointer Input 65
67(tin_pos): 66(ptr) Variable Input
68: TypePointer Input 7(fvec4)
72(PS_IN): TypeStruct 8(fvec2)
73: TypeArray 72(PS_IN) 11
74: TypePointer Input 73
75(tin): 74(ptr) Variable Input
76: TypePointer Input 8(fvec2)
86: 16(int) Constant 2
40: 6(float) Constant 1075000115
41: TypePointer Function 6(float)
44: 16(int) Constant 2
45: TypePointer Function 16(int)
47: TypePointer Output 7(fvec4)
48(ts_psIn_pos): 47(ptr) Variable Output
51(PS_IN): TypeStruct 8(fvec2)
52(STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO): TypeStruct 15 16(int)
53(GS_OUT): TypeStruct 51(PS_IN) 52(STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO)
54: TypePointer Output 53(GS_OUT)
55(ts): 54(ptr) Variable Output
58: TypePointer Output 8(fvec2)
60: TypePointer Function 17(STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO)
63: TypePointer Output 52(STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO)
66: TypePointer Output 15
69: TypePointer Output 16(int)
72: TypeArray 7(fvec4) 11
73: TypePointer Input 72
74(tin_pos): 73(ptr) Variable Input
75: TypePointer Input 7(fvec4)
79(PS_IN): TypeStruct 8(fvec2)
80: TypeArray 79(PS_IN) 11
81: TypePointer Input 80
82(tin): 81(ptr) Variable Input
83: TypePointer Input 8(fvec2)
4(main): 2 Function None 3
5: Label
64(tin): 13(ptr) Variable Function
93(ts): 19(ptr) Variable Function
94(param): 13(ptr) Variable Function
96(param): 19(ptr) Variable Function
69: 68(ptr) AccessChain 67(tin_pos) 26
70: 7(fvec4) Load 69
71: 32(ptr) AccessChain 64(tin) 26 26
Store 71 70
77: 76(ptr) AccessChain 75(tin) 26 26
78: 8(fvec2) Load 77
79: 38(ptr) AccessChain 64(tin) 26 34
Store 79 78
80: 68(ptr) AccessChain 67(tin_pos) 34
81: 7(fvec4) Load 80
82: 32(ptr) AccessChain 64(tin) 34 26
Store 82 81
83: 76(ptr) AccessChain 75(tin) 34 26
84: 8(fvec2) Load 83
85: 38(ptr) AccessChain 64(tin) 34 34
Store 85 84
87: 68(ptr) AccessChain 67(tin_pos) 86
71(tin): 13(ptr) Variable Function
99(ts): 19(ptr) Variable Function
100(param): 13(ptr) Variable Function
102(param): 19(ptr) Variable Function
76: 75(ptr) AccessChain 74(tin_pos) 26
77: 7(fvec4) Load 76
78: 32(ptr) AccessChain 71(tin) 26 26
Store 78 77
84: 83(ptr) AccessChain 82(tin) 26 26
85: 8(fvec2) Load 84
86: 38(ptr) AccessChain 71(tin) 26 34
Store 86 85
87: 75(ptr) AccessChain 74(tin_pos) 34
88: 7(fvec4) Load 87
89: 32(ptr) AccessChain 64(tin) 86 26
89: 32(ptr) AccessChain 71(tin) 34 26
Store 89 88
90: 76(ptr) AccessChain 75(tin) 86 26
90: 83(ptr) AccessChain 82(tin) 34 26
91: 8(fvec2) Load 90
92: 38(ptr) AccessChain 64(tin) 86 34
92: 38(ptr) AccessChain 71(tin) 34 34
Store 92 91
95: 12 Load 64(tin)
Store 94(param) 95
97: 2 FunctionCall 23(@main(struct-PS_IN-vf4-vf21[3];struct-GS_OUT-struct-PS_IN-vf4-vf21-struct-STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO-f1[2]-i111;) 94(param) 96(param)
98: 18(GS_OUT) Load 96(param)
Store 93(ts) 98
93: 75(ptr) AccessChain 74(tin_pos) 44
94: 7(fvec4) Load 93
95: 32(ptr) AccessChain 71(tin) 44 26
Store 95 94
96: 83(ptr) AccessChain 82(tin) 44 26
97: 8(fvec2) Load 96
98: 38(ptr) AccessChain 71(tin) 44 34
Store 98 97
101: 12 Load 71(tin)
Store 100(param) 101
103: 2 FunctionCall 23(@main(struct-PS_IN-vf4-vf21[3];struct-GS_OUT-struct-PS_IN-vf4-vf21-struct-STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO-f1[2]-i111;) 100(param) 102(param)
104: 18(GS_OUT) Load 102(param)
Store 99(ts) 104
Return
FunctionEnd
23(@main(struct-PS_IN-vf4-vf21[3];struct-GS_OUT-struct-PS_IN-vf4-vf21-struct-STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO-f1[2]-i111;): 2 Function None 20
@ -475,22 +550,28 @@ output primitive = triangle_strip
Store 33 31
39: 38(ptr) AccessChain 25(o) 26 34
Store 39 37
42: 32(ptr) AccessChain 25(o) 26 26
43: 7(fvec4) Load 42
Store 41(ts_psIn_pos) 43
49: 38(ptr) AccessChain 25(o) 26 34
50: 8(fvec2) Load 49
52: 51(ptr) AccessChain 48(ts) 26 26
Store 52 50
54: 53(ptr) AccessChain 25(o) 34
55:17(STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO) Load 54
57: 56(ptr) AccessChain 48(ts) 34
58: 15 CompositeExtract 55 0
60: 59(ptr) AccessChain 57 26
Store 60 58
61: 16(int) CompositeExtract 55 1
63: 62(ptr) AccessChain 57 34
Store 63 61
42: 41(ptr) AccessChain 25(o) 34 26 26
Store 42 40
43: 41(ptr) AccessChain 25(o) 34 26 34
Store 43 40
46: 45(ptr) AccessChain 25(o) 34 34
Store 46 44
49: 32(ptr) AccessChain 25(o) 26 26
50: 7(fvec4) Load 49
Store 48(ts_psIn_pos) 50
56: 38(ptr) AccessChain 25(o) 26 34
57: 8(fvec2) Load 56
59: 58(ptr) AccessChain 55(ts) 26 26
Store 59 57
61: 60(ptr) AccessChain 25(o) 34
62:17(STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO) Load 61
64: 63(ptr) AccessChain 55(ts) 34
65: 15 CompositeExtract 62 0
67: 66(ptr) AccessChain 64 26
Store 67 65
68: 16(int) CompositeExtract 62 1
70: 69(ptr) AccessChain 64 34
Store 70 68
EmitVertex
Return
FunctionEnd

View File

@ -1,15 +1,15 @@
hlsl.structin.vert
Shader version: 500
0:? Sequence
0:8 Function Definition: @main(vf4;struct-VI-vf4[2]-vu2-vf41;vf4; ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
0:8 Function Definition: @main(vf4;struct-VI-vf4[2]-vf4-vf41;vf4; ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b})
0:8 Function Parameters:
0:8 'd' ( in 4-component vector of float)
0:8 'vi' ( in structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
0:8 'vi' ( in structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b})
0:8 'e' ( in 4-component vector of float)
0:? Sequence
0:11 move second child to first child ( temp 4-component vector of float)
0:11 b: direct index for structure ( temp 4-component vector of float)
0:11 'local' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
0:11 'local' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b})
0:11 Constant:
0:11 2 (const int)
0:11 add ( temp 4-component vector of float)
@ -18,31 +18,66 @@ Shader version: 500
0:11 add ( temp 4-component vector of float)
0:11 direct index ( temp 4-component vector of float)
0:11 m: direct index for structure ( temp 2-element array of 4-component vector of float)
0:11 'vi' ( in structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
0:11 'vi' ( in structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b})
0:11 Constant:
0:11 0 (const int)
0:11 Constant:
0:11 1 (const int)
0:11 direct index ( temp 4-component vector of float)
0:11 m: direct index for structure ( temp 2-element array of 4-component vector of float)
0:11 'vi' ( in structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
0:11 'vi' ( in structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b})
0:11 Constant:
0:11 0 (const int)
0:11 Constant:
0:11 0 (const int)
0:11 Construct vec4 ( temp 4-component vector of float)
0:11 Convert uint to float ( temp float)
0:11 direct index ( temp uint)
0:11 coord: direct index for structure ( temp 2-component vector of uint)
0:11 'vi' ( in structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
0:11 Constant:
0:11 1 (const int)
0:11 direct index ( temp float)
0:11 coord: direct index for structure ( temp 4-component vector of float)
0:11 'vi' ( in structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b})
0:11 Constant:
0:11 0 (const int)
0:11 1 (const int)
0:11 Constant:
0:11 0 (const int)
0:11 'd' ( in 4-component vector of float)
0:11 'e' ( in 4-component vector of float)
0:13 Branch: Return with expression
0:13 'local' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
0:12 move second child to first child ( temp 4-component vector of float)
0:12 coord: direct index for structure ( temp 4-component vector of float)
0:12 'local' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b})
0:12 Constant:
0:12 1 (const int)
0:12 Constant:
0:12 1.000000
0:12 1.000000
0:12 1.000000
0:12 1.000000
0:13 move second child to first child ( temp 4-component vector of float)
0:13 direct index ( temp 4-component vector of float)
0:13 m: direct index for structure ( temp 2-element array of 4-component vector of float)
0:13 'local' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b})
0:13 Constant:
0:13 0 (const int)
0:13 Constant:
0:13 0 (const int)
0:13 Constant:
0:13 2.000000
0:13 2.000000
0:13 2.000000
0:13 2.000000
0:14 move second child to first child ( temp 4-component vector of float)
0:14 direct index ( temp 4-component vector of float)
0:14 m: direct index for structure ( temp 2-element array of 4-component vector of float)
0:14 'local' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b})
0:14 Constant:
0:14 0 (const int)
0:14 Constant:
0:14 1 (const int)
0:14 Constant:
0:14 3.000000
0:14 3.000000
0:14 3.000000
0:14 3.000000
0:16 Branch: Return with expression
0:16 'local' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b})
0:8 Function Definition: main( ( temp void)
0:8 Function Parameters:
0:? Sequence
@ -53,7 +88,7 @@ Shader version: 500
0:8 move second child to first child ( temp 4-component vector of float)
0:8 direct index ( temp 4-component vector of float)
0:8 m: direct index for structure ( temp 2-element array of 4-component vector of float)
0:? 'vi' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
0:? 'vi' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b})
0:8 Constant:
0:8 0 (const int)
0:8 Constant:
@ -62,21 +97,21 @@ Shader version: 500
0:8 move second child to first child ( temp 4-component vector of float)
0:8 direct index ( temp 4-component vector of float)
0:8 m: direct index for structure ( temp 2-element array of 4-component vector of float)
0:? 'vi' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
0:? 'vi' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b})
0:8 Constant:
0:8 0 (const int)
0:8 Constant:
0:8 1 (const int)
0:? 'm[1]' (layout( location=2) in 4-component vector of float)
0:8 move second child to first child ( temp 2-component vector of uint)
0:8 coord: direct index for structure ( temp 2-component vector of uint)
0:? 'vi' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
0:8 move second child to first child ( temp 4-component vector of float)
0:8 coord: direct index for structure ( temp 4-component vector of float)
0:? 'vi' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b})
0:8 Constant:
0:8 1 (const int)
0:? 'coord' (layout( location=3) in 2-component vector of uint)
0:? 'coord' (layout( location=3) in 4-component vector of float)
0:8 move second child to first child ( temp 4-component vector of float)
0:8 b: direct index for structure ( temp 4-component vector of float)
0:? 'vi' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
0:? 'vi' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b})
0:8 Constant:
0:8 2 (const int)
0:? 'b' (layout( location=4) in 4-component vector of float)
@ -84,47 +119,44 @@ Shader version: 500
0:? 'e' ( temp 4-component vector of float)
0:? 'e' (layout( location=5) in 4-component vector of float)
0:8 Sequence
0:8 move second child to first child ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
0:8 'flattenTemp' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
0:8 Function Call: @main(vf4;struct-VI-vf4[2]-vu2-vf41;vf4; ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
0:8 move second child to first child ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b})
0:8 'flattenTemp' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b})
0:8 Function Call: @main(vf4;struct-VI-vf4[2]-vf4-vf41;vf4; ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b})
0:? 'd' ( temp 4-component vector of float)
0:? 'vi' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
0:? 'vi' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b})
0:? 'e' ( temp 4-component vector of float)
0:8 move second child to first child ( temp 2-element array of 4-component vector of float)
0:8 m: direct index for structure ( temp 2-element array of 4-component vector of float)
0:8 '@entryPointOutput' ( out structure Position{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
0:8 '@entryPointOutput' (layout( location=0) out structure{ temp 2-element array of 4-component vector of float m, smooth temp 4-component vector of float b})
0:8 Constant:
0:8 0 (const int)
0:8 m: direct index for structure ( temp 2-element array of 4-component vector of float)
0:8 'flattenTemp' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
0:8 'flattenTemp' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b})
0:8 Constant:
0:8 0 (const int)
0:8 move second child to first child ( temp 2-component vector of uint)
0:8 coord: direct index for structure ( temp 2-component vector of uint)
0:8 '@entryPointOutput' ( out structure Position{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
0:8 Constant:
0:8 1 (const int)
0:8 coord: direct index for structure ( temp 2-component vector of uint)
0:8 'flattenTemp' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
0:8 move second child to first child ( temp 4-component vector of float)
0:? '@entryPointOutput_coord' ( out 4-component vector of float Position)
0:8 coord: direct index for structure ( temp 4-component vector of float)
0:8 'flattenTemp' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b})
0:8 Constant:
0:8 1 (const int)
0:8 move second child to first child ( temp 4-component vector of float)
0:8 b: direct index for structure ( temp 4-component vector of float)
0:8 '@entryPointOutput' ( out structure Position{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
0:8 b: direct index for structure ( smooth temp 4-component vector of float)
0:8 '@entryPointOutput' (layout( location=0) out structure{ temp 2-element array of 4-component vector of float m, smooth temp 4-component vector of float b})
0:8 Constant:
0:8 2 (const int)
0:8 1 (const int)
0:8 b: direct index for structure ( temp 4-component vector of float)
0:8 'flattenTemp' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
0:8 'flattenTemp' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b})
0:8 Constant:
0:8 2 (const int)
0:? Linker Objects
0:? '@entryPointOutput' ( out structure Position{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
0:? '@entryPointOutput' (layout( location=0) out structure{ temp 2-element array of 4-component vector of float m, smooth temp 4-component vector of float b})
0:? 'd' (layout( location=0) in 4-component vector of float)
0:? 'm[0]' (layout( location=1) in 4-component vector of float)
0:? 'm[1]' (layout( location=2) in 4-component vector of float)
0:? 'm[0]' (layout( location=1) in 4-component vector of float)
0:? 'm[1]' (layout( location=2) in 4-component vector of float)
0:? 'coord' (layout( location=3) in 2-component vector of uint)
0:? 'coord' (layout( location=3) in 4-component vector of float)
0:? 'b' (layout( location=4) in 4-component vector of float)
0:? 'e' (layout( location=5) in 4-component vector of float)
@ -134,15 +166,15 @@ Linked vertex stage:
Shader version: 500
0:? Sequence
0:8 Function Definition: @main(vf4;struct-VI-vf4[2]-vu2-vf41;vf4; ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
0:8 Function Definition: @main(vf4;struct-VI-vf4[2]-vf4-vf41;vf4; ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b})
0:8 Function Parameters:
0:8 'd' ( in 4-component vector of float)
0:8 'vi' ( in structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
0:8 'vi' ( in structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b})
0:8 'e' ( in 4-component vector of float)
0:? Sequence
0:11 move second child to first child ( temp 4-component vector of float)
0:11 b: direct index for structure ( temp 4-component vector of float)
0:11 'local' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
0:11 'local' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b})
0:11 Constant:
0:11 2 (const int)
0:11 add ( temp 4-component vector of float)
@ -151,31 +183,66 @@ Shader version: 500
0:11 add ( temp 4-component vector of float)
0:11 direct index ( temp 4-component vector of float)
0:11 m: direct index for structure ( temp 2-element array of 4-component vector of float)
0:11 'vi' ( in structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
0:11 'vi' ( in structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b})
0:11 Constant:
0:11 0 (const int)
0:11 Constant:
0:11 1 (const int)
0:11 direct index ( temp 4-component vector of float)
0:11 m: direct index for structure ( temp 2-element array of 4-component vector of float)
0:11 'vi' ( in structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
0:11 'vi' ( in structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b})
0:11 Constant:
0:11 0 (const int)
0:11 Constant:
0:11 0 (const int)
0:11 Construct vec4 ( temp 4-component vector of float)
0:11 Convert uint to float ( temp float)
0:11 direct index ( temp uint)
0:11 coord: direct index for structure ( temp 2-component vector of uint)
0:11 'vi' ( in structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
0:11 Constant:
0:11 1 (const int)
0:11 direct index ( temp float)
0:11 coord: direct index for structure ( temp 4-component vector of float)
0:11 'vi' ( in structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b})
0:11 Constant:
0:11 0 (const int)
0:11 1 (const int)
0:11 Constant:
0:11 0 (const int)
0:11 'd' ( in 4-component vector of float)
0:11 'e' ( in 4-component vector of float)
0:13 Branch: Return with expression
0:13 'local' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
0:12 move second child to first child ( temp 4-component vector of float)
0:12 coord: direct index for structure ( temp 4-component vector of float)
0:12 'local' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b})
0:12 Constant:
0:12 1 (const int)
0:12 Constant:
0:12 1.000000
0:12 1.000000
0:12 1.000000
0:12 1.000000
0:13 move second child to first child ( temp 4-component vector of float)
0:13 direct index ( temp 4-component vector of float)
0:13 m: direct index for structure ( temp 2-element array of 4-component vector of float)
0:13 'local' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b})
0:13 Constant:
0:13 0 (const int)
0:13 Constant:
0:13 0 (const int)
0:13 Constant:
0:13 2.000000
0:13 2.000000
0:13 2.000000
0:13 2.000000
0:14 move second child to first child ( temp 4-component vector of float)
0:14 direct index ( temp 4-component vector of float)
0:14 m: direct index for structure ( temp 2-element array of 4-component vector of float)
0:14 'local' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b})
0:14 Constant:
0:14 0 (const int)
0:14 Constant:
0:14 1 (const int)
0:14 Constant:
0:14 3.000000
0:14 3.000000
0:14 3.000000
0:14 3.000000
0:16 Branch: Return with expression
0:16 'local' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b})
0:8 Function Definition: main( ( temp void)
0:8 Function Parameters:
0:? Sequence
@ -186,7 +253,7 @@ Shader version: 500
0:8 move second child to first child ( temp 4-component vector of float)
0:8 direct index ( temp 4-component vector of float)
0:8 m: direct index for structure ( temp 2-element array of 4-component vector of float)
0:? 'vi' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
0:? 'vi' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b})
0:8 Constant:
0:8 0 (const int)
0:8 Constant:
@ -195,21 +262,21 @@ Shader version: 500
0:8 move second child to first child ( temp 4-component vector of float)
0:8 direct index ( temp 4-component vector of float)
0:8 m: direct index for structure ( temp 2-element array of 4-component vector of float)
0:? 'vi' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
0:? 'vi' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b})
0:8 Constant:
0:8 0 (const int)
0:8 Constant:
0:8 1 (const int)
0:? 'm[1]' (layout( location=2) in 4-component vector of float)
0:8 move second child to first child ( temp 2-component vector of uint)
0:8 coord: direct index for structure ( temp 2-component vector of uint)
0:? 'vi' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
0:8 move second child to first child ( temp 4-component vector of float)
0:8 coord: direct index for structure ( temp 4-component vector of float)
0:? 'vi' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b})
0:8 Constant:
0:8 1 (const int)
0:? 'coord' (layout( location=3) in 2-component vector of uint)
0:? 'coord' (layout( location=3) in 4-component vector of float)
0:8 move second child to first child ( temp 4-component vector of float)
0:8 b: direct index for structure ( temp 4-component vector of float)
0:? 'vi' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
0:? 'vi' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b})
0:8 Constant:
0:8 2 (const int)
0:? 'b' (layout( location=4) in 4-component vector of float)
@ -217,94 +284,92 @@ Shader version: 500
0:? 'e' ( temp 4-component vector of float)
0:? 'e' (layout( location=5) in 4-component vector of float)
0:8 Sequence
0:8 move second child to first child ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
0:8 'flattenTemp' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
0:8 Function Call: @main(vf4;struct-VI-vf4[2]-vu2-vf41;vf4; ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
0:8 move second child to first child ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b})
0:8 'flattenTemp' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b})
0:8 Function Call: @main(vf4;struct-VI-vf4[2]-vf4-vf41;vf4; ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b})
0:? 'd' ( temp 4-component vector of float)
0:? 'vi' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
0:? 'vi' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b})
0:? 'e' ( temp 4-component vector of float)
0:8 move second child to first child ( temp 2-element array of 4-component vector of float)
0:8 m: direct index for structure ( temp 2-element array of 4-component vector of float)
0:8 '@entryPointOutput' ( out structure Position{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
0:8 '@entryPointOutput' (layout( location=0) out structure{ temp 2-element array of 4-component vector of float m, smooth temp 4-component vector of float b})
0:8 Constant:
0:8 0 (const int)
0:8 m: direct index for structure ( temp 2-element array of 4-component vector of float)
0:8 'flattenTemp' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
0:8 'flattenTemp' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b})
0:8 Constant:
0:8 0 (const int)
0:8 move second child to first child ( temp 2-component vector of uint)
0:8 coord: direct index for structure ( temp 2-component vector of uint)
0:8 '@entryPointOutput' ( out structure Position{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
0:8 Constant:
0:8 1 (const int)
0:8 coord: direct index for structure ( temp 2-component vector of uint)
0:8 'flattenTemp' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
0:8 move second child to first child ( temp 4-component vector of float)
0:? '@entryPointOutput_coord' ( out 4-component vector of float Position)
0:8 coord: direct index for structure ( temp 4-component vector of float)
0:8 'flattenTemp' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b})
0:8 Constant:
0:8 1 (const int)
0:8 move second child to first child ( temp 4-component vector of float)
0:8 b: direct index for structure ( temp 4-component vector of float)
0:8 '@entryPointOutput' ( out structure Position{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
0:8 b: direct index for structure ( smooth temp 4-component vector of float)
0:8 '@entryPointOutput' (layout( location=0) out structure{ temp 2-element array of 4-component vector of float m, smooth temp 4-component vector of float b})
0:8 Constant:
0:8 2 (const int)
0:8 1 (const int)
0:8 b: direct index for structure ( temp 4-component vector of float)
0:8 'flattenTemp' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
0:8 'flattenTemp' ( temp structure{ temp 2-element array of 4-component vector of float m, temp 4-component vector of float coord, temp 4-component vector of float b})
0:8 Constant:
0:8 2 (const int)
0:? Linker Objects
0:? '@entryPointOutput' ( out structure Position{ temp 2-element array of 4-component vector of float m, temp 2-component vector of uint coord, temp 4-component vector of float b})
0:? '@entryPointOutput' (layout( location=0) out structure{ temp 2-element array of 4-component vector of float m, smooth temp 4-component vector of float b})
0:? 'd' (layout( location=0) in 4-component vector of float)
0:? 'm[0]' (layout( location=1) in 4-component vector of float)
0:? 'm[1]' (layout( location=2) in 4-component vector of float)
0:? 'm[0]' (layout( location=1) in 4-component vector of float)
0:? 'm[1]' (layout( location=2) in 4-component vector of float)
0:? 'coord' (layout( location=3) in 2-component vector of uint)
0:? 'coord' (layout( location=3) in 4-component vector of float)
0:? 'b' (layout( location=4) in 4-component vector of float)
0:? 'e' (layout( location=5) in 4-component vector of float)
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 92
// Id's are bound by 96
Capability Shader
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 48 51 54 58 62 66 78
EntryPoint Vertex 4 "main" 55 58 61 64 67 71 83 90
Source HLSL 500
Name 4 "main"
Name 13 "VI"
MemberName 13(VI) 0 "m"
MemberName 13(VI) 1 "coord"
MemberName 13(VI) 2 "b"
Name 19 "@main(vf4;struct-VI-vf4[2]-vu2-vf41;vf4;"
Name 16 "d"
Name 17 "vi"
Name 18 "e"
Name 21 "local"
Name 46 "d"
Name 48 "d"
Name 50 "vi"
Name 51 "m[0]"
Name 54 "m[1]"
Name 58 "coord"
Name 62 "b"
Name 65 "e"
Name 66 "e"
Name 68 "flattenTemp"
Name 69 "param"
Name 71 "param"
Name 73 "param"
Name 76 "VI"
MemberName 76(VI) 0 "m"
MemberName 76(VI) 1 "coord"
MemberName 76(VI) 2 "b"
Name 78 "@entryPointOutput"
Decorate 48(d) Location 0
Decorate 51(m[0]) Location 1
Decorate 54(m[1]) Location 2
Decorate 58(coord) Location 3
Decorate 62(b) Location 4
Decorate 66(e) Location 5
Decorate 78(@entryPointOutput) BuiltIn Position
Name 12 "VI"
MemberName 12(VI) 0 "m"
MemberName 12(VI) 1 "coord"
MemberName 12(VI) 2 "b"
Name 18 "@main(vf4;struct-VI-vf4[2]-vf4-vf41;vf4;"
Name 15 "d"
Name 16 "vi"
Name 17 "e"
Name 20 "local"
Name 53 "d"
Name 55 "d"
Name 57 "vi"
Name 58 "m[0]"
Name 61 "m[1]"
Name 64 "coord"
Name 67 "b"
Name 70 "e"
Name 71 "e"
Name 73 "flattenTemp"
Name 74 "param"
Name 76 "param"
Name 78 "param"
Name 81 "VI"
MemberName 81(VI) 0 "m"
MemberName 81(VI) 1 "b"
Name 83 "@entryPointOutput"
Name 90 "@entryPointOutput_coord"
Decorate 55(d) Location 0
Decorate 58(m[0]) Location 1
Decorate 61(m[1]) Location 2
Decorate 64(coord) Location 3
Decorate 67(b) Location 4
Decorate 71(e) Location 5
Decorate 83(@entryPointOutput) Location 0
Decorate 90(@entryPointOutput_coord) BuiltIn Position
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@ -313,101 +378,108 @@ Shader version: 500
9: TypeInt 32 0
10: 9(int) Constant 2
11: TypeArray 7(fvec4) 10
12: TypeVector 9(int) 2
13(VI): TypeStruct 11 12(ivec2) 7(fvec4)
14: TypePointer Function 13(VI)
15: TypeFunction 13(VI) 8(ptr) 14(ptr) 8(ptr)
22: TypeInt 32 1
23: 22(int) Constant 2
24: 22(int) Constant 0
25: 22(int) Constant 1
31: 9(int) Constant 0
32: TypePointer Function 9(int)
47: TypePointer Input 7(fvec4)
48(d): 47(ptr) Variable Input
51(m[0]): 47(ptr) Variable Input
54(m[1]): 47(ptr) Variable Input
57: TypePointer Input 12(ivec2)
58(coord): 57(ptr) Variable Input
60: TypePointer Function 12(ivec2)
62(b): 47(ptr) Variable Input
66(e): 47(ptr) Variable Input
76(VI): TypeStruct 11 12(ivec2) 7(fvec4)
77: TypePointer Output 76(VI)
78(@entryPointOutput): 77(ptr) Variable Output
79: TypePointer Function 11
82: TypePointer Output 11
86: TypePointer Output 12(ivec2)
90: TypePointer Output 7(fvec4)
12(VI): TypeStruct 11 7(fvec4) 7(fvec4)
13: TypePointer Function 12(VI)
14: TypeFunction 12(VI) 8(ptr) 13(ptr) 8(ptr)
21: TypeInt 32 1
22: 21(int) Constant 2
23: 21(int) Constant 0
24: 21(int) Constant 1
30: 9(int) Constant 0
31: TypePointer Function 6(float)
41: 6(float) Constant 1065353216
42: 7(fvec4) ConstantComposite 41 41 41 41
44: 6(float) Constant 1073741824
45: 7(fvec4) ConstantComposite 44 44 44 44
47: 6(float) Constant 1077936128
48: 7(fvec4) ConstantComposite 47 47 47 47
54: TypePointer Input 7(fvec4)
55(d): 54(ptr) Variable Input
58(m[0]): 54(ptr) Variable Input
61(m[1]): 54(ptr) Variable Input
64(coord): 54(ptr) Variable Input
67(b): 54(ptr) Variable Input
71(e): 54(ptr) Variable Input
81(VI): TypeStruct 11 7(fvec4)
82: TypePointer Output 81(VI)
83(@entryPointOutput): 82(ptr) Variable Output
84: TypePointer Function 11
87: TypePointer Output 11
89: TypePointer Output 7(fvec4)
90(@entryPointOutput_coord): 89(ptr) Variable Output
4(main): 2 Function None 3
5: Label
46(d): 8(ptr) Variable Function
50(vi): 14(ptr) Variable Function
65(e): 8(ptr) Variable Function
68(flattenTemp): 14(ptr) Variable Function
69(param): 8(ptr) Variable Function
71(param): 14(ptr) Variable Function
73(param): 8(ptr) Variable Function
49: 7(fvec4) Load 48(d)
Store 46(d) 49
52: 7(fvec4) Load 51(m[0])
53: 8(ptr) AccessChain 50(vi) 24 24
Store 53 52
55: 7(fvec4) Load 54(m[1])
56: 8(ptr) AccessChain 50(vi) 24 25
Store 56 55
59: 12(ivec2) Load 58(coord)
61: 60(ptr) AccessChain 50(vi) 25
Store 61 59
63: 7(fvec4) Load 62(b)
64: 8(ptr) AccessChain 50(vi) 23
Store 64 63
67: 7(fvec4) Load 66(e)
Store 65(e) 67
70: 7(fvec4) Load 46(d)
Store 69(param) 70
72: 13(VI) Load 50(vi)
Store 71(param) 72
74: 7(fvec4) Load 65(e)
Store 73(param) 74
75: 13(VI) FunctionCall 19(@main(vf4;struct-VI-vf4[2]-vu2-vf41;vf4;) 69(param) 71(param) 73(param)
Store 68(flattenTemp) 75
80: 79(ptr) AccessChain 68(flattenTemp) 24
81: 11 Load 80
83: 82(ptr) AccessChain 78(@entryPointOutput) 24
Store 83 81
84: 60(ptr) AccessChain 68(flattenTemp) 25
85: 12(ivec2) Load 84
87: 86(ptr) AccessChain 78(@entryPointOutput) 25
Store 87 85
88: 8(ptr) AccessChain 68(flattenTemp) 23
89: 7(fvec4) Load 88
91: 90(ptr) AccessChain 78(@entryPointOutput) 23
Store 91 89
53(d): 8(ptr) Variable Function
57(vi): 13(ptr) Variable Function
70(e): 8(ptr) Variable Function
73(flattenTemp): 13(ptr) Variable Function
74(param): 8(ptr) Variable Function
76(param): 13(ptr) Variable Function
78(param): 8(ptr) Variable Function
56: 7(fvec4) Load 55(d)
Store 53(d) 56
59: 7(fvec4) Load 58(m[0])
60: 8(ptr) AccessChain 57(vi) 23 23
Store 60 59
62: 7(fvec4) Load 61(m[1])
63: 8(ptr) AccessChain 57(vi) 23 24
Store 63 62
65: 7(fvec4) Load 64(coord)
66: 8(ptr) AccessChain 57(vi) 24
Store 66 65
68: 7(fvec4) Load 67(b)
69: 8(ptr) AccessChain 57(vi) 22
Store 69 68
72: 7(fvec4) Load 71(e)
Store 70(e) 72
75: 7(fvec4) Load 53(d)
Store 74(param) 75
77: 12(VI) Load 57(vi)
Store 76(param) 77
79: 7(fvec4) Load 70(e)
Store 78(param) 79
80: 12(VI) FunctionCall 18(@main(vf4;struct-VI-vf4[2]-vf4-vf41;vf4;) 74(param) 76(param) 78(param)
Store 73(flattenTemp) 80
85: 84(ptr) AccessChain 73(flattenTemp) 23
86: 11 Load 85
88: 87(ptr) AccessChain 83(@entryPointOutput) 23
Store 88 86
91: 8(ptr) AccessChain 73(flattenTemp) 24
92: 7(fvec4) Load 91
Store 90(@entryPointOutput_coord) 92
93: 8(ptr) AccessChain 73(flattenTemp) 22
94: 7(fvec4) Load 93
95: 89(ptr) AccessChain 83(@entryPointOutput) 24
Store 95 94
Return
FunctionEnd
19(@main(vf4;struct-VI-vf4[2]-vu2-vf41;vf4;): 13(VI) Function None 15
16(d): 8(ptr) FunctionParameter
17(vi): 14(ptr) FunctionParameter
18(e): 8(ptr) FunctionParameter
20: Label
21(local): 14(ptr) Variable Function
26: 8(ptr) AccessChain 17(vi) 24 25
27: 7(fvec4) Load 26
28: 8(ptr) AccessChain 17(vi) 24 24
29: 7(fvec4) Load 28
30: 7(fvec4) FAdd 27 29
33: 32(ptr) AccessChain 17(vi) 25 31
34: 9(int) Load 33
35: 6(float) ConvertUToF 34
36: 7(fvec4) CompositeConstruct 35 35 35 35
37: 7(fvec4) FAdd 30 36
38: 7(fvec4) Load 16(d)
18(@main(vf4;struct-VI-vf4[2]-vf4-vf41;vf4;): 12(VI) Function None 14
15(d): 8(ptr) FunctionParameter
16(vi): 13(ptr) FunctionParameter
17(e): 8(ptr) FunctionParameter
19: Label
20(local): 13(ptr) Variable Function
25: 8(ptr) AccessChain 16(vi) 23 24
26: 7(fvec4) Load 25
27: 8(ptr) AccessChain 16(vi) 23 23
28: 7(fvec4) Load 27
29: 7(fvec4) FAdd 26 28
32: 31(ptr) AccessChain 16(vi) 24 30
33: 6(float) Load 32
34: 7(fvec4) CompositeConstruct 33 33 33 33
35: 7(fvec4) FAdd 29 34
36: 7(fvec4) Load 15(d)
37: 7(fvec4) FAdd 35 36
38: 7(fvec4) Load 17(e)
39: 7(fvec4) FAdd 37 38
40: 7(fvec4) Load 18(e)
41: 7(fvec4) FAdd 39 40
42: 8(ptr) AccessChain 21(local) 23
Store 42 41
43: 13(VI) Load 21(local)
ReturnValue 43
40: 8(ptr) AccessChain 20(local) 22
Store 40 39
43: 8(ptr) AccessChain 20(local) 24
Store 43 42
46: 8(ptr) AccessChain 20(local) 23 23
Store 46 45
49: 8(ptr) AccessChain 20(local) 23 24
Store 49 48
50: 12(VI) Load 20(local)
ReturnValue 50
FunctionEnd

View File

@ -1,8 +1,8 @@
struct STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO
{
float m0_array[2];
int m1;
float m0_array[2] : mysemA;
int m1 : mysemB;
};
struct PS_IN
@ -26,6 +26,9 @@ void main(triangle PS_IN tin[3], inout TriangleStream <GS_OUT> ts )
o.psIn.pos = float4(1,2,3,4);
o.psIn.tc = float2(5,6);
o.contains_no_builtin_io.m0_array[0] = 2.3;
o.contains_no_builtin_io.m0_array[1] = 2.3;
o.contains_no_builtin_io.m1 = 2;
ts.Append(o);
}

View File

@ -1,14 +1,17 @@
struct VI {
float4 m[2];
uint2 coord;
linear float4 b;
float4 m[2] : mysemA;
float4 coord : SV_POSITION;
linear float4 b : mysemB;
};
VI main(float4 d, VI vi, float4 e) : SV_POSITION
VI main(float4 d : mysem, VI vi, float4 e : mysem)
{
VI local;
local.b = vi.m[1] + vi.m[0] + float4(vi.coord.x) + d + e;
local.b = vi.m[1] + vi.m[0] + (float4)vi.coord.x + d + e;
local.coord = (float4)1;
local.m[0] = (float4)2;
local.m[1] = (float4)3;
return local;
}