Merge pull request #1013 from KhronosGroup/flatten-nonarrayed

HLSL: Flatten structs for all non-arrayed I/O interfaces.
This commit is contained in:
John Kessenich 2017-08-15 13:16:36 +09:00 committed by GitHub
commit 25495fdfa7
17 changed files with 924 additions and 1009 deletions

View File

@ -4,9 +4,10 @@ input primitive = triangles
vertex spacing = none vertex spacing = none
triangle order = none triangle order = none
0:? Sequence 0:? Sequence
0:22 Function Definition: @main(struct-ds_in_t-vf4-vf31[3];vf3;struct-pcf_in_t-f1[3]-f11; ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:22 Function Definition: @main(struct-ds_in_t-vf4-vf31[3];f1;vf3;struct-pcf_in_t-f1[3]-f11; ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm})
0:22 Function Parameters: 0:22 Function Parameters:
0:22 'i' ( const (read only) 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:22 'i' ( const (read only) 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm})
0:22 'f' ( in float)
0:22 'tesscoord' ( in 3-component vector of float) 0:22 'tesscoord' ( in 3-component vector of float)
0:22 'pcf_data' ( in structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) 0:22 'pcf_data' ( in structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor})
0:? Sequence 0:? Sequence
@ -23,10 +24,12 @@ triangle order = none
0:25 0 (const int) 0:25 0 (const int)
0:25 Constant: 0:25 Constant:
0:25 0 (const int) 0:25 0 (const int)
0:25 direct index ( temp float) 0:25 component-wise multiply ( temp float)
0:25 'tesscoord' ( in 3-component vector of float) 0:25 direct index ( temp float)
0:25 Constant: 0:25 'tesscoord' ( in 3-component vector of float)
0:25 0 (const int) 0:25 Constant:
0:25 0 (const int)
0:25 'f' ( in float)
0:26 move second child to first child ( temp 3-component vector of float) 0:26 move second child to first child ( temp 3-component vector of float)
0:26 norm: direct index for structure ( temp 3-component vector of float) 0:26 norm: direct index for structure ( temp 3-component vector of float)
0:26 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:26 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm})
@ -56,6 +59,9 @@ triangle order = none
0:22 move second child to first child ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:22 move second child to first child ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm})
0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm})
0:? 'i' (layout( location=0) in 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:? 'i' (layout( location=0) in 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm})
0:22 move second child to first child ( temp float)
0:? 'f' ( temp float)
0:? 'f' (layout( location=2) patch in float)
0:22 move second child to first child ( temp 3-component vector of float) 0:22 move second child to first child ( temp 3-component vector of float)
0:? 'tesscoord' ( temp 3-component vector of float) 0:? 'tesscoord' ( temp 3-component vector of float)
0:? 'tesscoord' ( patch in 3-component vector of float TessCoord) 0:? 'tesscoord' ( patch in 3-component vector of float TessCoord)
@ -108,8 +114,9 @@ triangle order = none
0:22 Sequence 0:22 Sequence
0:22 move second child to first child ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:22 move second child to first child ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm})
0:22 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:22 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm})
0:22 Function Call: @main(struct-ds_in_t-vf4-vf31[3];vf3;struct-pcf_in_t-f1[3]-f11; ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:22 Function Call: @main(struct-ds_in_t-vf4-vf31[3];f1;vf3;struct-pcf_in_t-f1[3]-f11; ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm})
0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm})
0:? 'f' ( temp float)
0:? 'tesscoord' ( temp 3-component vector of float) 0:? 'tesscoord' ( temp 3-component vector of float)
0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) 0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor})
0:22 move second child to first child ( temp 4-component vector of float) 0:22 move second child to first child ( temp 4-component vector of float)
@ -128,6 +135,7 @@ triangle order = none
0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float) 0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float)
0:? '@entryPointOutput.norm' (layout( location=1) out 3-component vector of float) 0:? '@entryPointOutput.norm' (layout( location=1) out 3-component vector of float)
0:? 'i' (layout( location=0) in 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:? 'i' (layout( location=0) in 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm})
0:? 'f' (layout( location=2) patch in float)
0:? 'tesscoord' ( patch in 3-component vector of float TessCoord) 0:? 'tesscoord' ( patch in 3-component vector of float TessCoord)
0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) 0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter)
0:? 'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner) 0:? 'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner)
@ -141,9 +149,10 @@ input primitive = triangles
vertex spacing = none vertex spacing = none
triangle order = none triangle order = none
0:? Sequence 0:? Sequence
0:22 Function Definition: @main(struct-ds_in_t-vf4-vf31[3];vf3;struct-pcf_in_t-f1[3]-f11; ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:22 Function Definition: @main(struct-ds_in_t-vf4-vf31[3];f1;vf3;struct-pcf_in_t-f1[3]-f11; ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm})
0:22 Function Parameters: 0:22 Function Parameters:
0:22 'i' ( const (read only) 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:22 'i' ( const (read only) 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm})
0:22 'f' ( in float)
0:22 'tesscoord' ( in 3-component vector of float) 0:22 'tesscoord' ( in 3-component vector of float)
0:22 'pcf_data' ( in structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) 0:22 'pcf_data' ( in structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor})
0:? Sequence 0:? Sequence
@ -160,10 +169,12 @@ triangle order = none
0:25 0 (const int) 0:25 0 (const int)
0:25 Constant: 0:25 Constant:
0:25 0 (const int) 0:25 0 (const int)
0:25 direct index ( temp float) 0:25 component-wise multiply ( temp float)
0:25 'tesscoord' ( in 3-component vector of float) 0:25 direct index ( temp float)
0:25 Constant: 0:25 'tesscoord' ( in 3-component vector of float)
0:25 0 (const int) 0:25 Constant:
0:25 0 (const int)
0:25 'f' ( in float)
0:26 move second child to first child ( temp 3-component vector of float) 0:26 move second child to first child ( temp 3-component vector of float)
0:26 norm: direct index for structure ( temp 3-component vector of float) 0:26 norm: direct index for structure ( temp 3-component vector of float)
0:26 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:26 'o' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm})
@ -193,6 +204,9 @@ triangle order = none
0:22 move second child to first child ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:22 move second child to first child ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm})
0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm})
0:? 'i' (layout( location=0) in 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:? 'i' (layout( location=0) in 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm})
0:22 move second child to first child ( temp float)
0:? 'f' ( temp float)
0:? 'f' (layout( location=2) patch in float)
0:22 move second child to first child ( temp 3-component vector of float) 0:22 move second child to first child ( temp 3-component vector of float)
0:? 'tesscoord' ( temp 3-component vector of float) 0:? 'tesscoord' ( temp 3-component vector of float)
0:? 'tesscoord' ( patch in 3-component vector of float TessCoord) 0:? 'tesscoord' ( patch in 3-component vector of float TessCoord)
@ -245,8 +259,9 @@ triangle order = none
0:22 Sequence 0:22 Sequence
0:22 move second child to first child ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:22 move second child to first child ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm})
0:22 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:22 'flattenTemp' ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm})
0:22 Function Call: @main(struct-ds_in_t-vf4-vf31[3];vf3;struct-pcf_in_t-f1[3]-f11; ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:22 Function Call: @main(struct-ds_in_t-vf4-vf31[3];f1;vf3;struct-pcf_in_t-f1[3]-f11; ( temp structure{ temp 4-component vector of float pos, temp 3-component vector of float norm})
0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm})
0:? 'f' ( temp float)
0:? 'tesscoord' ( temp 3-component vector of float) 0:? 'tesscoord' ( temp 3-component vector of float)
0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor}) 0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor})
0:22 move second child to first child ( temp 4-component vector of float) 0:22 move second child to first child ( temp 4-component vector of float)
@ -265,56 +280,63 @@ triangle order = none
0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float) 0:? '@entryPointOutput.pos' (layout( location=0) out 4-component vector of float)
0:? '@entryPointOutput.norm' (layout( location=1) out 3-component vector of float) 0:? '@entryPointOutput.norm' (layout( location=1) out 3-component vector of float)
0:? 'i' (layout( location=0) in 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:? 'i' (layout( location=0) in 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm})
0:? 'f' (layout( location=2) patch in float)
0:? 'tesscoord' ( patch in 3-component vector of float TessCoord) 0:? 'tesscoord' ( patch in 3-component vector of float TessCoord)
0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) 0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter)
0:? 'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner) 0:? 'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner)
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80001 // Generated by (magic number): 80001
// Id's are bound by 95 // Id's are bound by 103
Capability Tessellation Capability Tessellation
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint TessellationEvaluation 4 "main" 51 55 61 76 88 92 EntryPoint TessellationEvaluation 4 "main" 54 58 62 68 82 96 100
ExecutionMode 4 Triangles ExecutionMode 4 Triangles
Source HLSL 500 Source HLSL 500
Name 4 "main" Name 4 "main"
Name 9 "ds_in_t" Name 9 "ds_in_t"
MemberName 9(ds_in_t) 0 "pos" MemberName 9(ds_in_t) 0 "pos"
MemberName 9(ds_in_t) 1 "norm" MemberName 9(ds_in_t) 1 "norm"
Name 15 "pcf_in_t" Name 16 "pcf_in_t"
MemberName 15(pcf_in_t) 0 "flTessFactor" MemberName 16(pcf_in_t) 0 "flTessFactor"
MemberName 15(pcf_in_t) 1 "flInsideTessFactor" MemberName 16(pcf_in_t) 1 "flInsideTessFactor"
Name 17 "gs_in_t" Name 18 "gs_in_t"
MemberName 17(gs_in_t) 0 "pos" MemberName 18(gs_in_t) 0 "pos"
MemberName 17(gs_in_t) 1 "norm" MemberName 18(gs_in_t) 1 "norm"
Name 22 "@main(struct-ds_in_t-vf4-vf31[3];vf3;struct-pcf_in_t-f1[3]-f11;" Name 24 "@main(struct-ds_in_t-vf4-vf31[3];f1;vf3;struct-pcf_in_t-f1[3]-f11;"
Name 19 "i" Name 20 "i"
Name 20 "tesscoord" Name 21 "f"
Name 21 "pcf_data" Name 22 "tesscoord"
Name 25 "o" Name 23 "pcf_data"
Name 49 "i" Name 27 "o"
Name 51 "i" Name 52 "i"
Name 53 "tesscoord" Name 54 "i"
Name 55 "tesscoord" Name 56 "f"
Name 57 "pcf_data" Name 58 "f"
Name 61 "pcf_data.flTessFactor" Name 60 "tesscoord"
Name 76 "pcf_data.flInsideTessFactor" Name 62 "tesscoord"
Name 80 "flattenTemp" Name 64 "pcf_data"
Name 82 "param" Name 68 "pcf_data.flTessFactor"
Name 84 "param" Name 82 "pcf_data.flInsideTessFactor"
Name 88 "@entryPointOutput.pos" Name 86 "flattenTemp"
Name 92 "@entryPointOutput.norm" Name 88 "param"
Decorate 51(i) Location 0 Name 90 "param"
Decorate 55(tesscoord) Patch Name 92 "param"
Decorate 55(tesscoord) BuiltIn TessCoord Name 96 "@entryPointOutput.pos"
Decorate 61(pcf_data.flTessFactor) Patch Name 100 "@entryPointOutput.norm"
Decorate 61(pcf_data.flTessFactor) BuiltIn TessLevelOuter Decorate 54(i) Location 0
Decorate 76(pcf_data.flInsideTessFactor) Patch Decorate 58(f) Patch
Decorate 76(pcf_data.flInsideTessFactor) BuiltIn TessLevelInner Decorate 58(f) Location 2
Decorate 88(@entryPointOutput.pos) Location 0 Decorate 62(tesscoord) Patch
Decorate 92(@entryPointOutput.norm) Location 1 Decorate 62(tesscoord) BuiltIn TessCoord
Decorate 68(pcf_data.flTessFactor) Patch
Decorate 68(pcf_data.flTessFactor) BuiltIn TessLevelOuter
Decorate 82(pcf_data.flInsideTessFactor) Patch
Decorate 82(pcf_data.flInsideTessFactor) BuiltIn TessLevelInner
Decorate 96(@entryPointOutput.pos) Location 0
Decorate 100(@entryPointOutput.norm) Location 1
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeFloat 32 6: TypeFloat 32
@ -324,102 +346,112 @@ triangle order = none
10: TypeInt 32 0 10: TypeInt 32 0
11: 10(int) Constant 3 11: 10(int) Constant 3
12: TypeArray 9(ds_in_t) 11 12: TypeArray 9(ds_in_t) 11
13: TypePointer Function 8(fvec3) 13: TypePointer Function 6(float)
14: TypeArray 6(float) 11 14: TypePointer Function 8(fvec3)
15(pcf_in_t): TypeStruct 14 6(float) 15: TypeArray 6(float) 11
16: TypePointer Function 15(pcf_in_t) 16(pcf_in_t): TypeStruct 15 6(float)
17(gs_in_t): TypeStruct 7(fvec4) 8(fvec3) 17: TypePointer Function 16(pcf_in_t)
18: TypeFunction 17(gs_in_t) 12 13(ptr) 16(ptr) 18(gs_in_t): TypeStruct 7(fvec4) 8(fvec3)
24: TypePointer Function 17(gs_in_t) 19: TypeFunction 18(gs_in_t) 12 13(ptr) 14(ptr) 17(ptr)
26: TypeInt 32 1 26: TypePointer Function 18(gs_in_t)
27: 26(int) Constant 0 28: TypeInt 32 1
29: 10(int) Constant 0 29: 28(int) Constant 0
30: TypePointer Function 6(float) 31: 10(int) Constant 0
35: TypePointer Function 7(fvec4) 38: TypePointer Function 7(fvec4)
37: 26(int) Constant 1 40: 28(int) Constant 1
39: 10(int) Constant 1 42: 10(int) Constant 1
48: TypePointer Function 12 51: TypePointer Function 12
50: TypePointer Input 12 53: TypePointer Input 12
51(i): 50(ptr) Variable Input 54(i): 53(ptr) Variable Input
54: TypePointer Input 8(fvec3) 57: TypePointer Input 6(float)
55(tesscoord): 54(ptr) Variable Input 58(f): 57(ptr) Variable Input
58: 10(int) Constant 4 61: TypePointer Input 8(fvec3)
59: TypeArray 6(float) 58 62(tesscoord): 61(ptr) Variable Input
60: TypePointer Input 59 65: 10(int) Constant 4
61(pcf_data.flTessFactor): 60(ptr) Variable Input 66: TypeArray 6(float) 65
62: TypePointer Input 6(float) 67: TypePointer Input 66
69: 26(int) Constant 2 68(pcf_data.flTessFactor): 67(ptr) Variable Input
73: 10(int) Constant 2 75: 28(int) Constant 2
74: TypeArray 6(float) 73 79: 10(int) Constant 2
75: TypePointer Input 74 80: TypeArray 6(float) 79
76(pcf_data.flInsideTessFactor): 75(ptr) Variable Input 81: TypePointer Input 80
87: TypePointer Output 7(fvec4) 82(pcf_data.flInsideTessFactor): 81(ptr) Variable Input
88(@entryPointOutput.pos): 87(ptr) Variable Output 95: TypePointer Output 7(fvec4)
91: TypePointer Output 8(fvec3) 96(@entryPointOutput.pos): 95(ptr) Variable Output
92(@entryPointOutput.norm): 91(ptr) Variable Output 99: TypePointer Output 8(fvec3)
100(@entryPointOutput.norm): 99(ptr) Variable Output
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
49(i): 48(ptr) Variable Function 52(i): 51(ptr) Variable Function
53(tesscoord): 13(ptr) Variable Function 56(f): 13(ptr) Variable Function
57(pcf_data): 16(ptr) Variable Function 60(tesscoord): 14(ptr) Variable Function
80(flattenTemp): 24(ptr) Variable Function 64(pcf_data): 17(ptr) Variable Function
82(param): 13(ptr) Variable Function 86(flattenTemp): 26(ptr) Variable Function
84(param): 16(ptr) Variable Function 88(param): 13(ptr) Variable Function
52: 12 Load 51(i) 90(param): 14(ptr) Variable Function
Store 49(i) 52 92(param): 17(ptr) Variable Function
56: 8(fvec3) Load 55(tesscoord) 55: 12 Load 54(i)
Store 53(tesscoord) 56 Store 52(i) 55
63: 62(ptr) AccessChain 61(pcf_data.flTessFactor) 27 59: 6(float) Load 58(f)
64: 6(float) Load 63 Store 56(f) 59
65: 30(ptr) AccessChain 57(pcf_data) 27 27 63: 8(fvec3) Load 62(tesscoord)
Store 65 64 Store 60(tesscoord) 63
66: 62(ptr) AccessChain 61(pcf_data.flTessFactor) 37 69: 57(ptr) AccessChain 68(pcf_data.flTessFactor) 29
67: 6(float) Load 66 70: 6(float) Load 69
68: 30(ptr) AccessChain 57(pcf_data) 27 37 71: 13(ptr) AccessChain 64(pcf_data) 29 29
Store 68 67 Store 71 70
70: 62(ptr) AccessChain 61(pcf_data.flTessFactor) 69 72: 57(ptr) AccessChain 68(pcf_data.flTessFactor) 40
71: 6(float) Load 70 73: 6(float) Load 72
72: 30(ptr) AccessChain 57(pcf_data) 27 69 74: 13(ptr) AccessChain 64(pcf_data) 29 40
Store 72 71 Store 74 73
77: 62(ptr) AccessChain 76(pcf_data.flInsideTessFactor) 27 76: 57(ptr) AccessChain 68(pcf_data.flTessFactor) 75
78: 6(float) Load 77 77: 6(float) Load 76
79: 30(ptr) AccessChain 57(pcf_data) 37 78: 13(ptr) AccessChain 64(pcf_data) 29 75
Store 79 78 Store 78 77
81: 12 Load 49(i) 83: 57(ptr) AccessChain 82(pcf_data.flInsideTessFactor) 29
83: 8(fvec3) Load 53(tesscoord) 84: 6(float) Load 83
Store 82(param) 83 85: 13(ptr) AccessChain 64(pcf_data) 40
85:15(pcf_in_t) Load 57(pcf_data) Store 85 84
Store 84(param) 85 87: 12 Load 52(i)
86: 17(gs_in_t) FunctionCall 22(@main(struct-ds_in_t-vf4-vf31[3];vf3;struct-pcf_in_t-f1[3]-f11;) 81 82(param) 84(param) 89: 6(float) Load 56(f)
Store 80(flattenTemp) 86 Store 88(param) 89
89: 35(ptr) AccessChain 80(flattenTemp) 27 91: 8(fvec3) Load 60(tesscoord)
90: 7(fvec4) Load 89 Store 90(param) 91
Store 88(@entryPointOutput.pos) 90 93:16(pcf_in_t) Load 64(pcf_data)
93: 13(ptr) AccessChain 80(flattenTemp) 37 Store 92(param) 93
94: 8(fvec3) Load 93 94: 18(gs_in_t) FunctionCall 24(@main(struct-ds_in_t-vf4-vf31[3];f1;vf3;struct-pcf_in_t-f1[3]-f11;) 87 88(param) 90(param) 92(param)
Store 92(@entryPointOutput.norm) 94 Store 86(flattenTemp) 94
97: 38(ptr) AccessChain 86(flattenTemp) 29
98: 7(fvec4) Load 97
Store 96(@entryPointOutput.pos) 98
101: 14(ptr) AccessChain 86(flattenTemp) 40
102: 8(fvec3) Load 101
Store 100(@entryPointOutput.norm) 102
Return Return
FunctionEnd FunctionEnd
22(@main(struct-ds_in_t-vf4-vf31[3];vf3;struct-pcf_in_t-f1[3]-f11;): 17(gs_in_t) Function None 18 24(@main(struct-ds_in_t-vf4-vf31[3];f1;vf3;struct-pcf_in_t-f1[3]-f11;): 18(gs_in_t) Function None 19
19(i): 12 FunctionParameter 20(i): 12 FunctionParameter
20(tesscoord): 13(ptr) FunctionParameter 21(f): 13(ptr) FunctionParameter
21(pcf_data): 16(ptr) FunctionParameter 22(tesscoord): 14(ptr) FunctionParameter
23: Label 23(pcf_data): 17(ptr) FunctionParameter
25(o): 24(ptr) Variable Function 25: Label
28: 7(fvec4) CompositeExtract 19(i) 0 0 27(o): 26(ptr) Variable Function
31: 30(ptr) AccessChain 20(tesscoord) 29 30: 7(fvec4) CompositeExtract 20(i) 0 0
32: 6(float) Load 31 32: 13(ptr) AccessChain 22(tesscoord) 31
33: 7(fvec4) CompositeConstruct 32 32 32 32 33: 6(float) Load 32
34: 7(fvec4) FAdd 28 33 34: 6(float) Load 21(f)
36: 35(ptr) AccessChain 25(o) 27 35: 6(float) FMul 33 34
Store 36 34 36: 7(fvec4) CompositeConstruct 35 35 35 35
38: 8(fvec3) CompositeExtract 19(i) 0 1 37: 7(fvec4) FAdd 30 36
40: 30(ptr) AccessChain 20(tesscoord) 39 39: 38(ptr) AccessChain 27(o) 29
41: 6(float) Load 40 Store 39 37
42: 8(fvec3) CompositeConstruct 41 41 41 41: 8(fvec3) CompositeExtract 20(i) 0 1
43: 8(fvec3) FAdd 38 42 43: 13(ptr) AccessChain 22(tesscoord) 42
44: 13(ptr) AccessChain 25(o) 37 44: 6(float) Load 43
Store 44 43 45: 8(fvec3) CompositeConstruct 44 44 44
45: 17(gs_in_t) Load 25(o) 46: 8(fvec3) FAdd 41 45
ReturnValue 45 47: 14(ptr) AccessChain 27(o) 40
Store 47 46
48: 18(gs_in_t) Load 27(o)
ReturnValue 48
FunctionEnd FunctionEnd

View File

@ -104,10 +104,7 @@ triangle order = none
0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor, temp float foo}) 0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor, temp float foo})
0:25 Constant: 0:25 Constant:
0:25 2 (const int) 0:25 2 (const int)
0:25 foo: direct index for structure ( temp float) 0:? 'pcf_data.foo' (layout( location=2) patch in float)
0:25 'pcf_data' (layout( location=2) patch in structure{ temp float foo})
0:25 Constant:
0:25 0 (const int)
0:25 move second child to first child ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:25 move second child to first child ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm})
0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm})
0:? 'i' (layout( location=0) in 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:? 'i' (layout( location=0) in 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm})
@ -140,7 +137,7 @@ triangle order = none
0:? 'tesscoord' ( patch in 3-component vector of float TessCoord) 0:? 'tesscoord' ( patch in 3-component vector of float TessCoord)
0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) 0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter)
0:? 'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner) 0:? 'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner)
0:? 'pcf_data' (layout( location=2) patch in structure{ temp float foo}) 0:? 'pcf_data.foo' (layout( location=2) patch in float)
Linked tessellation evaluation stage: Linked tessellation evaluation stage:
@ -251,10 +248,7 @@ triangle order = none
0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor, temp float foo}) 0:? 'pcf_data' ( temp structure{ temp 3-element array of float flTessFactor, temp float flInsideTessFactor, temp float foo})
0:25 Constant: 0:25 Constant:
0:25 2 (const int) 0:25 2 (const int)
0:25 foo: direct index for structure ( temp float) 0:? 'pcf_data.foo' (layout( location=2) patch in float)
0:25 'pcf_data' (layout( location=2) patch in structure{ temp float foo})
0:25 Constant:
0:25 0 (const int)
0:25 move second child to first child ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:25 move second child to first child ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm})
0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:? 'i' ( temp 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm})
0:? 'i' (layout( location=0) in 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm}) 0:? 'i' (layout( location=0) in 3-element array of structure{ temp 4-component vector of float pos, temp 3-component vector of float norm})
@ -287,16 +281,16 @@ triangle order = none
0:? 'tesscoord' ( patch in 3-component vector of float TessCoord) 0:? 'tesscoord' ( patch in 3-component vector of float TessCoord)
0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter) 0:? 'pcf_data.flTessFactor' ( patch in 4-element array of float TessLevelOuter)
0:? 'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner) 0:? 'pcf_data.flInsideTessFactor' ( patch in 2-element array of float TessLevelInner)
0:? 'pcf_data' (layout( location=2) patch in structure{ temp float foo}) 0:? 'pcf_data.foo' (layout( location=2) patch in float)
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80001 // Generated by (magic number): 80001
// Id's are bound by 101 // Id's are bound by 98
Capability Tessellation Capability Tessellation
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint TessellationEvaluation 4 "main" 52 67 73 80 84 94 98 EntryPoint TessellationEvaluation 4 "main" 52 67 71 77 81 91 95
ExecutionMode 4 Triangles ExecutionMode 4 Triangles
Source HLSL 500 Source HLSL 500
Name 4 "main" Name 4 "main"
@ -318,30 +312,27 @@ triangle order = none
Name 48 "pcf_data" Name 48 "pcf_data"
Name 52 "pcf_data.flTessFactor" Name 52 "pcf_data.flTessFactor"
Name 67 "pcf_data.flInsideTessFactor" Name 67 "pcf_data.flInsideTessFactor"
Name 71 "pcf_in_t" Name 71 "pcf_data.foo"
MemberName 71(pcf_in_t) 0 "foo" Name 75 "i"
Name 73 "pcf_data" Name 77 "i"
Name 78 "i" Name 79 "tesscoord"
Name 80 "i" Name 81 "tesscoord"
Name 82 "tesscoord" Name 83 "flattenTemp"
Name 84 "tesscoord" Name 85 "param"
Name 86 "flattenTemp" Name 87 "param"
Name 88 "param" Name 91 "@entryPointOutput.pos"
Name 90 "param" Name 95 "@entryPointOutput.norm"
Name 94 "@entryPointOutput.pos"
Name 98 "@entryPointOutput.norm"
Decorate 52(pcf_data.flTessFactor) Patch Decorate 52(pcf_data.flTessFactor) Patch
Decorate 52(pcf_data.flTessFactor) BuiltIn TessLevelOuter Decorate 52(pcf_data.flTessFactor) BuiltIn TessLevelOuter
Decorate 67(pcf_data.flInsideTessFactor) Patch Decorate 67(pcf_data.flInsideTessFactor) Patch
Decorate 67(pcf_data.flInsideTessFactor) BuiltIn TessLevelInner Decorate 67(pcf_data.flInsideTessFactor) BuiltIn TessLevelInner
MemberDecorate 71(pcf_in_t) 0 Patch Decorate 71(pcf_data.foo) Patch
Decorate 73(pcf_data) Patch Decorate 71(pcf_data.foo) Location 2
Decorate 73(pcf_data) Location 2 Decorate 77(i) Location 0
Decorate 80(i) Location 0 Decorate 81(tesscoord) Patch
Decorate 84(tesscoord) Patch Decorate 81(tesscoord) BuiltIn TessCoord
Decorate 84(tesscoord) BuiltIn TessCoord Decorate 91(@entryPointOutput.pos) Location 0
Decorate 94(@entryPointOutput.pos) Location 0 Decorate 95(@entryPointOutput.norm) Location 1
Decorate 98(@entryPointOutput.norm) Location 1
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeFloat 32 6: TypeFloat 32
@ -375,26 +366,24 @@ triangle order = none
65: TypeArray 6(float) 64 65: TypeArray 6(float) 64
66: TypePointer Input 65 66: TypePointer Input 65
67(pcf_data.flInsideTessFactor): 66(ptr) Variable Input 67(pcf_data.flInsideTessFactor): 66(ptr) Variable Input
71(pcf_in_t): TypeStruct 6(float) 71(pcf_data.foo): 53(ptr) Variable Input
72: TypePointer Input 71(pcf_in_t) 74: TypePointer Function 15
73(pcf_data): 72(ptr) Variable Input 76: TypePointer Input 15
77: TypePointer Function 15 77(i): 76(ptr) Variable Input
79: TypePointer Input 15 80: TypePointer Input 13(fvec3)
80(i): 79(ptr) Variable Input 81(tesscoord): 80(ptr) Variable Input
83: TypePointer Input 13(fvec3) 90: TypePointer Output 12(fvec4)
84(tesscoord): 83(ptr) Variable Input 91(@entryPointOutput.pos): 90(ptr) Variable Output
93: TypePointer Output 12(fvec4) 94: TypePointer Output 13(fvec3)
94(@entryPointOutput.pos): 93(ptr) Variable Output 95(@entryPointOutput.norm): 94(ptr) Variable Output
97: TypePointer Output 13(fvec3)
98(@entryPointOutput.norm): 97(ptr) Variable Output
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
48(pcf_data): 11(ptr) Variable Function 48(pcf_data): 11(ptr) Variable Function
78(i): 77(ptr) Variable Function 75(i): 74(ptr) Variable Function
82(tesscoord): 16(ptr) Variable Function 79(tesscoord): 16(ptr) Variable Function
86(flattenTemp): 24(ptr) Variable Function 83(flattenTemp): 24(ptr) Variable Function
88(param): 11(ptr) Variable Function 85(param): 11(ptr) Variable Function
90(param): 16(ptr) Variable Function 87(param): 16(ptr) Variable Function
54: 53(ptr) AccessChain 52(pcf_data.flTessFactor) 27 54: 53(ptr) AccessChain 52(pcf_data.flTessFactor) 27
55: 6(float) Load 54 55: 6(float) Load 54
56: 30(ptr) AccessChain 48(pcf_data) 27 27 56: 30(ptr) AccessChain 48(pcf_data) 27 27
@ -411,27 +400,26 @@ triangle order = none
69: 6(float) Load 68 69: 6(float) Load 68
70: 30(ptr) AccessChain 48(pcf_data) 37 70: 30(ptr) AccessChain 48(pcf_data) 37
Store 70 69 Store 70 69
74: 53(ptr) AccessChain 73(pcf_data) 27 72: 6(float) Load 71(pcf_data.foo)
75: 6(float) Load 74 73: 30(ptr) AccessChain 48(pcf_data) 60
76: 30(ptr) AccessChain 48(pcf_data) 60 Store 73 72
Store 76 75 78: 15 Load 77(i)
81: 15 Load 80(i) Store 75(i) 78
Store 78(i) 81 82: 13(fvec3) Load 81(tesscoord)
85: 13(fvec3) Load 84(tesscoord) Store 79(tesscoord) 82
Store 82(tesscoord) 85 84: 15 Load 75(i)
87: 15 Load 78(i) 86:10(pcf_in_t) Load 48(pcf_data)
89:10(pcf_in_t) Load 48(pcf_data) Store 85(param) 86
Store 88(param) 89 88: 13(fvec3) Load 79(tesscoord)
91: 13(fvec3) Load 82(tesscoord) Store 87(param) 88
Store 90(param) 91 89: 17(gs_in_t) FunctionCall 22(@main(struct-pcf_in_t-f1[3]-f1-f11;struct-ds_in_t-vf4-vf31[3];vf3;) 85(param) 84 87(param)
92: 17(gs_in_t) FunctionCall 22(@main(struct-pcf_in_t-f1[3]-f1-f11;struct-ds_in_t-vf4-vf31[3];vf3;) 88(param) 87 90(param) Store 83(flattenTemp) 89
Store 86(flattenTemp) 92 92: 35(ptr) AccessChain 83(flattenTemp) 27
95: 35(ptr) AccessChain 86(flattenTemp) 27 93: 12(fvec4) Load 92
96: 12(fvec4) Load 95 Store 91(@entryPointOutput.pos) 93
Store 94(@entryPointOutput.pos) 96 96: 16(ptr) AccessChain 83(flattenTemp) 37
99: 16(ptr) AccessChain 86(flattenTemp) 37 97: 13(fvec3) Load 96
100: 13(fvec3) Load 99 Store 95(@entryPointOutput.norm) 97
Store 98(@entryPointOutput.norm) 100
Return Return
FunctionEnd FunctionEnd
22(@main(struct-pcf_in_t-f1[3]-f1-f11;struct-ds_in_t-vf4-vf31[3];vf3;): 17(gs_in_t) Function None 18 22(@main(struct-pcf_in_t-f1[3]-f1-f11;struct-ds_in_t-vf4-vf31[3];vf3;): 17(gs_in_t) Function None 18

View File

@ -57,10 +57,7 @@ gl_FragCoord origin is upper left
0:? 'i' ( temp structure{ temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) 0:? 'i' ( temp structure{ temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
0:13 Constant: 0:13 Constant:
0:13 0 (const int) 0:13 0 (const int)
0:13 v: direct index for structure ( temp 2-component vector of float) 0:? 'i.v' (layout( location=0) in 2-component vector of float)
0:13 'i' (layout( location=0) in structure{ temp 2-component vector of float v, flat temp 2-component vector of int i2})
0:13 Constant:
0:13 0 (const int)
0:13 move second child to first child ( temp 4-component vector of float) 0:13 move second child to first child ( temp 4-component vector of float)
0:13 fragCoord: direct index for structure ( temp 4-component vector of float) 0:13 fragCoord: direct index for structure ( temp 4-component vector of float)
0:? 'i' ( temp structure{ temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) 0:? 'i' ( temp structure{ temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
@ -72,10 +69,7 @@ gl_FragCoord origin is upper left
0:? 'i' ( temp structure{ temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) 0:? 'i' ( temp structure{ temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
0:13 Constant: 0:13 Constant:
0:13 2 (const int) 0:13 2 (const int)
0:13 i2: direct index for structure ( flat temp 2-component vector of int) 0:? 'i.i2' (layout( location=1) flat in 2-component vector of int)
0:13 'i' (layout( location=0) in structure{ temp 2-component vector of float v, flat temp 2-component vector of int i2})
0:13 Constant:
0:13 1 (const int)
0:13 move second child to first child ( temp 4-component vector of float) 0:13 move second child to first child ( temp 4-component vector of float)
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:13 Function Call: @PixelShaderFunction(struct-InParam-vf2-vf4-vi21; ( temp 4-component vector of float) 0:13 Function Call: @PixelShaderFunction(struct-InParam-vf2-vf4-vi21; ( temp 4-component vector of float)
@ -83,7 +77,8 @@ gl_FragCoord origin is upper left
0:? Linker Objects 0:? Linker Objects
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:? 'i.fragCoord' ( in 4-component vector of float FragCoord) 0:? 'i.fragCoord' ( in 4-component vector of float FragCoord)
0:? 'i' (layout( location=0) in structure{ temp 2-component vector of float v, flat temp 2-component vector of int i2}) 0:? 'i.v' (layout( location=0) in 2-component vector of float)
0:? 'i.i2' (layout( location=1) flat in 2-component vector of int)
Linked fragment stage: Linked fragment stage:
@ -147,10 +142,7 @@ gl_FragCoord origin is upper left
0:? 'i' ( temp structure{ temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) 0:? 'i' ( temp structure{ temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
0:13 Constant: 0:13 Constant:
0:13 0 (const int) 0:13 0 (const int)
0:13 v: direct index for structure ( temp 2-component vector of float) 0:? 'i.v' (layout( location=0) in 2-component vector of float)
0:13 'i' (layout( location=0) in structure{ temp 2-component vector of float v, flat temp 2-component vector of int i2})
0:13 Constant:
0:13 0 (const int)
0:13 move second child to first child ( temp 4-component vector of float) 0:13 move second child to first child ( temp 4-component vector of float)
0:13 fragCoord: direct index for structure ( temp 4-component vector of float) 0:13 fragCoord: direct index for structure ( temp 4-component vector of float)
0:? 'i' ( temp structure{ temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) 0:? 'i' ( temp structure{ temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
@ -162,10 +154,7 @@ gl_FragCoord origin is upper left
0:? 'i' ( temp structure{ temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2}) 0:? 'i' ( temp structure{ temp 2-component vector of float v, temp 4-component vector of float fragCoord, temp 2-component vector of int i2})
0:13 Constant: 0:13 Constant:
0:13 2 (const int) 0:13 2 (const int)
0:13 i2: direct index for structure ( flat temp 2-component vector of int) 0:? 'i.i2' (layout( location=1) flat in 2-component vector of int)
0:13 'i' (layout( location=0) in structure{ temp 2-component vector of float v, flat temp 2-component vector of int i2})
0:13 Constant:
0:13 1 (const int)
0:13 move second child to first child ( temp 4-component vector of float) 0:13 move second child to first child ( temp 4-component vector of float)
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:13 Function Call: @PixelShaderFunction(struct-InParam-vf2-vf4-vi21; ( temp 4-component vector of float) 0:13 Function Call: @PixelShaderFunction(struct-InParam-vf2-vf4-vi21; ( temp 4-component vector of float)
@ -173,16 +162,17 @@ gl_FragCoord origin is upper left
0:? Linker Objects 0:? Linker Objects
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:? 'i.fragCoord' ( in 4-component vector of float FragCoord) 0:? 'i.fragCoord' ( in 4-component vector of float FragCoord)
0:? 'i' (layout( location=0) in structure{ temp 2-component vector of float v, flat temp 2-component vector of int i2}) 0:? 'i.v' (layout( location=0) in 2-component vector of float)
0:? 'i.i2' (layout( location=1) flat in 2-component vector of int)
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80001 // Generated by (magic number): 80001
// Id's are bound by 77 // Id's are bound by 74
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "PixelShaderFunction" 56 63 73 EntryPoint Fragment 4 "PixelShaderFunction" 55 60 65 70
ExecutionMode 4 OriginUpperLeft ExecutionMode 4 OriginUpperLeft
Source HLSL 500 Source HLSL 500
Name 4 "PixelShaderFunction" Name 4 "PixelShaderFunction"
@ -200,17 +190,16 @@ gl_FragCoord origin is upper left
Name 40 "ret2" Name 40 "ret2"
Name 41 "param" Name 41 "param"
Name 53 "i" Name 53 "i"
Name 54 "InParam" Name 55 "i.v"
MemberName 54(InParam) 0 "v" Name 60 "i.fragCoord"
MemberName 54(InParam) 1 "i2" Name 65 "i.i2"
Name 56 "i" Name 70 "@entryPointOutput"
Name 63 "i.fragCoord" Name 71 "param"
Name 73 "@entryPointOutput" Decorate 55(i.v) Location 0
Name 74 "param" Decorate 60(i.fragCoord) BuiltIn FragCoord
MemberDecorate 54(InParam) 1 Flat Decorate 65(i.i2) Flat
Decorate 56(i) Location 0 Decorate 65(i.i2) Location 1
Decorate 63(i.fragCoord) BuiltIn FragCoord Decorate 70(@entryPointOutput) Location 0
Decorate 73(@entryPointOutput) Location 0
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeFloat 32 6: TypeFloat 32
@ -229,37 +218,34 @@ gl_FragCoord origin is upper left
27: 9(int) Constant 1 27: 9(int) Constant 1
28: 22(int) Constant 0 28: 22(int) Constant 0
44: TypePointer Function 8(fvec4) 44: TypePointer Function 8(fvec4)
54(InParam): TypeStruct 7(fvec2) 10(ivec2) 54: TypePointer Input 7(fvec2)
55: TypePointer Input 54(InParam) 55(i.v): 54(ptr) Variable Input
56(i): 55(ptr) Variable Input 57: TypePointer Function 7(fvec2)
57: TypePointer Input 7(fvec2) 59: TypePointer Input 8(fvec4)
60: TypePointer Function 7(fvec2) 60(i.fragCoord): 59(ptr) Variable Input
62: TypePointer Input 8(fvec4) 63: 9(int) Constant 2
63(i.fragCoord): 62(ptr) Variable Input 64: TypePointer Input 10(ivec2)
66: 9(int) Constant 2 65(i.i2): 64(ptr) Variable Input
67: TypePointer Input 10(ivec2) 67: TypePointer Function 10(ivec2)
70: TypePointer Function 10(ivec2) 69: TypePointer Output 8(fvec4)
72: TypePointer Output 8(fvec4) 70(@entryPointOutput): 69(ptr) Variable Output
73(@entryPointOutput): 72(ptr) Variable Output
4(PixelShaderFunction): 2 Function None 3 4(PixelShaderFunction): 2 Function None 3
5: Label 5: Label
53(i): 12(ptr) Variable Function 53(i): 12(ptr) Variable Function
74(param): 12(ptr) Variable Function 71(param): 12(ptr) Variable Function
58: 57(ptr) AccessChain 56(i) 21 56: 7(fvec2) Load 55(i.v)
59: 7(fvec2) Load 58 58: 57(ptr) AccessChain 53(i) 21
61: 60(ptr) AccessChain 53(i) 21 Store 58 56
Store 61 59 61: 8(fvec4) Load 60(i.fragCoord)
64: 8(fvec4) Load 63(i.fragCoord) 62: 44(ptr) AccessChain 53(i) 27
65: 44(ptr) AccessChain 53(i) 27 Store 62 61
Store 65 64 66: 10(ivec2) Load 65(i.i2)
68: 67(ptr) AccessChain 56(i) 27 68: 67(ptr) AccessChain 53(i) 63
69: 10(ivec2) Load 68 Store 68 66
71: 70(ptr) AccessChain 53(i) 66 72: 11(InParam) Load 53(i)
Store 71 69 Store 71(param) 72
75: 11(InParam) Load 53(i) 73: 8(fvec4) FunctionCall 19(@PixelShaderFunction(struct-InParam-vf2-vf4-vi21;) 71(param)
Store 74(param) 75 Store 70(@entryPointOutput) 73
76: 8(fvec4) FunctionCall 19(@PixelShaderFunction(struct-InParam-vf2-vf4-vi21;) 74(param)
Store 73(@entryPointOutput) 76
Return Return
FunctionEnd FunctionEnd
15(fun(struct-InParam-vf2-vf4-vi21;): 6(float) Function None 13 15(fun(struct-InParam-vf2-vf4-vi21;): 6(float) Function None 13

View File

@ -1,12 +1,12 @@
hlsl.multiDescriptorSet.frag hlsl.multiDescriptorSet.frag
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80001 // Generated by (magic number): 80001
// Id's are bound by 95 // Id's are bound by 92
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 78 83 89 EntryPoint Fragment 4 "main" 78 82 86
ExecutionMode 4 OriginUpperLeft ExecutionMode 4 OriginUpperLeft
Source HLSL 500 Source HLSL 500
Name 4 "main" Name 4 "main"
@ -30,13 +30,11 @@ hlsl.multiDescriptorSet.frag
Name 63 "samLinearA" Name 63 "samLinearA"
Name 76 "input" Name 76 "input"
Name 78 "input.Pos" Name 78 "input.Pos"
Name 81 "PS_INPUT" Name 82 "input.Tex"
MemberName 81(PS_INPUT) 0 "Tex" Name 86 "@entryPointOutput"
Name 83 "input" Name 87 "param"
Name 89 "@entryPointOutput" Name 90 "txDiffuseB"
Name 90 "param" Name 91 "samLinearB"
Name 93 "txDiffuseB"
Name 94 "samLinearB"
MemberDecorate 23(cbChangesEveryFrame) 0 RowMajor MemberDecorate 23(cbChangesEveryFrame) 0 RowMajor
MemberDecorate 23(cbChangesEveryFrame) 0 Offset 0 MemberDecorate 23(cbChangesEveryFrame) 0 Offset 0
MemberDecorate 23(cbChangesEveryFrame) 0 MatrixStride 16 MemberDecorate 23(cbChangesEveryFrame) 0 MatrixStride 16
@ -61,12 +59,12 @@ hlsl.multiDescriptorSet.frag
Decorate 63(samLinearA) DescriptorSet 0 Decorate 63(samLinearA) DescriptorSet 0
Decorate 63(samLinearA) Binding 1 Decorate 63(samLinearA) Binding 1
Decorate 78(input.Pos) BuiltIn FragCoord Decorate 78(input.Pos) BuiltIn FragCoord
Decorate 83(input) Location 0 Decorate 82(input.Tex) Location 0
Decorate 89(@entryPointOutput) Location 0 Decorate 86(@entryPointOutput) Location 0
Decorate 93(txDiffuseB) DescriptorSet 1 Decorate 90(txDiffuseB) DescriptorSet 1
Decorate 93(txDiffuseB) Binding 0 Decorate 90(txDiffuseB) Binding 0
Decorate 94(samLinearB) DescriptorSet 1 Decorate 91(samLinearB) DescriptorSet 1
Decorate 94(samLinearB) Binding 1 Decorate 91(samLinearB) Binding 1
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeFloat 32 6: TypeFloat 32
@ -105,29 +103,26 @@ hlsl.multiDescriptorSet.frag
70: TypePointer Uniform 7(fvec4) 70: TypePointer Uniform 7(fvec4)
77: TypePointer Input 7(fvec4) 77: TypePointer Input 7(fvec4)
78(input.Pos): 77(ptr) Variable Input 78(input.Pos): 77(ptr) Variable Input
81(PS_INPUT): TypeStruct 8(fvec2) 81: TypePointer Input 8(fvec2)
82: TypePointer Input 81(PS_INPUT) 82(input.Tex): 81(ptr) Variable Input
83(input): 82(ptr) Variable Input 85: TypePointer Output 7(fvec4)
84: TypePointer Input 8(fvec2) 86(@entryPointOutput): 85(ptr) Variable Output
88: TypePointer Output 7(fvec4) 90(txDiffuseB): 58(ptr) Variable UniformConstant
89(@entryPointOutput): 88(ptr) Variable Output 91(samLinearB): 62(ptr) Variable UniformConstant
93(txDiffuseB): 58(ptr) Variable UniformConstant
94(samLinearB): 62(ptr) Variable UniformConstant
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
76(input): 10(ptr) Variable Function 76(input): 10(ptr) Variable Function
90(param): 10(ptr) Variable Function 87(param): 10(ptr) Variable Function
79: 7(fvec4) Load 78(input.Pos) 79: 7(fvec4) Load 78(input.Pos)
80: 29(ptr) AccessChain 76(input) 21 80: 29(ptr) AccessChain 76(input) 21
Store 80 79 Store 80 79
85: 84(ptr) AccessChain 83(input) 21 83: 8(fvec2) Load 82(input.Tex)
86: 8(fvec2) Load 85 84: 53(ptr) AccessChain 76(input) 52
87: 53(ptr) AccessChain 76(input) 52 Store 84 83
Store 87 86 88: 9(PS_INPUT) Load 76(input)
91: 9(PS_INPUT) Load 76(input) Store 87(param) 88
Store 90(param) 91 89: 7(fvec4) FunctionCall 13(@main(struct-PS_INPUT-vf4-vf21;) 87(param)
92: 7(fvec4) FunctionCall 13(@main(struct-PS_INPUT-vf4-vf21;) 90(param) Store 86(@entryPointOutput) 89
Store 89(@entryPointOutput) 92
Return Return
FunctionEnd FunctionEnd
13(@main(struct-PS_INPUT-vf4-vf21;): 7(fvec4) Function None 11 13(@main(struct-PS_INPUT-vf4-vf21;): 7(fvec4) Function None 11

View File

@ -149,17 +149,14 @@ Shader version: 500
0:29 Constant: 0:29 Constant:
0:29 0 (const int) 0:29 0 (const int)
0:29 move second child to first child ( temp 2-component vector of float) 0:29 move second child to first child ( temp 2-component vector of float)
0:29 texCoord: direct index for structure ( temp 2-component vector of float) 0:? '@entryPointOutput.texCoord' (layout( location=0) out 2-component vector of float)
0:29 '@entryPointOutput' (layout( location=0) out structure{ temp 2-component vector of float texCoord})
0:29 Constant:
0:29 0 (const int)
0:29 texCoord: direct index for structure ( temp 2-component vector of float) 0:29 texCoord: direct index for structure ( temp 2-component vector of float)
0:29 'flattenTemp' ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) 0:29 'flattenTemp' ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord})
0:29 Constant: 0:29 Constant:
0:29 1 (const int) 0:29 1 (const int)
0:? Linker Objects 0:? Linker Objects
0:? '@entryPointOutput.position' ( out 4-component vector of float Position) 0:? '@entryPointOutput.position' ( out 4-component vector of float Position)
0:? '@entryPointOutput' (layout( location=0) out structure{ temp 2-component vector of float texCoord}) 0:? '@entryPointOutput.texCoord' (layout( location=0) out 2-component vector of float)
Linked vertex stage: Linked vertex stage:
@ -315,26 +312,23 @@ Shader version: 500
0:29 Constant: 0:29 Constant:
0:29 0 (const int) 0:29 0 (const int)
0:29 move second child to first child ( temp 2-component vector of float) 0:29 move second child to first child ( temp 2-component vector of float)
0:29 texCoord: direct index for structure ( temp 2-component vector of float) 0:? '@entryPointOutput.texCoord' (layout( location=0) out 2-component vector of float)
0:29 '@entryPointOutput' (layout( location=0) out structure{ temp 2-component vector of float texCoord})
0:29 Constant:
0:29 0 (const int)
0:29 texCoord: direct index for structure ( temp 2-component vector of float) 0:29 texCoord: direct index for structure ( temp 2-component vector of float)
0:29 'flattenTemp' ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord}) 0:29 'flattenTemp' ( temp structure{ temp 4-component vector of float position, temp 2-component vector of float texCoord})
0:29 Constant: 0:29 Constant:
0:29 1 (const int) 0:29 1 (const int)
0:? Linker Objects 0:? Linker Objects
0:? '@entryPointOutput.position' ( out 4-component vector of float Position) 0:? '@entryPointOutput.position' ( out 4-component vector of float Position)
0:? '@entryPointOutput' (layout( location=0) out structure{ temp 2-component vector of float texCoord}) 0:? '@entryPointOutput.texCoord' (layout( location=0) out 2-component vector of float)
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80001 // Generated by (magic number): 80001
// Id's are bound by 123 // Id's are bound by 120
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 108 116 EntryPoint Vertex 4 "main" 108 115
Source HLSL 500 Source HLSL 500
Name 4 "main" Name 4 "main"
Name 9 "VertexOut" Name 9 "VertexOut"
@ -360,11 +354,9 @@ Shader version: 500
Name 98 "v5" Name 98 "v5"
Name 105 "flattenTemp" Name 105 "flattenTemp"
Name 108 "@entryPointOutput.position" Name 108 "@entryPointOutput.position"
Name 114 "VertexOut" Name 115 "@entryPointOutput.texCoord"
MemberName 114(VertexOut) 0 "texCoord"
Name 116 "@entryPointOutput"
Decorate 108(@entryPointOutput.position) BuiltIn Position Decorate 108(@entryPointOutput.position) BuiltIn Position
Decorate 116(@entryPointOutput) Location 0 Decorate 115(@entryPointOutput.texCoord) Location 0
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeFloat 32 6: TypeFloat 32
@ -395,12 +387,10 @@ Shader version: 500
109: TypeInt 32 1 109: TypeInt 32 1
110: 109(int) Constant 0 110: 109(int) Constant 0
111: TypePointer Function 7(fvec4) 111: TypePointer Function 7(fvec4)
114(VertexOut): TypeStruct 8(fvec2) 114: TypePointer Output 8(fvec2)
115: TypePointer Output 114(VertexOut) 115(@entryPointOutput.texCoord): 114(ptr) Variable Output
116(@entryPointOutput): 115(ptr) Variable Output 116: 109(int) Constant 1
117: 109(int) Constant 1 117: TypePointer Function 8(fvec2)
118: TypePointer Function 8(fvec2)
121: TypePointer Output 8(fvec2)
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
105(flattenTemp): 87(ptr) Variable Function 105(flattenTemp): 87(ptr) Variable Function
@ -409,10 +399,9 @@ Shader version: 500
112: 111(ptr) AccessChain 105(flattenTemp) 110 112: 111(ptr) AccessChain 105(flattenTemp) 110
113: 7(fvec4) Load 112 113: 7(fvec4) Load 112
Store 108(@entryPointOutput.position) 113 Store 108(@entryPointOutput.position) 113
119: 118(ptr) AccessChain 105(flattenTemp) 117 118: 117(ptr) AccessChain 105(flattenTemp) 116
120: 8(fvec2) Load 119 119: 8(fvec2) Load 118
122: 121(ptr) AccessChain 116(@entryPointOutput) 110 Store 115(@entryPointOutput.texCoord) 119
Store 122 120
Return Return
FunctionEnd FunctionEnd
11(r0():9(VertexOut) Function None 10 11(r0():9(VertexOut) Function None 10

View File

@ -51,10 +51,7 @@ output primitive = line_strip
0:15 Constant: 0:15 Constant:
0:15 4 (const int) 0:15 4 (const int)
0:15 move second child to first child ( temp int) 0:15 move second child to first child ( temp int)
0:15 ii: direct index for structure ( temp int) 0:? 'OutputStream.ii' (layout( location=0) out int)
0:15 'OutputStream' (layout( location=0) out structure{ temp int ii})
0:15 Constant:
0:15 0 (const int)
0:15 ii: direct index for structure ( temp int) 0:15 ii: direct index for structure ( temp int)
0:15 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) 0:15 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii})
0:15 Constant: 0:15 Constant:
@ -74,7 +71,7 @@ output primitive = line_strip
0:? 'OutputStream.clip0' ( out float Position) 0:? 'OutputStream.clip0' ( out float Position)
0:? 'OutputStream.vpai' ( out uint ViewportIndex) 0:? 'OutputStream.vpai' ( out uint ViewportIndex)
0:? 'OutputStream.rtai' ( out uint Layer) 0:? 'OutputStream.rtai' ( out uint Layer)
0:? 'OutputStream' (layout( location=0) out structure{ temp int ii}) 0:? 'OutputStream.ii' (layout( location=0) out int)
0:? 'OutputStream.clip0' ( out 1-element array of float ClipDistance) 0:? 'OutputStream.clip0' ( out 1-element array of float ClipDistance)
0:? 'OutputStream.cull0' ( out 1-element array of float CullDistance) 0:? 'OutputStream.cull0' ( out 1-element array of float CullDistance)
@ -134,10 +131,7 @@ output primitive = line_strip
0:15 Constant: 0:15 Constant:
0:15 4 (const int) 0:15 4 (const int)
0:15 move second child to first child ( temp int) 0:15 move second child to first child ( temp int)
0:15 ii: direct index for structure ( temp int) 0:? 'OutputStream.ii' (layout( location=0) out int)
0:15 'OutputStream' (layout( location=0) out structure{ temp int ii})
0:15 Constant:
0:15 0 (const int)
0:15 ii: direct index for structure ( temp int) 0:15 ii: direct index for structure ( temp int)
0:15 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii}) 0:15 's' ( temp structure{ temp float clip0, temp float clip0, temp float cull0, temp uint vpai, temp uint rtai, temp int ii})
0:15 Constant: 0:15 Constant:
@ -157,13 +151,13 @@ output primitive = line_strip
0:? 'OutputStream.clip0' ( out float Position) 0:? 'OutputStream.clip0' ( out float Position)
0:? 'OutputStream.vpai' ( out uint ViewportIndex) 0:? 'OutputStream.vpai' ( out uint ViewportIndex)
0:? 'OutputStream.rtai' ( out uint Layer) 0:? 'OutputStream.rtai' ( out uint Layer)
0:? 'OutputStream' (layout( location=0) out structure{ temp int ii}) 0:? 'OutputStream.ii' (layout( location=0) out int)
0:? 'OutputStream.clip0' ( out 1-element array of float ClipDistance) 0:? 'OutputStream.clip0' ( out 1-element array of float ClipDistance)
0:? 'OutputStream.cull0' ( out 1-element array of float CullDistance) 0:? 'OutputStream.cull0' ( out 1-element array of float CullDistance)
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80001 // Generated by (magic number): 80001
// Id's are bound by 68 // Id's are bound by 65
Capability Geometry Capability Geometry
Capability ClipDistance Capability ClipDistance
@ -171,7 +165,7 @@ output primitive = line_strip
Capability MultiViewport Capability MultiViewport
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Geometry 4 "main" 20 29 34 40 45 51 60 EntryPoint Geometry 4 "main" 20 29 34 40 45 50 57
ExecutionMode 4 Triangles ExecutionMode 4 Triangles
ExecutionMode 4 Invocations 1 ExecutionMode 4 Invocations 1
ExecutionMode 4 OutputLineStrip ExecutionMode 4 OutputLineStrip
@ -194,21 +188,19 @@ output primitive = line_strip
Name 34 "OutputStream.cull0" Name 34 "OutputStream.cull0"
Name 40 "OutputStream.vpai" Name 40 "OutputStream.vpai"
Name 45 "OutputStream.rtai" Name 45 "OutputStream.rtai"
Name 49 "S" Name 50 "OutputStream.ii"
MemberName 49(S) 0 "ii" Name 55 "VertexID"
Name 51 "OutputStream" Name 57 "VertexID"
Name 58 "VertexID" Name 59 "OutputStream"
Name 60 "VertexID" Name 60 "param"
Name 62 "OutputStream" Name 62 "param"
Name 63 "param"
Name 65 "param"
Decorate 20(OutputStream.clip0) BuiltIn Position Decorate 20(OutputStream.clip0) BuiltIn Position
Decorate 29(OutputStream.clip0) BuiltIn ClipDistance Decorate 29(OutputStream.clip0) BuiltIn ClipDistance
Decorate 34(OutputStream.cull0) BuiltIn CullDistance Decorate 34(OutputStream.cull0) BuiltIn CullDistance
Decorate 40(OutputStream.vpai) BuiltIn ViewportIndex Decorate 40(OutputStream.vpai) BuiltIn ViewportIndex
Decorate 45(OutputStream.rtai) BuiltIn Layer Decorate 45(OutputStream.rtai) BuiltIn Layer
Decorate 51(OutputStream) Location 0 Decorate 50(OutputStream.ii) Location 0
Decorate 60(VertexID) Location 0 Decorate 57(VertexID) Location 0
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeInt 32 0 6: TypeInt 32 0
@ -237,27 +229,25 @@ output primitive = line_strip
42: TypePointer Function 6(int) 42: TypePointer Function 6(int)
45(OutputStream.rtai): 39(ptr) Variable Output 45(OutputStream.rtai): 39(ptr) Variable Output
46: 11(int) Constant 4 46: 11(int) Constant 4
49(S): TypeStruct 11(int) 49: TypePointer Output 11(int)
50: TypePointer Output 49(S) 50(OutputStream.ii): 49(ptr) Variable Output
51(OutputStream): 50(ptr) Variable Output 51: 11(int) Constant 5
52: 11(int) Constant 5 52: TypePointer Function 11(int)
53: TypePointer Function 11(int) 56: TypePointer Input 8
56: TypePointer Output 11(int) 57(VertexID): 56(ptr) Variable Input
59: TypePointer Input 8
60(VertexID): 59(ptr) Variable Input
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
58(VertexID): 9(ptr) Variable Function 55(VertexID): 9(ptr) Variable Function
62(OutputStream): 13(ptr) Variable Function 59(OutputStream): 13(ptr) Variable Function
63(param): 9(ptr) Variable Function 60(param): 9(ptr) Variable Function
65(param): 13(ptr) Variable Function 62(param): 13(ptr) Variable Function
61: 8 Load 60(VertexID) 58: 8 Load 57(VertexID)
Store 58(VertexID) 61 Store 55(VertexID) 58
64: 8 Load 58(VertexID) 61: 8 Load 55(VertexID)
Store 63(param) 64 Store 60(param) 61
66: 2 FunctionCall 17(@main(u1[3];struct-S-f1-f1-f1-u1-u1-i11;) 63(param) 65(param) 63: 2 FunctionCall 17(@main(u1[3];struct-S-f1-f1-f1-u1-u1-i11;) 60(param) 62(param)
67: 12(S) Load 65(param) 64: 12(S) Load 62(param)
Store 62(OutputStream) 67 Store 59(OutputStream) 64
Return Return
FunctionEnd FunctionEnd
17(@main(u1[3];struct-S-f1-f1-f1-u1-u1-i11;): 2 Function None 14 17(@main(u1[3];struct-S-f1-f1-f1-u1-u1-i11;): 2 Function None 14
@ -282,10 +272,9 @@ output primitive = line_strip
47: 42(ptr) AccessChain 21(s) 46 47: 42(ptr) AccessChain 21(s) 46
48: 6(int) Load 47 48: 6(int) Load 47
Store 45(OutputStream.rtai) 48 Store 45(OutputStream.rtai) 48
54: 53(ptr) AccessChain 21(s) 52 53: 52(ptr) AccessChain 21(s) 51
55: 11(int) Load 54 54: 11(int) Load 53
57: 56(ptr) AccessChain 51(OutputStream) 22 Store 50(OutputStream.ii) 54
Store 57 55
EmitVertex EmitVertex
Return Return
FunctionEnd FunctionEnd

View File

@ -87,16 +87,13 @@ Shader version: 500
0:10 Constant: 0:10 Constant:
0:10 3 (const int) 0:10 3 (const int)
0:10 move second child to first child ( temp int) 0:10 move second child to first child ( temp int)
0:10 ii: direct index for structure ( temp int) 0:? '@entryPointOutput.ii' (layout( location=0) out int)
0:10 '@entryPointOutput' (layout( location=0) out structure{ temp int ii})
0:10 Constant:
0:10 0 (const int)
0:10 ii: direct index for structure ( temp int) 0:10 ii: direct index for structure ( temp int)
0:10 'flattenTemp' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) 0:10 'flattenTemp' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii})
0:10 Constant: 0:10 Constant:
0:10 4 (const int) 0:10 4 (const int)
0:? Linker Objects 0:? Linker Objects
0:? '@entryPointOutput' (layout( location=0) out structure{ temp int ii}) 0:? '@entryPointOutput.ii' (layout( location=0) out int)
0:? 'ins.ii' ( in int InstanceIndex) 0:? 'ins.ii' ( in int InstanceIndex)
0:? 'ins.clip0' (layout( location=0) in float) 0:? 'ins.clip0' (layout( location=0) in float)
0:? 'ins.clip1' (layout( location=1) in float) 0:? 'ins.clip1' (layout( location=1) in float)
@ -197,16 +194,13 @@ Shader version: 500
0:10 Constant: 0:10 Constant:
0:10 3 (const int) 0:10 3 (const int)
0:10 move second child to first child ( temp int) 0:10 move second child to first child ( temp int)
0:10 ii: direct index for structure ( temp int) 0:? '@entryPointOutput.ii' (layout( location=0) out int)
0:10 '@entryPointOutput' (layout( location=0) out structure{ temp int ii})
0:10 Constant:
0:10 0 (const int)
0:10 ii: direct index for structure ( temp int) 0:10 ii: direct index for structure ( temp int)
0:10 'flattenTemp' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii}) 0:10 'flattenTemp' ( temp structure{ temp float clip0, temp float clip1, temp float cull0, temp float cull1, temp int ii})
0:10 Constant: 0:10 Constant:
0:10 4 (const int) 0:10 4 (const int)
0:? Linker Objects 0:? Linker Objects
0:? '@entryPointOutput' (layout( location=0) out structure{ temp int ii}) 0:? '@entryPointOutput.ii' (layout( location=0) out int)
0:? 'ins.ii' ( in int InstanceIndex) 0:? 'ins.ii' ( in int InstanceIndex)
0:? 'ins.clip0' (layout( location=0) in float) 0:? 'ins.clip0' (layout( location=0) in float)
0:? 'ins.clip1' (layout( location=1) in float) 0:? 'ins.clip1' (layout( location=1) in float)
@ -217,14 +211,14 @@ Shader version: 500
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80001 // Generated by (magic number): 80001
// Id's are bound by 73 // Id's are bound by 70
Capability Shader Capability Shader
Capability ClipDistance Capability ClipDistance
Capability CullDistance Capability CullDistance
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 21 26 30 34 39 51 59 68 EntryPoint Vertex 4 "main" 21 26 30 34 39 51 59 67
Source HLSL 500 Source HLSL 500
Name 4 "main" Name 4 "main"
Name 8 "S" Name 8 "S"
@ -246,9 +240,7 @@ Shader version: 500
Name 44 "param" Name 44 "param"
Name 51 "@entryPointOutput.clip1" Name 51 "@entryPointOutput.clip1"
Name 59 "@entryPointOutput.cull1" Name 59 "@entryPointOutput.cull1"
Name 66 "S" Name 67 "@entryPointOutput.ii"
MemberName 66(S) 0 "ii"
Name 68 "@entryPointOutput"
Decorate 21(ins.clip0) Location 0 Decorate 21(ins.clip0) Location 0
Decorate 26(ins.clip1) Location 1 Decorate 26(ins.clip1) Location 1
Decorate 30(ins.cull0) Location 2 Decorate 30(ins.cull0) Location 2
@ -256,7 +248,7 @@ Shader version: 500
Decorate 39(ins.ii) BuiltIn InstanceIndex Decorate 39(ins.ii) BuiltIn InstanceIndex
Decorate 51(@entryPointOutput.clip1) BuiltIn ClipDistance Decorate 51(@entryPointOutput.clip1) BuiltIn ClipDistance
Decorate 59(@entryPointOutput.cull1) BuiltIn CullDistance Decorate 59(@entryPointOutput.cull1) BuiltIn CullDistance
Decorate 68(@entryPointOutput) Location 0 Decorate 67(@entryPointOutput.ii) Location 0
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeFloat 32 6: TypeFloat 32
@ -285,10 +277,8 @@ Shader version: 500
51(@entryPointOutput.clip1): 50(ptr) Variable Output 51(@entryPointOutput.clip1): 50(ptr) Variable Output
54: TypePointer Output 6(float) 54: TypePointer Output 6(float)
59(@entryPointOutput.cull1): 50(ptr) Variable Output 59(@entryPointOutput.cull1): 50(ptr) Variable Output
66(S): TypeStruct 7(int) 66: TypePointer Output 7(int)
67: TypePointer Output 66(S) 67(@entryPointOutput.ii): 66(ptr) Variable Output
68(@entryPointOutput): 67(ptr) Variable Output
71: TypePointer Output 7(int)
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
18(ins): 9(ptr) Variable Function 18(ins): 9(ptr) Variable Function
@ -329,10 +319,9 @@ Shader version: 500
64: 6(float) Load 63 64: 6(float) Load 63
65: 54(ptr) AccessChain 59(@entryPointOutput.cull1) 25 65: 54(ptr) AccessChain 59(@entryPointOutput.cull1) 25
Store 65 64 Store 65 64
69: 41(ptr) AccessChain 43(flattenTemp) 37 68: 41(ptr) AccessChain 43(flattenTemp) 37
70: 7(int) Load 69 69: 7(int) Load 68
72: 71(ptr) AccessChain 68(@entryPointOutput) 19 Store 67(@entryPointOutput.ii) 69
Store 72 70
Return Return
FunctionEnd FunctionEnd
12(@main(struct-S-f1-f1-f1-f1-i11;): 8(S) Function None 10 12(@main(struct-S-f1-f1-f1-f1-i11;): 8(S) Function None 10

View File

@ -43,37 +43,25 @@ gl_FragCoord origin is upper left
0:? 's' ( temp structure{ temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) 0:? 's' ( temp structure{ temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
0:40 Constant: 0:40 Constant:
0:40 0 (const int) 0:40 0 (const int)
0:40 a: direct index for structure ( smooth temp 4-component vector of float) 0:? 's.a' (layout( location=1) smooth in 4-component vector of float)
0:40 's' (layout( location=1) in structure{ smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, flat temp bool ff2, flat temp bool ff3, temp 4-component vector of float ff4})
0:40 Constant:
0:40 0 (const int)
0:40 move second child to first child ( temp bool) 0:40 move second child to first child ( temp bool)
0:40 b: direct index for structure ( temp bool) 0:40 b: direct index for structure ( temp bool)
0:? 's' ( temp structure{ temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) 0:? 's' ( temp structure{ temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
0:40 Constant: 0:40 Constant:
0:40 1 (const int) 0:40 1 (const int)
0:40 b: direct index for structure ( flat temp bool) 0:? 's.b' (layout( location=2) flat in bool)
0:40 's' (layout( location=1) in structure{ smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, flat temp bool ff2, flat temp bool ff3, temp 4-component vector of float ff4})
0:40 Constant:
0:40 1 (const int)
0:40 move second child to first child ( temp 1-component vector of float) 0:40 move second child to first child ( temp 1-component vector of float)
0:40 c: direct index for structure ( temp 1-component vector of float) 0:40 c: direct index for structure ( temp 1-component vector of float)
0:? 's' ( temp structure{ temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) 0:? 's' ( temp structure{ temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
0:40 Constant: 0:40 Constant:
0:40 2 (const int) 0:40 2 (const int)
0:40 c: direct index for structure ( centroid noperspective temp 1-component vector of float) 0:? 's.c' (layout( location=3) centroid noperspective in 1-component vector of float)
0:40 's' (layout( location=1) in structure{ smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, flat temp bool ff2, flat temp bool ff3, temp 4-component vector of float ff4})
0:40 Constant:
0:40 2 (const int)
0:40 move second child to first child ( temp 2-component vector of float) 0:40 move second child to first child ( temp 2-component vector of float)
0:40 d: direct index for structure ( temp 2-component vector of float) 0:40 d: direct index for structure ( temp 2-component vector of float)
0:? 's' ( temp structure{ temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) 0:? 's' ( temp structure{ temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
0:40 Constant: 0:40 Constant:
0:40 3 (const int) 0:40 3 (const int)
0:40 d: direct index for structure ( centroid sample temp 2-component vector of float) 0:? 's.d' (layout( location=4) centroid sample in 2-component vector of float)
0:40 's' (layout( location=1) in structure{ smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, flat temp bool ff2, flat temp bool ff3, temp 4-component vector of float ff4})
0:40 Constant:
0:40 3 (const int)
0:40 move second child to first child ( temp bool) 0:40 move second child to first child ( temp bool)
0:40 ff1: direct index for structure ( temp bool) 0:40 ff1: direct index for structure ( temp bool)
0:? 's' ( temp structure{ temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) 0:? 's' ( temp structure{ temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
@ -85,28 +73,19 @@ gl_FragCoord origin is upper left
0:? 's' ( temp structure{ temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) 0:? 's' ( temp structure{ temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
0:40 Constant: 0:40 Constant:
0:40 5 (const int) 0:40 5 (const int)
0:40 ff2: direct index for structure ( flat temp bool) 0:? 's.ff2' (layout( location=5) flat in bool)
0:40 's' (layout( location=1) in structure{ smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, flat temp bool ff2, flat temp bool ff3, temp 4-component vector of float ff4})
0:40 Constant:
0:40 4 (const int)
0:40 move second child to first child ( temp bool) 0:40 move second child to first child ( temp bool)
0:40 ff3: direct index for structure ( temp bool) 0:40 ff3: direct index for structure ( temp bool)
0:? 's' ( temp structure{ temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) 0:? 's' ( temp structure{ temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
0:40 Constant: 0:40 Constant:
0:40 6 (const int) 0:40 6 (const int)
0:40 ff3: direct index for structure ( flat temp bool) 0:? 's.ff3' (layout( location=6) flat in bool)
0:40 's' (layout( location=1) in structure{ smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, flat temp bool ff2, flat temp bool ff3, temp 4-component vector of float ff4})
0:40 Constant:
0:40 5 (const int)
0:40 move second child to first child ( temp 4-component vector of float) 0:40 move second child to first child ( temp 4-component vector of float)
0:40 ff4: direct index for structure ( temp 4-component vector of float) 0:40 ff4: direct index for structure ( temp 4-component vector of float)
0:? 's' ( temp structure{ temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) 0:? 's' ( temp structure{ temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
0:40 Constant: 0:40 Constant:
0:40 7 (const int) 0:40 7 (const int)
0:40 ff4: direct index for structure ( temp 4-component vector of float) 0:? 's.ff4' (layout( location=7) in 4-component vector of float)
0:40 's' (layout( location=1) in structure{ smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, flat temp bool ff2, flat temp bool ff3, temp 4-component vector of float ff4})
0:40 Constant:
0:40 6 (const int)
0:40 move second child to first child ( temp 4-component vector of float) 0:40 move second child to first child ( temp 4-component vector of float)
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:40 Function Call: @PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; ( temp 4-component vector of float) 0:40 Function Call: @PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; ( temp 4-component vector of float)
@ -118,7 +97,13 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:? 'input' (layout( location=0) in 4-component vector of float) 0:? 'input' (layout( location=0) in 4-component vector of float)
0:? 's.ff1' ( flat in bool Face) 0:? 's.ff1' ( flat in bool Face)
0:? 's' (layout( location=1) in structure{ smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, flat temp bool ff2, flat temp bool ff3, temp 4-component vector of float ff4}) 0:? 's.a' (layout( location=1) smooth in 4-component vector of float)
0:? 's.b' (layout( location=2) flat in bool)
0:? 's.c' (layout( location=3) centroid noperspective in 1-component vector of float)
0:? 's.d' (layout( location=4) centroid sample in 2-component vector of float)
0:? 's.ff2' (layout( location=5) flat in bool)
0:? 's.ff3' (layout( location=6) flat in bool)
0:? 's.ff4' (layout( location=7) in 4-component vector of float)
Linked fragment stage: Linked fragment stage:
@ -164,37 +149,25 @@ gl_FragCoord origin is upper left
0:? 's' ( temp structure{ temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) 0:? 's' ( temp structure{ temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
0:40 Constant: 0:40 Constant:
0:40 0 (const int) 0:40 0 (const int)
0:40 a: direct index for structure ( smooth temp 4-component vector of float) 0:? 's.a' (layout( location=1) smooth in 4-component vector of float)
0:40 's' (layout( location=1) in structure{ smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, flat temp bool ff2, flat temp bool ff3, temp 4-component vector of float ff4})
0:40 Constant:
0:40 0 (const int)
0:40 move second child to first child ( temp bool) 0:40 move second child to first child ( temp bool)
0:40 b: direct index for structure ( temp bool) 0:40 b: direct index for structure ( temp bool)
0:? 's' ( temp structure{ temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) 0:? 's' ( temp structure{ temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
0:40 Constant: 0:40 Constant:
0:40 1 (const int) 0:40 1 (const int)
0:40 b: direct index for structure ( flat temp bool) 0:? 's.b' (layout( location=2) flat in bool)
0:40 's' (layout( location=1) in structure{ smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, flat temp bool ff2, flat temp bool ff3, temp 4-component vector of float ff4})
0:40 Constant:
0:40 1 (const int)
0:40 move second child to first child ( temp 1-component vector of float) 0:40 move second child to first child ( temp 1-component vector of float)
0:40 c: direct index for structure ( temp 1-component vector of float) 0:40 c: direct index for structure ( temp 1-component vector of float)
0:? 's' ( temp structure{ temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) 0:? 's' ( temp structure{ temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
0:40 Constant: 0:40 Constant:
0:40 2 (const int) 0:40 2 (const int)
0:40 c: direct index for structure ( centroid noperspective temp 1-component vector of float) 0:? 's.c' (layout( location=3) centroid noperspective in 1-component vector of float)
0:40 's' (layout( location=1) in structure{ smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, flat temp bool ff2, flat temp bool ff3, temp 4-component vector of float ff4})
0:40 Constant:
0:40 2 (const int)
0:40 move second child to first child ( temp 2-component vector of float) 0:40 move second child to first child ( temp 2-component vector of float)
0:40 d: direct index for structure ( temp 2-component vector of float) 0:40 d: direct index for structure ( temp 2-component vector of float)
0:? 's' ( temp structure{ temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) 0:? 's' ( temp structure{ temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
0:40 Constant: 0:40 Constant:
0:40 3 (const int) 0:40 3 (const int)
0:40 d: direct index for structure ( centroid sample temp 2-component vector of float) 0:? 's.d' (layout( location=4) centroid sample in 2-component vector of float)
0:40 's' (layout( location=1) in structure{ smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, flat temp bool ff2, flat temp bool ff3, temp 4-component vector of float ff4})
0:40 Constant:
0:40 3 (const int)
0:40 move second child to first child ( temp bool) 0:40 move second child to first child ( temp bool)
0:40 ff1: direct index for structure ( temp bool) 0:40 ff1: direct index for structure ( temp bool)
0:? 's' ( temp structure{ temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) 0:? 's' ( temp structure{ temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
@ -206,28 +179,19 @@ gl_FragCoord origin is upper left
0:? 's' ( temp structure{ temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) 0:? 's' ( temp structure{ temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
0:40 Constant: 0:40 Constant:
0:40 5 (const int) 0:40 5 (const int)
0:40 ff2: direct index for structure ( flat temp bool) 0:? 's.ff2' (layout( location=5) flat in bool)
0:40 's' (layout( location=1) in structure{ smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, flat temp bool ff2, flat temp bool ff3, temp 4-component vector of float ff4})
0:40 Constant:
0:40 4 (const int)
0:40 move second child to first child ( temp bool) 0:40 move second child to first child ( temp bool)
0:40 ff3: direct index for structure ( temp bool) 0:40 ff3: direct index for structure ( temp bool)
0:? 's' ( temp structure{ temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) 0:? 's' ( temp structure{ temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
0:40 Constant: 0:40 Constant:
0:40 6 (const int) 0:40 6 (const int)
0:40 ff3: direct index for structure ( flat temp bool) 0:? 's.ff3' (layout( location=6) flat in bool)
0:40 's' (layout( location=1) in structure{ smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, flat temp bool ff2, flat temp bool ff3, temp 4-component vector of float ff4})
0:40 Constant:
0:40 5 (const int)
0:40 move second child to first child ( temp 4-component vector of float) 0:40 move second child to first child ( temp 4-component vector of float)
0:40 ff4: direct index for structure ( temp 4-component vector of float) 0:40 ff4: direct index for structure ( temp 4-component vector of float)
0:? 's' ( temp structure{ temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4}) 0:? 's' ( temp structure{ temp 4-component vector of float a, temp bool b, temp 1-component vector of float c, temp 2-component vector of float d, temp bool ff1, temp bool ff2, temp bool ff3, temp 4-component vector of float ff4})
0:40 Constant: 0:40 Constant:
0:40 7 (const int) 0:40 7 (const int)
0:40 ff4: direct index for structure ( temp 4-component vector of float) 0:? 's.ff4' (layout( location=7) in 4-component vector of float)
0:40 's' (layout( location=1) in structure{ smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, flat temp bool ff2, flat temp bool ff3, temp 4-component vector of float ff4})
0:40 Constant:
0:40 6 (const int)
0:40 move second child to first child ( temp 4-component vector of float) 0:40 move second child to first child ( temp 4-component vector of float)
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:40 Function Call: @PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; ( temp 4-component vector of float) 0:40 Function Call: @PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41; ( temp 4-component vector of float)
@ -239,16 +203,22 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:? 'input' (layout( location=0) in 4-component vector of float) 0:? 'input' (layout( location=0) in 4-component vector of float)
0:? 's.ff1' ( flat in bool Face) 0:? 's.ff1' ( flat in bool Face)
0:? 's' (layout( location=1) in structure{ smooth temp 4-component vector of float a, flat temp bool b, centroid noperspective temp 1-component vector of float c, centroid sample temp 2-component vector of float d, flat temp bool ff2, flat temp bool ff3, temp 4-component vector of float ff4}) 0:? 's.a' (layout( location=1) smooth in 4-component vector of float)
0:? 's.b' (layout( location=2) flat in bool)
0:? 's.c' (layout( location=3) centroid noperspective in 1-component vector of float)
0:? 's.d' (layout( location=4) centroid sample in 2-component vector of float)
0:? 's.ff2' (layout( location=5) flat in bool)
0:? 's.ff3' (layout( location=6) flat in bool)
0:? 's.ff4' (layout( location=7) in 4-component vector of float)
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80001 // Generated by (magic number): 80001
// Id's are bound by 105 // Id's are bound by 102
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "PixelShaderFunction" 51 56 79 94 EntryPoint Fragment 4 "PixelShaderFunction" 51 54 59 65 71 76 80 84 87 91
ExecutionMode 4 OriginUpperLeft ExecutionMode 4 OriginUpperLeft
Source HLSL 500 Source HLSL 500
Name 4 "PixelShaderFunction" Name 4 "PixelShaderFunction"
@ -278,49 +248,53 @@ gl_FragCoord origin is upper left
Name 49 "input" Name 49 "input"
Name 51 "input" Name 51 "input"
Name 53 "s" Name 53 "s"
Name 54 "IN_S" Name 54 "s.a"
MemberName 54(IN_S) 0 "a" Name 59 "s.b"
MemberName 54(IN_S) 1 "b" Name 65 "s.c"
MemberName 54(IN_S) 2 "c" Name 71 "s.d"
MemberName 54(IN_S) 3 "d" Name 76 "s.ff1"
MemberName 54(IN_S) 4 "ff2" Name 80 "s.ff2"
MemberName 54(IN_S) 5 "ff3" Name 84 "s.ff3"
MemberName 54(IN_S) 6 "ff4" Name 87 "s.ff4"
Name 56 "s" Name 91 "@entryPointOutput"
Name 79 "s.ff1" Name 92 "param"
Name 94 "@entryPointOutput" Name 94 "param"
Name 95 "param" Name 98 "myS"
Name 97 "param" MemberName 98(myS) 0 "b"
Name 101 "myS" MemberName 98(myS) 1 "c"
MemberName 101(myS) 0 "b" MemberName 98(myS) 2 "a"
MemberName 101(myS) 1 "c" MemberName 98(myS) 3 "d"
MemberName 101(myS) 2 "a" Name 99 "$Global"
MemberName 101(myS) 3 "d" MemberName 99($Global) 0 "s1"
Name 102 "$Global" MemberName 99($Global) 1 "ff5"
MemberName 102($Global) 0 "s1" MemberName 99($Global) 2 "ff6"
MemberName 102($Global) 1 "ff5" Name 101 ""
MemberName 102($Global) 2 "ff6"
Name 104 ""
Decorate 51(input) Location 0 Decorate 51(input) Location 0
MemberDecorate 54(IN_S) 1 Flat Decorate 54(s.a) Location 1
MemberDecorate 54(IN_S) 2 NoPerspective Decorate 59(s.b) Flat
MemberDecorate 54(IN_S) 2 Centroid Decorate 59(s.b) Location 2
MemberDecorate 54(IN_S) 3 Centroid Decorate 65(s.c) NoPerspective
MemberDecorate 54(IN_S) 4 Flat Decorate 65(s.c) Centroid
MemberDecorate 54(IN_S) 5 Flat Decorate 65(s.c) Location 3
Decorate 56(s) Location 1 Decorate 71(s.d) Centroid
Decorate 79(s.ff1) Flat Decorate 71(s.d) Location 4
Decorate 79(s.ff1) BuiltIn FrontFacing Decorate 76(s.ff1) Flat
Decorate 94(@entryPointOutput) Location 0 Decorate 76(s.ff1) BuiltIn FrontFacing
MemberDecorate 101(myS) 0 Offset 0 Decorate 80(s.ff2) Flat
MemberDecorate 101(myS) 1 Offset 4 Decorate 80(s.ff2) Location 5
MemberDecorate 101(myS) 2 Offset 16 Decorate 84(s.ff3) Flat
MemberDecorate 101(myS) 3 Offset 32 Decorate 84(s.ff3) Location 6
MemberDecorate 102($Global) 0 Offset 0 Decorate 87(s.ff4) Location 7
MemberDecorate 102($Global) 1 Offset 1620 Decorate 91(@entryPointOutput) Location 0
MemberDecorate 102($Global) 2 Offset 1636 MemberDecorate 98(myS) 0 Offset 0
Decorate 102($Global) Block MemberDecorate 98(myS) 1 Offset 4
Decorate 104 DescriptorSet 0 MemberDecorate 98(myS) 2 Offset 16
MemberDecorate 98(myS) 3 Offset 32
MemberDecorate 99($Global) 0 Offset 0
MemberDecorate 99($Global) 1 Offset 1620
MemberDecorate 99($Global) 2 Offset 1636
Decorate 99($Global) Block
Decorate 101 DescriptorSet 0
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeFloat 32 6: TypeFloat 32
@ -347,74 +321,71 @@ gl_FragCoord origin is upper left
42: TypePointer Function 41(containEmpty) 42: TypePointer Function 41(containEmpty)
50: TypePointer Input 7(fvec4) 50: TypePointer Input 7(fvec4)
51(input): 50(ptr) Variable Input 51(input): 50(ptr) Variable Input
54(IN_S): TypeStruct 7(fvec4) 9(bool) 6(float) 10(fvec2) 9(bool) 9(bool) 7(fvec4) 54(s.a): 50(ptr) Variable Input
55: TypePointer Input 54(IN_S) 57: 31(int) Constant 1
56(s): 55(ptr) Variable Input 58: TypePointer Input 9(bool)
60: 31(int) Constant 1 59(s.b): 58(ptr) Variable Input
61: TypePointer Input 9(bool) 61: TypePointer Function 9(bool)
64: TypePointer Function 9(bool) 63: 31(int) Constant 2
66: 31(int) Constant 2 64: TypePointer Input 6(float)
67: TypePointer Input 6(float) 65(s.c): 64(ptr) Variable Input
70: TypePointer Function 6(float) 67: TypePointer Function 6(float)
72: 31(int) Constant 3 69: 31(int) Constant 3
73: TypePointer Input 10(fvec2) 70: TypePointer Input 10(fvec2)
76: TypePointer Function 10(fvec2) 71(s.d): 70(ptr) Variable Input
78: 31(int) Constant 4 73: TypePointer Function 10(fvec2)
79(s.ff1): 61(ptr) Variable Input 75: 31(int) Constant 4
82: 31(int) Constant 5 76(s.ff1): 58(ptr) Variable Input
86: 31(int) Constant 6 79: 31(int) Constant 5
93: TypePointer Output 7(fvec4) 80(s.ff2): 58(ptr) Variable Input
94(@entryPointOutput): 93(ptr) Variable Output 83: 31(int) Constant 6
100: TypeInt 32 0 84(s.ff3): 58(ptr) Variable Input
101(myS): TypeStruct 100(int) 100(int) 7(fvec4) 7(fvec4) 87(s.ff4): 50(ptr) Variable Input
102($Global): TypeStruct 101(myS) 6(float) 6(float) 90: TypePointer Output 7(fvec4)
103: TypePointer Uniform 102($Global) 91(@entryPointOutput): 90(ptr) Variable Output
104: 103(ptr) Variable Uniform 97: TypeInt 32 0
98(myS): TypeStruct 97(int) 97(int) 7(fvec4) 7(fvec4)
99($Global): TypeStruct 98(myS) 6(float) 6(float)
100: TypePointer Uniform 99($Global)
101: 100(ptr) Variable Uniform
4(PixelShaderFunction): 2 Function None 3 4(PixelShaderFunction): 2 Function None 3
5: Label 5: Label
49(input): 8(ptr) Variable Function 49(input): 8(ptr) Variable Function
53(s): 12(ptr) Variable Function 53(s): 12(ptr) Variable Function
95(param): 8(ptr) Variable Function 92(param): 8(ptr) Variable Function
97(param): 12(ptr) Variable Function 94(param): 12(ptr) Variable Function
52: 7(fvec4) Load 51(input) 52: 7(fvec4) Load 51(input)
Store 49(input) 52 Store 49(input) 52
57: 50(ptr) AccessChain 56(s) 32 55: 7(fvec4) Load 54(s.a)
58: 7(fvec4) Load 57 56: 8(ptr) AccessChain 53(s) 32
59: 8(ptr) AccessChain 53(s) 32 Store 56 55
Store 59 58 60: 9(bool) Load 59(s.b)
62: 61(ptr) AccessChain 56(s) 60 62: 61(ptr) AccessChain 53(s) 57
63: 9(bool) Load 62 Store 62 60
65: 64(ptr) AccessChain 53(s) 60 66: 6(float) Load 65(s.c)
Store 65 63 68: 67(ptr) AccessChain 53(s) 63
68: 67(ptr) AccessChain 56(s) 66 Store 68 66
69: 6(float) Load 68 72: 10(fvec2) Load 71(s.d)
71: 70(ptr) AccessChain 53(s) 66 74: 73(ptr) AccessChain 53(s) 69
Store 71 69 Store 74 72
74: 73(ptr) AccessChain 56(s) 72 77: 9(bool) Load 76(s.ff1)
75: 10(fvec2) Load 74 78: 61(ptr) AccessChain 53(s) 75
77: 76(ptr) AccessChain 53(s) 72 Store 78 77
Store 77 75 81: 9(bool) Load 80(s.ff2)
80: 9(bool) Load 79(s.ff1) 82: 61(ptr) AccessChain 53(s) 79
81: 64(ptr) AccessChain 53(s) 78 Store 82 81
Store 81 80 85: 9(bool) Load 84(s.ff3)
83: 61(ptr) AccessChain 56(s) 78 86: 61(ptr) AccessChain 53(s) 83
84: 9(bool) Load 83 Store 86 85
85: 64(ptr) AccessChain 53(s) 82 88: 7(fvec4) Load 87(s.ff4)
Store 85 84 89: 8(ptr) AccessChain 53(s) 33
87: 61(ptr) AccessChain 56(s) 82
88: 9(bool) Load 87
89: 64(ptr) AccessChain 53(s) 86
Store 89 88 Store 89 88
90: 50(ptr) AccessChain 56(s) 86 93: 7(fvec4) Load 49(input)
91: 7(fvec4) Load 90 Store 92(param) 93
92: 8(ptr) AccessChain 53(s) 33 95: 11(IN_S) Load 53(s)
Store 92 91 Store 94(param) 95
96: 7(fvec4) Load 49(input) 96: 7(fvec4) FunctionCall 16(@PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41;) 92(param) 94(param)
Store 95(param) 96 Store 91(@entryPointOutput) 96
98: 11(IN_S) Load 53(s)
Store 97(param) 98
99: 7(fvec4) FunctionCall 16(@PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41;) 95(param) 97(param)
Store 94(@entryPointOutput) 99
Return Return
FunctionEnd FunctionEnd
16(@PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41;): 7(fvec4) Function None 13 16(@PixelShaderFunction(vf4;struct-IN_S-vf4-b1-vf1-vf2-b1-b1-b1-vf41;): 7(fvec4) Function None 13

View File

@ -69,10 +69,7 @@ Shader version: 500
0:? 'vsin' ( temp structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) 0:? 'vsin' ( temp structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in})
0:? 'Pos_loose' ( temp 4-component vector of float) 0:? 'Pos_loose' ( temp 4-component vector of float)
0:17 move second child to first child ( temp int) 0:17 move second child to first child ( temp int)
0:17 x0_out: direct index for structure ( temp int) 0:? '@entryPointOutput.x0_out' (layout( location=0) out int)
0:17 '@entryPointOutput' (layout( location=0) out structure{ temp int x0_out, temp int x1_out})
0:17 Constant:
0:17 0 (const int)
0:17 x0_out: direct index for structure ( temp int) 0:17 x0_out: direct index for structure ( temp int)
0:17 'flattenTemp' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) 0:17 'flattenTemp' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
0:17 Constant: 0:17 Constant:
@ -84,17 +81,15 @@ Shader version: 500
0:17 Constant: 0:17 Constant:
0:17 1 (const int) 0:17 1 (const int)
0:17 move second child to first child ( temp int) 0:17 move second child to first child ( temp int)
0:17 x1_out: direct index for structure ( temp int) 0:? '@entryPointOutput.x1_out' (layout( location=1) out int)
0:17 '@entryPointOutput' (layout( location=0) out structure{ temp int x0_out, temp int x1_out})
0:17 Constant:
0:17 1 (const int)
0:17 x1_out: direct index for structure ( temp int) 0:17 x1_out: direct index for structure ( temp int)
0:17 'flattenTemp' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) 0:17 'flattenTemp' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
0:17 Constant: 0:17 Constant:
0:17 2 (const int) 0:17 2 (const int)
0:? Linker Objects 0:? Linker Objects
0:? '@entryPointOutput.Pos_out' ( out 4-component vector of float Position) 0:? '@entryPointOutput.Pos_out' ( out 4-component vector of float Position)
0:? '@entryPointOutput' (layout( location=0) out structure{ temp int x0_out, temp int x1_out}) 0:? '@entryPointOutput.x0_out' (layout( location=0) out int)
0:? '@entryPointOutput.x1_out' (layout( location=1) out int)
0:? 'vsin.x0_in' (layout( location=0) in int) 0:? 'vsin.x0_in' (layout( location=0) in int)
0:? 'vsin.Pos_in' (layout( location=1) in 4-component vector of float) 0:? 'vsin.Pos_in' (layout( location=1) in 4-component vector of float)
0:? 'vsin.x1_in' (layout( location=2) in int) 0:? 'vsin.x1_in' (layout( location=2) in int)
@ -174,10 +169,7 @@ Shader version: 500
0:? 'vsin' ( temp structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) 0:? 'vsin' ( temp structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in})
0:? 'Pos_loose' ( temp 4-component vector of float) 0:? 'Pos_loose' ( temp 4-component vector of float)
0:17 move second child to first child ( temp int) 0:17 move second child to first child ( temp int)
0:17 x0_out: direct index for structure ( temp int) 0:? '@entryPointOutput.x0_out' (layout( location=0) out int)
0:17 '@entryPointOutput' (layout( location=0) out structure{ temp int x0_out, temp int x1_out})
0:17 Constant:
0:17 0 (const int)
0:17 x0_out: direct index for structure ( temp int) 0:17 x0_out: direct index for structure ( temp int)
0:17 'flattenTemp' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) 0:17 'flattenTemp' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
0:17 Constant: 0:17 Constant:
@ -189,17 +181,15 @@ Shader version: 500
0:17 Constant: 0:17 Constant:
0:17 1 (const int) 0:17 1 (const int)
0:17 move second child to first child ( temp int) 0:17 move second child to first child ( temp int)
0:17 x1_out: direct index for structure ( temp int) 0:? '@entryPointOutput.x1_out' (layout( location=1) out int)
0:17 '@entryPointOutput' (layout( location=0) out structure{ temp int x0_out, temp int x1_out})
0:17 Constant:
0:17 1 (const int)
0:17 x1_out: direct index for structure ( temp int) 0:17 x1_out: direct index for structure ( temp int)
0:17 'flattenTemp' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) 0:17 'flattenTemp' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
0:17 Constant: 0:17 Constant:
0:17 2 (const int) 0:17 2 (const int)
0:? Linker Objects 0:? Linker Objects
0:? '@entryPointOutput.Pos_out' ( out 4-component vector of float Position) 0:? '@entryPointOutput.Pos_out' ( out 4-component vector of float Position)
0:? '@entryPointOutput' (layout( location=0) out structure{ temp int x0_out, temp int x1_out}) 0:? '@entryPointOutput.x0_out' (layout( location=0) out int)
0:? '@entryPointOutput.x1_out' (layout( location=1) out int)
0:? 'vsin.x0_in' (layout( location=0) in int) 0:? 'vsin.x0_in' (layout( location=0) in int)
0:? 'vsin.Pos_in' (layout( location=1) in 4-component vector of float) 0:? 'vsin.Pos_in' (layout( location=1) in 4-component vector of float)
0:? 'vsin.x1_in' (layout( location=2) in int) 0:? 'vsin.x1_in' (layout( location=2) in int)
@ -207,12 +197,12 @@ Shader version: 500
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80001 // Generated by (magic number): 80001
// Id's are bound by 73 // Id's are bound by 70
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 40 44 47 51 61 67 EntryPoint Vertex 4 "main" 40 44 47 51 60 64 67
Source HLSL 500 Source HLSL 500
Name 4 "main" Name 4 "main"
Name 9 "VS_INPUT" Name 9 "VS_INPUT"
@ -236,17 +226,16 @@ Shader version: 500
Name 53 "flattenTemp" Name 53 "flattenTemp"
Name 54 "param" Name 54 "param"
Name 56 "param" Name 56 "param"
Name 59 "VS_OUTPUT" Name 60 "@entryPointOutput.x0_out"
MemberName 59(VS_OUTPUT) 0 "x0_out" Name 64 "@entryPointOutput.Pos_out"
MemberName 59(VS_OUTPUT) 1 "x1_out" Name 67 "@entryPointOutput.x1_out"
Name 61 "@entryPointOutput"
Name 67 "@entryPointOutput.Pos_out"
Decorate 40(vsin.x0_in) Location 0 Decorate 40(vsin.x0_in) Location 0
Decorate 44(vsin.Pos_in) Location 1 Decorate 44(vsin.Pos_in) Location 1
Decorate 47(vsin.x1_in) Location 2 Decorate 47(vsin.x1_in) Location 2
Decorate 51(Pos_loose) Location 3 Decorate 51(Pos_loose) Location 3
Decorate 61(@entryPointOutput) Location 0 Decorate 60(@entryPointOutput.x0_out) Location 0
Decorate 67(@entryPointOutput.Pos_out) BuiltIn Position Decorate 64(@entryPointOutput.Pos_out) BuiltIn Position
Decorate 67(@entryPointOutput.x1_out) Location 1
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeInt 32 1 6: TypeInt 32 1
@ -268,12 +257,11 @@ Shader version: 500
44(vsin.Pos_in): 43(ptr) Variable Input 44(vsin.Pos_in): 43(ptr) Variable Input
47(vsin.x1_in): 39(ptr) Variable Input 47(vsin.x1_in): 39(ptr) Variable Input
51(Pos_loose): 43(ptr) Variable Input 51(Pos_loose): 43(ptr) Variable Input
59(VS_OUTPUT): TypeStruct 6(int) 6(int) 59: TypePointer Output 6(int)
60: TypePointer Output 59(VS_OUTPUT) 60(@entryPointOutput.x0_out): 59(ptr) Variable Output
61(@entryPointOutput): 60(ptr) Variable Output 63: TypePointer Output 8(fvec4)
64: TypePointer Output 6(int) 64(@entryPointOutput.Pos_out): 63(ptr) Variable Output
66: TypePointer Output 8(fvec4) 67(@entryPointOutput.x1_out): 59(ptr) Variable Output
67(@entryPointOutput.Pos_out): 66(ptr) Variable Output
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
38(vsin): 10(ptr) Variable Function 38(vsin): 10(ptr) Variable Function
@ -298,17 +286,15 @@ Shader version: 500
Store 56(param) 57 Store 56(param) 57
58:12(VS_OUTPUT) FunctionCall 16(@main(struct-VS_INPUT-i1-vf4-i11;vf4;) 54(param) 56(param) 58:12(VS_OUTPUT) FunctionCall 16(@main(struct-VS_INPUT-i1-vf4-i11;vf4;) 54(param) 56(param)
Store 53(flattenTemp) 58 Store 53(flattenTemp) 58
62: 21(ptr) AccessChain 53(flattenTemp) 20 61: 21(ptr) AccessChain 53(flattenTemp) 20
63: 6(int) Load 62 62: 6(int) Load 61
65: 64(ptr) AccessChain 61(@entryPointOutput) 20 Store 60(@entryPointOutput.x0_out) 62
Store 65 63 65: 11(ptr) AccessChain 53(flattenTemp) 25
68: 11(ptr) AccessChain 53(flattenTemp) 25 66: 8(fvec4) Load 65
69: 8(fvec4) Load 68 Store 64(@entryPointOutput.Pos_out) 66
Store 67(@entryPointOutput.Pos_out) 69 68: 21(ptr) AccessChain 53(flattenTemp) 31
70: 21(ptr) AccessChain 53(flattenTemp) 31 69: 6(int) Load 68
71: 6(int) Load 70 Store 67(@entryPointOutput.x1_out) 69
72: 64(ptr) AccessChain 61(@entryPointOutput) 25
Store 72 71
Return Return
FunctionEnd FunctionEnd
16(@main(struct-VS_INPUT-i1-vf4-i11;vf4;):12(VS_OUTPUT) Function None 13 16(@main(struct-VS_INPUT-i1-vf4-i11;vf4;):12(VS_OUTPUT) Function None 13

View File

@ -73,7 +73,9 @@ output primitive = triangle_strip
0:? Linker Objects 0:? Linker Objects
0:? 'v' (layout( location=0) in 1-element array of uint) 0:? 'v' (layout( location=0) in 1-element array of uint)
0:? 'OutputStream.Pos' ( out 4-component vector of float Position) 0:? 'OutputStream.Pos' ( out 4-component vector of float Position)
0:? 'OutputStream' (layout( location=0) out structure{ temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) 0:? 'OutputStream.TexCoord' (layout( location=0) out 2-component vector of float)
0:? 'OutputStream.TerrainPos' (layout( location=1) out 3-component vector of float)
0:? 'OutputStream.VertexID' (layout( location=2) out uint)
Linked geometry stage: Linked geometry stage:
@ -153,16 +155,18 @@ output primitive = triangle_strip
0:? Linker Objects 0:? Linker Objects
0:? 'v' (layout( location=0) in 1-element array of uint) 0:? 'v' (layout( location=0) in 1-element array of uint)
0:? 'OutputStream.Pos' ( out 4-component vector of float Position) 0:? 'OutputStream.Pos' ( out 4-component vector of float Position)
0:? 'OutputStream' (layout( location=0) out structure{ temp 2-component vector of float TexCoord, temp 3-component vector of float TerrainPos, temp uint VertexID}) 0:? 'OutputStream.TexCoord' (layout( location=0) out 2-component vector of float)
0:? 'OutputStream.TerrainPos' (layout( location=1) out 3-component vector of float)
0:? 'OutputStream.VertexID' (layout( location=2) out uint)
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80001 // Generated by (magic number): 80001
// Id's are bound by 79 // Id's are bound by 82
Capability Geometry Capability Geometry
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Geometry 4 "main" 66 75 78 EntryPoint Geometry 4 "main" 66 75 77 79 81
ExecutionMode 4 InputPoints ExecutionMode 4 InputPoints
ExecutionMode 4 Invocations 1 ExecutionMode 4 Invocations 1
ExecutionMode 4 OutputTriangleStrip ExecutionMode 4 OutputTriangleStrip
@ -187,14 +191,14 @@ output primitive = triangle_strip
Name 69 "param" Name 69 "param"
Name 71 "param" Name 71 "param"
Name 75 "OutputStream.Pos" Name 75 "OutputStream.Pos"
Name 76 "PSInput" Name 77 "OutputStream.TexCoord"
MemberName 76(PSInput) 0 "TexCoord" Name 79 "OutputStream.TerrainPos"
MemberName 76(PSInput) 1 "TerrainPos" Name 81 "OutputStream.VertexID"
MemberName 76(PSInput) 2 "VertexID"
Name 78 "OutputStream"
Decorate 66(v) Location 0 Decorate 66(v) Location 0
Decorate 75(OutputStream.Pos) BuiltIn Position Decorate 75(OutputStream.Pos) BuiltIn Position
Decorate 78(OutputStream) Location 0 Decorate 77(OutputStream.TexCoord) Location 0
Decorate 79(OutputStream.TerrainPos) Location 1
Decorate 81(OutputStream.VertexID) Location 2
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeInt 32 0 6: TypeInt 32 0
@ -229,9 +233,12 @@ output primitive = triangle_strip
66(v): 65(ptr) Variable Input 66(v): 65(ptr) Variable Input
74: TypePointer Output 11(fvec4) 74: TypePointer Output 11(fvec4)
75(OutputStream.Pos): 74(ptr) Variable Output 75(OutputStream.Pos): 74(ptr) Variable Output
76(PSInput): TypeStruct 12(fvec2) 13(fvec3) 6(int) 76: TypePointer Output 12(fvec2)
77: TypePointer Output 76(PSInput) 77(OutputStream.TexCoord): 76(ptr) Variable Output
78(OutputStream): 77(ptr) Variable Output 78: TypePointer Output 13(fvec3)
79(OutputStream.TerrainPos): 78(ptr) Variable Output
80: TypePointer Output 6(int)
81(OutputStream.VertexID): 80(ptr) Variable Output
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
64(v): 9(ptr) Variable Function 64(v): 9(ptr) Variable Function

View File

@ -30,13 +30,7 @@ gl_FragCoord origin is upper left
0:7 0 (const int) 0:7 0 (const int)
0:7 Constant: 0:7 Constant:
0:7 0 (const int) 0:7 0 (const int)
0:7 f: direct index for structure ( temp float) 0:? 'input[0].f' (layout( location=1) in float)
0:7 direct index (layout( location=1) in structure{ temp float f})
0:7 'input' (layout( location=1) in 3-element array of structure{ temp float f})
0:7 Constant:
0:7 0 (const int)
0:7 Constant:
0:7 0 (const int)
0:7 move second child to first child ( temp 4-component vector of float) 0:7 move second child to first child ( temp 4-component vector of float)
0:7 pos: direct index for structure ( temp 4-component vector of float) 0:7 pos: direct index for structure ( temp 4-component vector of float)
0:7 direct index ( temp structure{ temp float f, temp 4-component vector of float pos}) 0:7 direct index ( temp structure{ temp float f, temp 4-component vector of float pos})
@ -57,13 +51,7 @@ gl_FragCoord origin is upper left
0:7 1 (const int) 0:7 1 (const int)
0:7 Constant: 0:7 Constant:
0:7 0 (const int) 0:7 0 (const int)
0:7 f: direct index for structure ( temp float) 0:? 'input[1].f' (layout( location=2) in float)
0:7 direct index (layout( location=1) in structure{ temp float f})
0:7 'input' (layout( location=1) in 3-element array of structure{ temp float f})
0:7 Constant:
0:7 1 (const int)
0:7 Constant:
0:7 0 (const int)
0:7 move second child to first child ( temp 4-component vector of float) 0:7 move second child to first child ( temp 4-component vector of float)
0:7 pos: direct index for structure ( temp 4-component vector of float) 0:7 pos: direct index for structure ( temp 4-component vector of float)
0:7 direct index ( temp structure{ temp float f, temp 4-component vector of float pos}) 0:7 direct index ( temp structure{ temp float f, temp 4-component vector of float pos})
@ -84,13 +72,7 @@ gl_FragCoord origin is upper left
0:7 2 (const int) 0:7 2 (const int)
0:7 Constant: 0:7 Constant:
0:7 0 (const int) 0:7 0 (const int)
0:7 f: direct index for structure ( temp float) 0:? 'input[2].f' (layout( location=3) in float)
0:7 direct index (layout( location=1) in structure{ temp float f})
0:7 'input' (layout( location=1) in 3-element array of structure{ temp float f})
0:7 Constant:
0:7 2 (const int)
0:7 Constant:
0:7 0 (const int)
0:7 move second child to first child ( temp 4-component vector of float) 0:7 move second child to first child ( temp 4-component vector of float)
0:7 pos: direct index for structure ( temp 4-component vector of float) 0:7 pos: direct index for structure ( temp 4-component vector of float)
0:7 direct index ( temp structure{ temp float f, temp 4-component vector of float pos}) 0:7 direct index ( temp structure{ temp float f, temp 4-component vector of float pos})
@ -112,7 +94,9 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:? 'i' (layout( location=0) flat in int) 0:? 'i' (layout( location=0) flat in int)
0:? 'input.pos' ( in 3-element array of 4-component vector of float FragCoord) 0:? 'input.pos' ( in 3-element array of 4-component vector of float FragCoord)
0:? 'input' (layout( location=1) in 3-element array of structure{ temp float f}) 0:? 'input[0].f' (layout( location=1) in float)
0:? 'input[1].f' (layout( location=2) in float)
0:? 'input[2].f' (layout( location=3) in float)
Linked fragment stage: Linked fragment stage:
@ -149,13 +133,7 @@ gl_FragCoord origin is upper left
0:7 0 (const int) 0:7 0 (const int)
0:7 Constant: 0:7 Constant:
0:7 0 (const int) 0:7 0 (const int)
0:7 f: direct index for structure ( temp float) 0:? 'input[0].f' (layout( location=1) in float)
0:7 direct index (layout( location=1) in structure{ temp float f})
0:7 'input' (layout( location=1) in 3-element array of structure{ temp float f})
0:7 Constant:
0:7 0 (const int)
0:7 Constant:
0:7 0 (const int)
0:7 move second child to first child ( temp 4-component vector of float) 0:7 move second child to first child ( temp 4-component vector of float)
0:7 pos: direct index for structure ( temp 4-component vector of float) 0:7 pos: direct index for structure ( temp 4-component vector of float)
0:7 direct index ( temp structure{ temp float f, temp 4-component vector of float pos}) 0:7 direct index ( temp structure{ temp float f, temp 4-component vector of float pos})
@ -176,13 +154,7 @@ gl_FragCoord origin is upper left
0:7 1 (const int) 0:7 1 (const int)
0:7 Constant: 0:7 Constant:
0:7 0 (const int) 0:7 0 (const int)
0:7 f: direct index for structure ( temp float) 0:? 'input[1].f' (layout( location=2) in float)
0:7 direct index (layout( location=1) in structure{ temp float f})
0:7 'input' (layout( location=1) in 3-element array of structure{ temp float f})
0:7 Constant:
0:7 1 (const int)
0:7 Constant:
0:7 0 (const int)
0:7 move second child to first child ( temp 4-component vector of float) 0:7 move second child to first child ( temp 4-component vector of float)
0:7 pos: direct index for structure ( temp 4-component vector of float) 0:7 pos: direct index for structure ( temp 4-component vector of float)
0:7 direct index ( temp structure{ temp float f, temp 4-component vector of float pos}) 0:7 direct index ( temp structure{ temp float f, temp 4-component vector of float pos})
@ -203,13 +175,7 @@ gl_FragCoord origin is upper left
0:7 2 (const int) 0:7 2 (const int)
0:7 Constant: 0:7 Constant:
0:7 0 (const int) 0:7 0 (const int)
0:7 f: direct index for structure ( temp float) 0:? 'input[2].f' (layout( location=3) in float)
0:7 direct index (layout( location=1) in structure{ temp float f})
0:7 'input' (layout( location=1) in 3-element array of structure{ temp float f})
0:7 Constant:
0:7 2 (const int)
0:7 Constant:
0:7 0 (const int)
0:7 move second child to first child ( temp 4-component vector of float) 0:7 move second child to first child ( temp 4-component vector of float)
0:7 pos: direct index for structure ( temp 4-component vector of float) 0:7 pos: direct index for structure ( temp 4-component vector of float)
0:7 direct index ( temp structure{ temp float f, temp 4-component vector of float pos}) 0:7 direct index ( temp structure{ temp float f, temp 4-component vector of float pos})
@ -231,16 +197,18 @@ gl_FragCoord origin is upper left
0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float) 0:? '@entryPointOutput' (layout( location=0) out 4-component vector of float)
0:? 'i' (layout( location=0) flat in int) 0:? 'i' (layout( location=0) flat in int)
0:? 'input.pos' ( in 3-element array of 4-component vector of float FragCoord) 0:? 'input.pos' ( in 3-element array of 4-component vector of float FragCoord)
0:? 'input' (layout( location=1) in 3-element array of structure{ temp float f}) 0:? 'input[0].f' (layout( location=1) in float)
0:? 'input[1].f' (layout( location=2) in float)
0:? 'input[2].f' (layout( location=3) in float)
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80001 // Generated by (magic number): 80001
// Id's are bound by 73 // Id's are bound by 69
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 32 39 48 67 EntryPoint Fragment 4 "main" 32 37 44 49 56 63
ExecutionMode 4 OriginUpperLeft ExecutionMode 4 OriginUpperLeft
Source HLSL 500 Source HLSL 500
Name 4 "main" Name 4 "main"
@ -254,18 +222,20 @@ gl_FragCoord origin is upper left
Name 30 "i" Name 30 "i"
Name 32 "i" Name 32 "i"
Name 34 "input" Name 34 "input"
Name 36 "S" Name 37 "input[0].f"
MemberName 36(S) 0 "f" Name 44 "input.pos"
Name 39 "input" Name 49 "input[1].f"
Name 48 "input.pos" Name 56 "input[2].f"
Name 67 "@entryPointOutput" Name 63 "@entryPointOutput"
Name 68 "param" Name 64 "param"
Name 70 "param" Name 66 "param"
Decorate 32(i) Flat Decorate 32(i) Flat
Decorate 32(i) Location 0 Decorate 32(i) Location 0
Decorate 39(input) Location 1 Decorate 37(input[0].f) Location 1
Decorate 48(input.pos) BuiltIn FragCoord Decorate 44(input.pos) BuiltIn FragCoord
Decorate 67(@entryPointOutput) Location 0 Decorate 49(input[1].f) Location 2
Decorate 56(input[2].f) Location 3
Decorate 63(@entryPointOutput) Location 0
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeInt 32 1 6: TypeInt 32 1
@ -285,58 +255,54 @@ gl_FragCoord origin is upper left
31: TypePointer Input 6(int) 31: TypePointer Input 6(int)
32(i): 31(ptr) Variable Input 32(i): 31(ptr) Variable Input
35: 6(int) Constant 0 35: 6(int) Constant 0
36(S): TypeStruct 8(float) 36: TypePointer Input 8(float)
37: TypeArray 36(S) 12 37(input[0].f): 36(ptr) Variable Input
38: TypePointer Input 37 39: TypePointer Function 8(float)
39(input): 38(ptr) Variable Input 41: 6(int) Constant 1
40: TypePointer Input 8(float) 42: TypeArray 9(fvec4) 12
43: TypePointer Function 8(float) 43: TypePointer Input 42
45: 6(int) Constant 1 44(input.pos): 43(ptr) Variable Input
46: TypeArray 9(fvec4) 12 45: TypePointer Input 9(fvec4)
47: TypePointer Input 46 49(input[1].f): 36(ptr) Variable Input
48(input.pos): 47(ptr) Variable Input 55: 6(int) Constant 2
49: TypePointer Input 9(fvec4) 56(input[2].f): 36(ptr) Variable Input
59: 6(int) Constant 2 62: TypePointer Output 9(fvec4)
66: TypePointer Output 9(fvec4) 63(@entryPointOutput): 62(ptr) Variable Output
67(@entryPointOutput): 66(ptr) Variable Output
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
30(i): 7(ptr) Variable Function 30(i): 7(ptr) Variable Function
34(input): 14(ptr) Variable Function 34(input): 14(ptr) Variable Function
68(param): 7(ptr) Variable Function 64(param): 7(ptr) Variable Function
70(param): 14(ptr) Variable Function 66(param): 14(ptr) Variable Function
33: 6(int) Load 32(i) 33: 6(int) Load 32(i)
Store 30(i) 33 Store 30(i) 33
41: 40(ptr) AccessChain 39(input) 35 35 38: 8(float) Load 37(input[0].f)
42: 8(float) Load 41 40: 39(ptr) AccessChain 34(input) 35 35
44: 43(ptr) AccessChain 34(input) 35 35 Store 40 38
Store 44 42 46: 45(ptr) AccessChain 44(input.pos) 35
50: 49(ptr) AccessChain 48(input.pos) 35 47: 9(fvec4) Load 46
51: 9(fvec4) Load 50 48: 25(ptr) AccessChain 34(input) 35 41
52: 25(ptr) AccessChain 34(input) 35 45 Store 48 47
Store 52 51 50: 8(float) Load 49(input[1].f)
53: 40(ptr) AccessChain 39(input) 45 35 51: 39(ptr) AccessChain 34(input) 41 35
54: 8(float) Load 53 Store 51 50
55: 43(ptr) AccessChain 34(input) 45 35 52: 45(ptr) AccessChain 44(input.pos) 41
Store 55 54 53: 9(fvec4) Load 52
56: 49(ptr) AccessChain 48(input.pos) 45 54: 25(ptr) AccessChain 34(input) 41 41
57: 9(fvec4) Load 56 Store 54 53
58: 25(ptr) AccessChain 34(input) 45 45 57: 8(float) Load 56(input[2].f)
58: 39(ptr) AccessChain 34(input) 55 35
Store 58 57 Store 58 57
60: 40(ptr) AccessChain 39(input) 59 35 59: 45(ptr) AccessChain 44(input.pos) 55
61: 8(float) Load 60 60: 9(fvec4) Load 59
62: 43(ptr) AccessChain 34(input) 59 35 61: 25(ptr) AccessChain 34(input) 55 41
Store 62 61 Store 61 60
63: 49(ptr) AccessChain 48(input.pos) 59 65: 6(int) Load 30(i)
64: 9(fvec4) Load 63 Store 64(param) 65
65: 25(ptr) AccessChain 34(input) 59 45 67: 13 Load 34(input)
Store 65 64 Store 66(param) 67
69: 6(int) Load 30(i) 68: 9(fvec4) FunctionCall 18(@main(i1;struct-S-f1-vf41[3];) 64(param) 66(param)
Store 68(param) 69 Store 63(@entryPointOutput) 68
71: 13 Load 34(input)
Store 70(param) 71
72: 9(fvec4) FunctionCall 18(@main(i1;struct-S-f1-vf41[3];) 68(param) 70(param)
Store 67(@entryPointOutput) 72
Return Return
FunctionEnd FunctionEnd
18(@main(i1;struct-S-f1-vf41[3];): 9(fvec4) Function None 15 18(@main(i1;struct-S-f1-vf41[3];): 9(fvec4) Function None 15

View File

@ -79,10 +79,7 @@ Shader version: 500
0:22 Function Call: @main(struct-VS_INPUT-i1-vf4-i11; ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) 0:22 Function Call: @main(struct-VS_INPUT-i1-vf4-i11; ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
0:? 'vsin' ( temp structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) 0:? 'vsin' ( temp structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in})
0:22 move second child to first child ( temp int) 0:22 move second child to first child ( temp int)
0:22 x0_out: direct index for structure ( temp int) 0:? '@entryPointOutput.x0_out' (layout( location=0) out int)
0:22 '@entryPointOutput' (layout( location=0) out structure{ temp int x0_out, temp int x1_out})
0:22 Constant:
0:22 0 (const int)
0:22 x0_out: direct index for structure ( temp int) 0:22 x0_out: direct index for structure ( temp int)
0:22 'flattenTemp' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) 0:22 'flattenTemp' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
0:22 Constant: 0:22 Constant:
@ -94,17 +91,15 @@ Shader version: 500
0:22 Constant: 0:22 Constant:
0:22 1 (const int) 0:22 1 (const int)
0:22 move second child to first child ( temp int) 0:22 move second child to first child ( temp int)
0:22 x1_out: direct index for structure ( temp int) 0:? '@entryPointOutput.x1_out' (layout( location=1) out int)
0:22 '@entryPointOutput' (layout( location=0) out structure{ temp int x0_out, temp int x1_out})
0:22 Constant:
0:22 1 (const int)
0:22 x1_out: direct index for structure ( temp int) 0:22 x1_out: direct index for structure ( temp int)
0:22 'flattenTemp' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) 0:22 'flattenTemp' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
0:22 Constant: 0:22 Constant:
0:22 2 (const int) 0:22 2 (const int)
0:? Linker Objects 0:? Linker Objects
0:? '@entryPointOutput.Pos_out' ( out 4-component vector of float Position) 0:? '@entryPointOutput.Pos_out' ( out 4-component vector of float Position)
0:? '@entryPointOutput' (layout( location=0) out structure{ temp int x0_out, temp int x1_out}) 0:? '@entryPointOutput.x0_out' (layout( location=0) out int)
0:? '@entryPointOutput.x1_out' (layout( location=1) out int)
0:? 'vsin.x0_in' (layout( location=0) in int) 0:? 'vsin.x0_in' (layout( location=0) in int)
0:? 'vsin.Pos_in' (layout( location=1) in 4-component vector of float) 0:? 'vsin.Pos_in' (layout( location=1) in 4-component vector of float)
0:? 'vsin.x1_in' (layout( location=2) in int) 0:? 'vsin.x1_in' (layout( location=2) in int)
@ -193,10 +188,7 @@ Shader version: 500
0:22 Function Call: @main(struct-VS_INPUT-i1-vf4-i11; ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) 0:22 Function Call: @main(struct-VS_INPUT-i1-vf4-i11; ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
0:? 'vsin' ( temp structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in}) 0:? 'vsin' ( temp structure{ temp int x0_in, temp 4-component vector of float Pos_in, temp int x1_in})
0:22 move second child to first child ( temp int) 0:22 move second child to first child ( temp int)
0:22 x0_out: direct index for structure ( temp int) 0:? '@entryPointOutput.x0_out' (layout( location=0) out int)
0:22 '@entryPointOutput' (layout( location=0) out structure{ temp int x0_out, temp int x1_out})
0:22 Constant:
0:22 0 (const int)
0:22 x0_out: direct index for structure ( temp int) 0:22 x0_out: direct index for structure ( temp int)
0:22 'flattenTemp' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) 0:22 'flattenTemp' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
0:22 Constant: 0:22 Constant:
@ -208,29 +200,27 @@ Shader version: 500
0:22 Constant: 0:22 Constant:
0:22 1 (const int) 0:22 1 (const int)
0:22 move second child to first child ( temp int) 0:22 move second child to first child ( temp int)
0:22 x1_out: direct index for structure ( temp int) 0:? '@entryPointOutput.x1_out' (layout( location=1) out int)
0:22 '@entryPointOutput' (layout( location=0) out structure{ temp int x0_out, temp int x1_out})
0:22 Constant:
0:22 1 (const int)
0:22 x1_out: direct index for structure ( temp int) 0:22 x1_out: direct index for structure ( temp int)
0:22 'flattenTemp' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out}) 0:22 'flattenTemp' ( temp structure{ temp int x0_out, temp 4-component vector of float Pos_out, temp int x1_out})
0:22 Constant: 0:22 Constant:
0:22 2 (const int) 0:22 2 (const int)
0:? Linker Objects 0:? Linker Objects
0:? '@entryPointOutput.Pos_out' ( out 4-component vector of float Position) 0:? '@entryPointOutput.Pos_out' ( out 4-component vector of float Position)
0:? '@entryPointOutput' (layout( location=0) out structure{ temp int x0_out, temp int x1_out}) 0:? '@entryPointOutput.x0_out' (layout( location=0) out int)
0:? '@entryPointOutput.x1_out' (layout( location=1) out int)
0:? 'vsin.x0_in' (layout( location=0) in int) 0:? 'vsin.x0_in' (layout( location=0) in int)
0:? 'vsin.Pos_in' (layout( location=1) in 4-component vector of float) 0:? 'vsin.Pos_in' (layout( location=1) in 4-component vector of float)
0:? 'vsin.x1_in' (layout( location=2) in int) 0:? 'vsin.x1_in' (layout( location=2) in int)
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80001 // Generated by (magic number): 80001
// Id's are bound by 80 // Id's are bound by 77
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 52 56 59 68 74 EntryPoint Vertex 4 "main" 52 56 59 67 71 74
Source HLSL 500 Source HLSL 500
Name 4 "main" Name 4 "main"
Name 9 "VS_INPUT" Name 9 "VS_INPUT"
@ -255,16 +245,15 @@ Shader version: 500
Name 59 "vsin.x1_in" Name 59 "vsin.x1_in"
Name 62 "flattenTemp" Name 62 "flattenTemp"
Name 63 "param" Name 63 "param"
Name 66 "VS_OUTPUT" Name 67 "@entryPointOutput.x0_out"
MemberName 66(VS_OUTPUT) 0 "x0_out" Name 71 "@entryPointOutput.Pos_out"
MemberName 66(VS_OUTPUT) 1 "x1_out" Name 74 "@entryPointOutput.x1_out"
Name 68 "@entryPointOutput"
Name 74 "@entryPointOutput.Pos_out"
Decorate 52(vsin.x0_in) Location 0 Decorate 52(vsin.x0_in) Location 0
Decorate 56(vsin.Pos_in) Location 1 Decorate 56(vsin.Pos_in) Location 1
Decorate 59(vsin.x1_in) Location 2 Decorate 59(vsin.x1_in) Location 2
Decorate 68(@entryPointOutput) Location 0 Decorate 67(@entryPointOutput.x0_out) Location 0
Decorate 74(@entryPointOutput.Pos_out) BuiltIn Position Decorate 71(@entryPointOutput.Pos_out) BuiltIn Position
Decorate 74(@entryPointOutput.x1_out) Location 1
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeInt 32 1 6: TypeInt 32 1
@ -286,12 +275,11 @@ Shader version: 500
55: TypePointer Input 8(fvec4) 55: TypePointer Input 8(fvec4)
56(vsin.Pos_in): 55(ptr) Variable Input 56(vsin.Pos_in): 55(ptr) Variable Input
59(vsin.x1_in): 51(ptr) Variable Input 59(vsin.x1_in): 51(ptr) Variable Input
66(VS_OUTPUT): TypeStruct 6(int) 6(int) 66: TypePointer Output 6(int)
67: TypePointer Output 66(VS_OUTPUT) 67(@entryPointOutput.x0_out): 66(ptr) Variable Output
68(@entryPointOutput): 67(ptr) Variable Output 70: TypePointer Output 8(fvec4)
71: TypePointer Output 6(int) 71(@entryPointOutput.Pos_out): 70(ptr) Variable Output
73: TypePointer Output 8(fvec4) 74(@entryPointOutput.x1_out): 66(ptr) Variable Output
74(@entryPointOutput.Pos_out): 73(ptr) Variable Output
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
50(vsin): 10(ptr) Variable Function 50(vsin): 10(ptr) Variable Function
@ -310,17 +298,15 @@ Shader version: 500
Store 63(param) 64 Store 63(param) 64
65:11(VS_OUTPUT) FunctionCall 20(@main(struct-VS_INPUT-i1-vf4-i11;) 63(param) 65:11(VS_OUTPUT) FunctionCall 20(@main(struct-VS_INPUT-i1-vf4-i11;) 63(param)
Store 62(flattenTemp) 65 Store 62(flattenTemp) 65
69: 31(ptr) AccessChain 62(flattenTemp) 30 68: 31(ptr) AccessChain 62(flattenTemp) 30
70: 6(int) Load 69 69: 6(int) Load 68
72: 71(ptr) AccessChain 68(@entryPointOutput) 30 Store 67(@entryPointOutput.x0_out) 69
Store 72 70 72: 23(ptr) AccessChain 62(flattenTemp) 22
75: 23(ptr) AccessChain 62(flattenTemp) 22 73: 8(fvec4) Load 72
76: 8(fvec4) Load 75 Store 71(@entryPointOutput.Pos_out) 73
Store 74(@entryPointOutput.Pos_out) 76 75: 31(ptr) AccessChain 62(flattenTemp) 38
77: 31(ptr) AccessChain 62(flattenTemp) 38 76: 6(int) Load 75
78: 6(int) Load 77 Store 74(@entryPointOutput.x1_out) 76
79: 71(ptr) AccessChain 68(@entryPointOutput) 22
Store 79 78
Return Return
FunctionEnd FunctionEnd
16(Fn1(struct-VS_INPUT-i1-vf4-i11;struct-VS_OUTPUT-i1-vf4-i11;): 2 Function None 13 16(Fn1(struct-VS_INPUT-i1-vf4-i11;struct-VS_OUTPUT-i1-vf4-i11;): 2 Function None 13

View File

@ -73,7 +73,7 @@ output primitive = triangle_strip
0:33 Sequence 0:33 Sequence
0:33 Sequence 0:33 Sequence
0:33 move second child to first child ( temp 4-component vector of float) 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:? 'ts.pos' ( out 4-component vector of float Position)
0:33 pos: direct index for structure ( temp 4-component vector of float) 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 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 '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})
@ -82,13 +82,7 @@ output primitive = triangle_strip
0:33 Constant: 0:33 Constant:
0:33 0 (const int) 0:33 0 (const int)
0:33 move second child to first child ( temp 2-component vector of float) 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:? 'ts.psIn.tc' (layout( location=0) out 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 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 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 '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})
@ -96,13 +90,37 @@ output primitive = triangle_strip
0:33 0 (const int) 0:33 0 (const int)
0:33 Constant: 0:33 Constant:
0:33 1 (const int) 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 move second child to first child ( temp float)
0:33 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1}) 0:? 'ts.contains_no_builtin_io.m0_array[0]' (layout( location=1) out float)
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 direct index ( temp float)
0:33 m0_array: direct index for structure ( temp 2-element array of float)
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 Constant:
0:33 0 (const int)
0:33 Constant:
0:33 0 (const int)
0:33 move second child to first child ( temp float)
0:? 'ts.contains_no_builtin_io.m0_array[1]' (layout( location=2) out float)
0:33 direct index ( temp float)
0:33 m0_array: direct index for structure ( temp 2-element array of float)
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 Constant:
0:33 0 (const int)
0:33 Constant: 0:33 Constant:
0:33 1 (const int) 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 move second child to first child ( temp int)
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:? 'ts.contains_no_builtin_io.m1' (layout( location=3) out int)
0:33 m1: direct index for structure ( temp 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 Constant: 0:33 Constant:
0:33 1 (const int) 0:33 1 (const int)
0:33 EmitVertex ( temp void) 0:33 EmitVertex ( temp void)
@ -197,8 +215,11 @@ output primitive = triangle_strip
0:? Linker Objects 0:? Linker Objects
0:? 'tin.pos' ( in 3-element array of 4-component vector of float Position) 0:? 'tin.pos' ( in 3-element array of 4-component vector of float Position)
0:? 'tin' (layout( location=0) in 3-element array of structure{ temp 2-component vector of float tc}) 0:? 'tin' (layout( location=0) in 3-element array of structure{ temp 2-component vector of float tc})
0:? 'ts.psIn.pos' ( out 4-component vector of float Position) 0:? 'ts.pos' ( out 4-component vector of float Position)
0:? '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:? 'ts.psIn.tc' (layout( location=0) out 2-component vector of float)
0:? 'ts.contains_no_builtin_io.m0_array[0]' (layout( location=1) out float)
0:? 'ts.contains_no_builtin_io.m0_array[1]' (layout( location=2) out float)
0:? 'ts.contains_no_builtin_io.m1' (layout( location=3) out int)
Linked geometry stage: Linked geometry stage:
@ -278,7 +299,7 @@ output primitive = triangle_strip
0:33 Sequence 0:33 Sequence
0:33 Sequence 0:33 Sequence
0:33 move second child to first child ( temp 4-component vector of float) 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:? 'ts.pos' ( out 4-component vector of float Position)
0:33 pos: direct index for structure ( temp 4-component vector of float) 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 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 '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})
@ -287,13 +308,7 @@ output primitive = triangle_strip
0:33 Constant: 0:33 Constant:
0:33 0 (const int) 0:33 0 (const int)
0:33 move second child to first child ( temp 2-component vector of float) 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:? 'ts.psIn.tc' (layout( location=0) out 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 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 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 '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})
@ -301,13 +316,37 @@ output primitive = triangle_strip
0:33 0 (const int) 0:33 0 (const int)
0:33 Constant: 0:33 Constant:
0:33 1 (const int) 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 move second child to first child ( temp float)
0:33 contains_no_builtin_io: direct index for structure ( temp structure{ temp 2-element array of float m0_array, temp int m1}) 0:? 'ts.contains_no_builtin_io.m0_array[0]' (layout( location=1) out float)
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 direct index ( temp float)
0:33 m0_array: direct index for structure ( temp 2-element array of float)
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 Constant:
0:33 0 (const int)
0:33 Constant:
0:33 0 (const int)
0:33 move second child to first child ( temp float)
0:? 'ts.contains_no_builtin_io.m0_array[1]' (layout( location=2) out float)
0:33 direct index ( temp float)
0:33 m0_array: direct index for structure ( temp 2-element array of float)
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 Constant:
0:33 0 (const int)
0:33 Constant: 0:33 Constant:
0:33 1 (const int) 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 move second child to first child ( temp int)
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:? 'ts.contains_no_builtin_io.m1' (layout( location=3) out int)
0:33 m1: direct index for structure ( temp 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 Constant: 0:33 Constant:
0:33 1 (const int) 0:33 1 (const int)
0:33 EmitVertex ( temp void) 0:33 EmitVertex ( temp void)
@ -402,17 +441,20 @@ output primitive = triangle_strip
0:? Linker Objects 0:? Linker Objects
0:? 'tin.pos' ( in 3-element array of 4-component vector of float Position) 0:? 'tin.pos' ( in 3-element array of 4-component vector of float Position)
0:? 'tin' (layout( location=0) in 3-element array of structure{ temp 2-component vector of float tc}) 0:? 'tin' (layout( location=0) in 3-element array of structure{ temp 2-component vector of float tc})
0:? 'ts.psIn.pos' ( out 4-component vector of float Position) 0:? 'ts.pos' ( out 4-component vector of float Position)
0:? '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:? 'ts.psIn.tc' (layout( location=0) out 2-component vector of float)
0:? 'ts.contains_no_builtin_io.m0_array[0]' (layout( location=1) out float)
0:? 'ts.contains_no_builtin_io.m0_array[1]' (layout( location=2) out float)
0:? 'ts.contains_no_builtin_io.m1' (layout( location=3) out int)
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80001 // Generated by (magic number): 80001
// Id's are bound by 105 // Id's are bound by 100
Capability Geometry Capability Geometry
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Geometry 4 "main" 48 55 74 82 EntryPoint Geometry 4 "main" 48 52 56 59 63 69 77
ExecutionMode 4 Triangles ExecutionMode 4 Triangles
ExecutionMode 4 Invocations 1 ExecutionMode 4 Invocations 1
ExecutionMode 4 OutputTriangleStrip ExecutionMode 4 OutputTriangleStrip
@ -432,28 +474,26 @@ output primitive = triangle_strip
Name 21 "tin" Name 21 "tin"
Name 22 "ts" Name 22 "ts"
Name 25 "o" Name 25 "o"
Name 48 "ts.psIn.pos" Name 48 "ts.pos"
Name 51 "PS_IN" Name 52 "ts.psIn.tc"
MemberName 51(PS_IN) 0 "tc" Name 56 "ts.contains_no_builtin_io.m0_array[0]"
Name 52 "STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO" Name 59 "ts.contains_no_builtin_io.m0_array[1]"
MemberName 52(STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO) 0 "m0_array" Name 63 "ts.contains_no_builtin_io.m1"
MemberName 52(STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO) 1 "m1" Name 66 "tin"
Name 53 "GS_OUT" Name 69 "tin.pos"
MemberName 53(GS_OUT) 0 "psIn" Name 74 "PS_IN"
MemberName 53(GS_OUT) 1 "contains_no_builtin_io" MemberName 74(PS_IN) 0 "tc"
Name 55 "ts" Name 77 "tin"
Name 71 "tin" Name 94 "ts"
Name 74 "tin.pos" Name 95 "param"
Name 79 "PS_IN" Name 97 "param"
MemberName 79(PS_IN) 0 "tc" Decorate 48(ts.pos) BuiltIn Position
Name 82 "tin" Decorate 52(ts.psIn.tc) Location 0
Name 99 "ts" Decorate 56(ts.contains_no_builtin_io.m0_array[0]) Location 1
Name 100 "param" Decorate 59(ts.contains_no_builtin_io.m0_array[1]) Location 2
Name 102 "param" Decorate 63(ts.contains_no_builtin_io.m1) Location 3
Decorate 48(ts.psIn.pos) BuiltIn Position Decorate 69(tin.pos) BuiltIn Position
Decorate 55(ts) Location 0 Decorate 77(tin) Location 0
Decorate 74(tin.pos) BuiltIn Position
Decorate 82(tin) Location 0
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeFloat 32 6: TypeFloat 32
@ -488,61 +528,58 @@ output primitive = triangle_strip
44: 16(int) Constant 2 44: 16(int) Constant 2
45: TypePointer Function 16(int) 45: TypePointer Function 16(int)
47: TypePointer Output 7(fvec4) 47: TypePointer Output 7(fvec4)
48(ts.psIn.pos): 47(ptr) Variable Output 48(ts.pos): 47(ptr) Variable Output
51(PS_IN): TypeStruct 8(fvec2) 51: TypePointer Output 8(fvec2)
52(STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO): TypeStruct 15 16(int) 52(ts.psIn.tc): 51(ptr) Variable Output
53(GS_OUT): TypeStruct 51(PS_IN) 52(STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO) 55: TypePointer Output 6(float)
54: TypePointer Output 53(GS_OUT) 56(ts.contains_no_builtin_io.m0_array[0]): 55(ptr) Variable Output
55(ts): 54(ptr) Variable Output 59(ts.contains_no_builtin_io.m0_array[1]): 55(ptr) Variable Output
58: TypePointer Output 8(fvec2) 62: TypePointer Output 16(int)
60: TypePointer Function 17(STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO) 63(ts.contains_no_builtin_io.m1): 62(ptr) Variable Output
63: TypePointer Output 52(STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO) 67: TypeArray 7(fvec4) 11
66: TypePointer Output 15 68: TypePointer Input 67
69: TypePointer Output 16(int) 69(tin.pos): 68(ptr) Variable Input
72: TypeArray 7(fvec4) 11 70: TypePointer Input 7(fvec4)
73: TypePointer Input 72 74(PS_IN): TypeStruct 8(fvec2)
74(tin.pos): 73(ptr) Variable Input 75: TypeArray 74(PS_IN) 11
75: TypePointer Input 7(fvec4) 76: TypePointer Input 75
79(PS_IN): TypeStruct 8(fvec2) 77(tin): 76(ptr) Variable Input
80: TypeArray 79(PS_IN) 11 78: TypePointer Input 8(fvec2)
81: TypePointer Input 80
82(tin): 81(ptr) Variable Input
83: TypePointer Input 8(fvec2)
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
71(tin): 13(ptr) Variable Function 66(tin): 13(ptr) Variable Function
99(ts): 19(ptr) Variable Function 94(ts): 19(ptr) Variable Function
100(param): 13(ptr) Variable Function 95(param): 13(ptr) Variable Function
102(param): 19(ptr) Variable Function 97(param): 19(ptr) Variable Function
76: 75(ptr) AccessChain 74(tin.pos) 26 71: 70(ptr) AccessChain 69(tin.pos) 26
77: 7(fvec4) Load 76 72: 7(fvec4) Load 71
78: 32(ptr) AccessChain 71(tin) 26 26 73: 32(ptr) AccessChain 66(tin) 26 26
Store 78 77 Store 73 72
84: 83(ptr) AccessChain 82(tin) 26 26 79: 78(ptr) AccessChain 77(tin) 26 26
85: 8(fvec2) Load 84 80: 8(fvec2) Load 79
86: 38(ptr) AccessChain 71(tin) 26 34 81: 38(ptr) AccessChain 66(tin) 26 34
Store 86 85 Store 81 80
87: 75(ptr) AccessChain 74(tin.pos) 34 82: 70(ptr) AccessChain 69(tin.pos) 34
88: 7(fvec4) Load 87 83: 7(fvec4) Load 82
89: 32(ptr) AccessChain 71(tin) 34 26 84: 32(ptr) AccessChain 66(tin) 34 26
Store 89 88 Store 84 83
90: 83(ptr) AccessChain 82(tin) 34 26 85: 78(ptr) AccessChain 77(tin) 34 26
91: 8(fvec2) Load 90 86: 8(fvec2) Load 85
92: 38(ptr) AccessChain 71(tin) 34 34 87: 38(ptr) AccessChain 66(tin) 34 34
Store 92 91 Store 87 86
93: 75(ptr) AccessChain 74(tin.pos) 44 88: 70(ptr) AccessChain 69(tin.pos) 44
94: 7(fvec4) Load 93 89: 7(fvec4) Load 88
95: 32(ptr) AccessChain 71(tin) 44 26 90: 32(ptr) AccessChain 66(tin) 44 26
Store 95 94 Store 90 89
96: 83(ptr) AccessChain 82(tin) 44 26 91: 78(ptr) AccessChain 77(tin) 44 26
97: 8(fvec2) Load 96 92: 8(fvec2) Load 91
98: 38(ptr) AccessChain 71(tin) 44 34 93: 38(ptr) AccessChain 66(tin) 44 34
Store 98 97 Store 93 92
101: 12 Load 71(tin) 96: 12 Load 66(tin)
Store 100(param) 101 Store 95(param) 96
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) 98: 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;) 95(param) 97(param)
104: 18(GS_OUT) Load 102(param) 99: 18(GS_OUT) Load 97(param)
Store 99(ts) 104 Store 94(ts) 99
Return Return
FunctionEnd 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 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
@ -562,20 +599,19 @@ output primitive = triangle_strip
Store 46 44 Store 46 44
49: 32(ptr) AccessChain 25(o) 26 26 49: 32(ptr) AccessChain 25(o) 26 26
50: 7(fvec4) Load 49 50: 7(fvec4) Load 49
Store 48(ts.psIn.pos) 50 Store 48(ts.pos) 50
56: 38(ptr) AccessChain 25(o) 26 34 53: 38(ptr) AccessChain 25(o) 26 34
57: 8(fvec2) Load 56 54: 8(fvec2) Load 53
59: 58(ptr) AccessChain 55(ts) 26 26 Store 52(ts.psIn.tc) 54
Store 59 57 57: 41(ptr) AccessChain 25(o) 34 26 26
61: 60(ptr) AccessChain 25(o) 34 58: 6(float) Load 57
62:17(STRUCT_WITH_NO_BUILTIN_INTERSTAGE_IO) Load 61 Store 56(ts.contains_no_builtin_io.m0_array[0]) 58
64: 63(ptr) AccessChain 55(ts) 34 60: 41(ptr) AccessChain 25(o) 34 26 34
65: 15 CompositeExtract 62 0 61: 6(float) Load 60
67: 66(ptr) AccessChain 64 26 Store 59(ts.contains_no_builtin_io.m0_array[1]) 61
Store 67 65 64: 45(ptr) AccessChain 25(o) 34 34
68: 16(int) CompositeExtract 62 1 65: 16(int) Load 64
70: 69(ptr) AccessChain 64 34 Store 63(ts.contains_no_builtin_io.m1) 65
Store 70 68
EmitVertex EmitVertex
Return Return
FunctionEnd FunctionEnd

View File

@ -55,19 +55,13 @@ output primitive = triangle_strip
0:22 Constant: 0:22 Constant:
0:22 0 (const int) 0:22 0 (const int)
0:22 move second child to first child ( temp 4-component vector of float) 0:22 move second child to first child ( temp 4-component vector of float)
0:22 color: direct index for structure ( temp 4-component vector of float) 0:? 'outStream.color' (layout( location=0) out 4-component vector of float)
0:22 'outStream' (layout( location=0) out structure{ temp 4-component vector of float color, temp 2-component vector of float uv})
0:22 Constant:
0:22 0 (const int)
0:22 color: direct index for structure ( temp 4-component vector of float) 0:22 color: direct index for structure ( temp 4-component vector of float)
0:22 'vout' ( temp structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) 0:22 'vout' ( temp structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
0:22 Constant: 0:22 Constant:
0:22 1 (const int) 0:22 1 (const int)
0:22 move second child to first child ( temp 2-component vector of float) 0:22 move second child to first child ( temp 2-component vector of float)
0:22 uv: direct index for structure ( temp 2-component vector of float) 0:? 'outStream.uv' (layout( location=1) out 2-component vector of float)
0:22 'outStream' (layout( location=0) out structure{ temp 4-component vector of float color, temp 2-component vector of float uv})
0:22 Constant:
0:22 1 (const int)
0:22 uv: direct index for structure ( temp 2-component vector of float) 0:22 uv: direct index for structure ( temp 2-component vector of float)
0:22 'vout' ( temp structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) 0:22 'vout' ( temp structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
0:22 Constant: 0:22 Constant:
@ -85,7 +79,8 @@ output primitive = triangle_strip
0:? Linker Objects 0:? Linker Objects
0:? 'vin' (layout( location=0) in 2-element array of structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) 0:? 'vin' (layout( location=0) in 2-element array of structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
0:? 'outStream.position' ( out 4-component vector of float Position) 0:? 'outStream.position' ( out 4-component vector of float Position)
0:? 'outStream' (layout( location=0) out structure{ temp 4-component vector of float color, temp 2-component vector of float uv}) 0:? 'outStream.color' (layout( location=0) out 4-component vector of float)
0:? 'outStream.uv' (layout( location=1) out 2-component vector of float)
Linked geometry stage: Linked geometry stage:
@ -147,19 +142,13 @@ output primitive = triangle_strip
0:22 Constant: 0:22 Constant:
0:22 0 (const int) 0:22 0 (const int)
0:22 move second child to first child ( temp 4-component vector of float) 0:22 move second child to first child ( temp 4-component vector of float)
0:22 color: direct index for structure ( temp 4-component vector of float) 0:? 'outStream.color' (layout( location=0) out 4-component vector of float)
0:22 'outStream' (layout( location=0) out structure{ temp 4-component vector of float color, temp 2-component vector of float uv})
0:22 Constant:
0:22 0 (const int)
0:22 color: direct index for structure ( temp 4-component vector of float) 0:22 color: direct index for structure ( temp 4-component vector of float)
0:22 'vout' ( temp structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) 0:22 'vout' ( temp structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
0:22 Constant: 0:22 Constant:
0:22 1 (const int) 0:22 1 (const int)
0:22 move second child to first child ( temp 2-component vector of float) 0:22 move second child to first child ( temp 2-component vector of float)
0:22 uv: direct index for structure ( temp 2-component vector of float) 0:? 'outStream.uv' (layout( location=1) out 2-component vector of float)
0:22 'outStream' (layout( location=0) out structure{ temp 4-component vector of float color, temp 2-component vector of float uv})
0:22 Constant:
0:22 1 (const int)
0:22 uv: direct index for structure ( temp 2-component vector of float) 0:22 uv: direct index for structure ( temp 2-component vector of float)
0:22 'vout' ( temp structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) 0:22 'vout' ( temp structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
0:22 Constant: 0:22 Constant:
@ -177,16 +166,17 @@ output primitive = triangle_strip
0:? Linker Objects 0:? Linker Objects
0:? 'vin' (layout( location=0) in 2-element array of structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv}) 0:? 'vin' (layout( location=0) in 2-element array of structure{ temp 4-component vector of float position, temp 4-component vector of float color, temp 2-component vector of float uv})
0:? 'outStream.position' ( out 4-component vector of float Position) 0:? 'outStream.position' ( out 4-component vector of float Position)
0:? 'outStream' (layout( location=0) out structure{ temp 4-component vector of float color, temp 2-component vector of float uv}) 0:? 'outStream.color' (layout( location=0) out 4-component vector of float)
0:? 'outStream.uv' (layout( location=1) out 2-component vector of float)
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80001 // Generated by (magic number): 80001
// Id's are bound by 61 // Id's are bound by 58
Capability Geometry Capability Geometry
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Geometry 4 "main" 38 43 53 EntryPoint Geometry 4 "main" 38 41 45 50
ExecutionMode 4 InputLines ExecutionMode 4 InputLines
ExecutionMode 4 Invocations 1 ExecutionMode 4 Invocations 1
ExecutionMode 4 OutputTriangleStrip ExecutionMode 4 OutputTriangleStrip
@ -206,18 +196,17 @@ output primitive = triangle_strip
Name 18 "outStream" Name 18 "outStream"
Name 21 "vout" Name 21 "vout"
Name 38 "outStream.position" Name 38 "outStream.position"
Name 41 "PS_IN" Name 41 "outStream.color"
MemberName 41(PS_IN) 0 "color" Name 45 "outStream.uv"
MemberName 41(PS_IN) 1 "uv" Name 48 "vin"
Name 43 "outStream" Name 50 "vin"
Name 51 "vin" Name 52 "outStream"
Name 53 "vin" Name 53 "param"
Name 55 "outStream" Name 55 "param"
Name 56 "param"
Name 58 "param"
Decorate 38(outStream.position) BuiltIn Position Decorate 38(outStream.position) BuiltIn Position
Decorate 43(outStream) Location 0 Decorate 41(outStream.color) Location 0
Decorate 53(vin) Location 0 Decorate 45(outStream.uv) Location 1
Decorate 50(vin) Location 0
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeFloat 32 6: TypeFloat 32
@ -239,25 +228,24 @@ output primitive = triangle_strip
33: 22(int) Constant 0 33: 22(int) Constant 0
37: TypePointer Output 7(fvec4) 37: TypePointer Output 7(fvec4)
38(outStream.position): 37(ptr) Variable Output 38(outStream.position): 37(ptr) Variable Output
41(PS_IN): TypeStruct 7(fvec4) 8(fvec2) 41(outStream.color): 37(ptr) Variable Output
42: TypePointer Output 41(PS_IN) 44: TypePointer Output 8(fvec2)
43(outStream): 42(ptr) Variable Output 45(outStream.uv): 44(ptr) Variable Output
49: TypePointer Output 8(fvec2) 49: TypePointer Input 12
52: TypePointer Input 12 50(vin): 49(ptr) Variable Input
53(vin): 52(ptr) Variable Input
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
51(vin): 13(ptr) Variable Function 48(vin): 13(ptr) Variable Function
55(outStream): 15(ptr) Variable Function 52(outStream): 15(ptr) Variable Function
56(param): 13(ptr) Variable Function 53(param): 13(ptr) Variable Function
58(param): 15(ptr) Variable Function 55(param): 15(ptr) Variable Function
54: 12 Load 53(vin) 51: 12 Load 50(vin)
Store 51(vin) 54 Store 48(vin) 51
57: 12 Load 51(vin) 54: 12 Load 48(vin)
Store 56(param) 57 Store 53(param) 54
59: 2 FunctionCall 19(@main(struct-VertexData-vf4-vf4-vf21[2];struct-PS_IN-vf4-vf4-vf21;) 56(param) 58(param) 56: 2 FunctionCall 19(@main(struct-VertexData-vf4-vf4-vf21[2];struct-PS_IN-vf4-vf4-vf21;) 53(param) 55(param)
60: 14(PS_IN) Load 58(param) 57: 14(PS_IN) Load 55(param)
Store 55(outStream) 60 Store 52(outStream) 57
Return Return
FunctionEnd FunctionEnd
19(@main(struct-VertexData-vf4-vf4-vf21[2];struct-PS_IN-vf4-vf4-vf21;): 2 Function None 16 19(@main(struct-VertexData-vf4-vf4-vf21[2];struct-PS_IN-vf4-vf4-vf21;): 2 Function None 16
@ -280,14 +268,12 @@ output primitive = triangle_strip
39: 24(ptr) AccessChain 21(vout) 33 39: 24(ptr) AccessChain 21(vout) 33
40: 7(fvec4) Load 39 40: 7(fvec4) Load 39
Store 38(outStream.position) 40 Store 38(outStream.position) 40
44: 24(ptr) AccessChain 21(vout) 23 42: 24(ptr) AccessChain 21(vout) 23
45: 7(fvec4) Load 44 43: 7(fvec4) Load 42
46: 37(ptr) AccessChain 43(outStream) 33 Store 41(outStream.color) 43
Store 46 45 46: 29(ptr) AccessChain 21(vout) 28
47: 29(ptr) AccessChain 21(vout) 28 47: 8(fvec2) Load 46
48: 8(fvec2) Load 47 Store 45(outStream.uv) 47
50: 49(ptr) AccessChain 43(outStream) 23
Store 50 48
EmitVertex EmitVertex
Return Return
FunctionEnd FunctionEnd

View File

@ -125,15 +125,24 @@ Shader version: 500
0:? 'd' ( temp 4-component vector of float) 0:? 'd' ( 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:? '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:? '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 move second child to first child ( temp 4-component vector of float)
0:8 m: direct index for structure ( temp 2-element array of 4-component vector of float) 0:? '@entryPointOutput.m[0]' (layout( location=0) out 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 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: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 Constant: 0:8 Constant:
0:8 0 (const int) 0:8 0 (const int)
0:8 m: direct index for structure ( temp 2-element array of 4-component vector of float) 0:8 move second child to first child ( 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:? '@entryPointOutput.m[1]' (layout( location=1) out 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: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 Constant: 0:8 Constant:
0:8 0 (const int) 0:8 1 (const int)
0:8 move second child to first child ( temp 4-component vector of float) 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:? '@entryPointOutput.coord' ( out 4-component vector of float Position)
0:8 coord: direct index for structure ( temp 4-component vector of float) 0:8 coord: direct index for structure ( temp 4-component vector of float)
@ -141,17 +150,16 @@ Shader version: 500
0:8 Constant: 0:8 Constant:
0:8 1 (const int) 0:8 1 (const int)
0:8 move second child to first child ( temp 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 ( smooth temp 4-component vector of float) 0:? '@entryPointOutput.b' (layout( location=2) smooth out 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 1 (const int)
0:8 b: direct index for structure ( temp 4-component vector of float) 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 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 Constant: 0:8 Constant:
0:8 2 (const int) 0:8 2 (const int)
0:? Linker Objects 0:? Linker Objects
0:? '@entryPointOutput.coord' ( out 4-component vector of float Position) 0:? '@entryPointOutput.coord' ( out 4-component vector of float Position)
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:? '@entryPointOutput.m[0]' (layout( location=0) out 4-component vector of float)
0:? '@entryPointOutput.m[1]' (layout( location=1) out 4-component vector of float)
0:? '@entryPointOutput.b' (layout( location=2) smooth out 4-component vector of float)
0:? 'd' (layout( location=0) in 4-component vector of float) 0:? 'd' (layout( location=0) in 4-component vector of float)
0:? 'vi.m[0]' (layout( location=1) in 4-component vector of float) 0:? 'vi.m[0]' (layout( location=1) in 4-component vector of float)
0:? 'vi.m[1]' (layout( location=2) in 4-component vector of float) 0:? 'vi.m[1]' (layout( location=2) in 4-component vector of float)
@ -289,15 +297,24 @@ Shader version: 500
0:? 'd' ( temp 4-component vector of float) 0:? 'd' ( 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:? '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:? '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 move second child to first child ( temp 4-component vector of float)
0:8 m: direct index for structure ( temp 2-element array of 4-component vector of float) 0:? '@entryPointOutput.m[0]' (layout( location=0) out 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 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: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 Constant: 0:8 Constant:
0:8 0 (const int) 0:8 0 (const int)
0:8 m: direct index for structure ( temp 2-element array of 4-component vector of float) 0:8 move second child to first child ( 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:? '@entryPointOutput.m[1]' (layout( location=1) out 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: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 Constant: 0:8 Constant:
0:8 0 (const int) 0:8 1 (const int)
0:8 move second child to first child ( temp 4-component vector of float) 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:? '@entryPointOutput.coord' ( out 4-component vector of float Position)
0:8 coord: direct index for structure ( temp 4-component vector of float) 0:8 coord: direct index for structure ( temp 4-component vector of float)
@ -305,17 +322,16 @@ Shader version: 500
0:8 Constant: 0:8 Constant:
0:8 1 (const int) 0:8 1 (const int)
0:8 move second child to first child ( temp 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 ( smooth temp 4-component vector of float) 0:? '@entryPointOutput.b' (layout( location=2) smooth out 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 1 (const int)
0:8 b: direct index for structure ( temp 4-component vector of float) 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 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 Constant: 0:8 Constant:
0:8 2 (const int) 0:8 2 (const int)
0:? Linker Objects 0:? Linker Objects
0:? '@entryPointOutput.coord' ( out 4-component vector of float Position) 0:? '@entryPointOutput.coord' ( out 4-component vector of float Position)
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:? '@entryPointOutput.m[0]' (layout( location=0) out 4-component vector of float)
0:? '@entryPointOutput.m[1]' (layout( location=1) out 4-component vector of float)
0:? '@entryPointOutput.b' (layout( location=2) smooth out 4-component vector of float)
0:? 'd' (layout( location=0) in 4-component vector of float) 0:? 'd' (layout( location=0) in 4-component vector of float)
0:? 'vi.m[0]' (layout( location=1) in 4-component vector of float) 0:? 'vi.m[0]' (layout( location=1) in 4-component vector of float)
0:? 'vi.m[1]' (layout( location=2) in 4-component vector of float) 0:? 'vi.m[1]' (layout( location=2) in 4-component vector of float)
@ -325,12 +341,12 @@ Shader version: 500
// Module Version 10000 // Module Version 10000
// Generated by (magic number): 80001 // Generated by (magic number): 80001
// Id's are bound by 96 // Id's are bound by 94
Capability Shader Capability Shader
1: ExtInstImport "GLSL.std.450" 1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450 MemoryModel Logical GLSL450
EntryPoint Vertex 4 "main" 55 58 61 64 67 71 83 90 EntryPoint Vertex 4 "main" 55 58 61 64 67 71 82 85 88 91
Source HLSL 500 Source HLSL 500
Name 4 "main" Name 4 "main"
Name 12 "VI" Name 12 "VI"
@ -355,19 +371,20 @@ Shader version: 500
Name 74 "param" Name 74 "param"
Name 76 "param" Name 76 "param"
Name 78 "param" Name 78 "param"
Name 81 "VI" Name 82 "@entryPointOutput.m[0]"
MemberName 81(VI) 0 "m" Name 85 "@entryPointOutput.m[1]"
MemberName 81(VI) 1 "b" Name 88 "@entryPointOutput.coord"
Name 83 "@entryPointOutput" Name 91 "@entryPointOutput.b"
Name 90 "@entryPointOutput.coord"
Decorate 55(d) Location 0 Decorate 55(d) Location 0
Decorate 58(vi.m[0]) Location 1 Decorate 58(vi.m[0]) Location 1
Decorate 61(vi.m[1]) Location 2 Decorate 61(vi.m[1]) Location 2
Decorate 64(vi.coord) Location 3 Decorate 64(vi.coord) Location 3
Decorate 67(vi.b) Location 4 Decorate 67(vi.b) Location 4
Decorate 71(e) Location 5 Decorate 71(e) Location 5
Decorate 83(@entryPointOutput) Location 0 Decorate 82(@entryPointOutput.m[0]) Location 0
Decorate 90(@entryPointOutput.coord) BuiltIn Position Decorate 85(@entryPointOutput.m[1]) Location 1
Decorate 88(@entryPointOutput.coord) BuiltIn Position
Decorate 91(@entryPointOutput.b) Location 2
2: TypeVoid 2: TypeVoid
3: TypeFunction 2 3: TypeFunction 2
6: TypeFloat 32 6: TypeFloat 32
@ -398,13 +415,11 @@ Shader version: 500
64(vi.coord): 54(ptr) Variable Input 64(vi.coord): 54(ptr) Variable Input
67(vi.b): 54(ptr) Variable Input 67(vi.b): 54(ptr) Variable Input
71(e): 54(ptr) Variable Input 71(e): 54(ptr) Variable Input
81(VI): TypeStruct 11 7(fvec4) 81: TypePointer Output 7(fvec4)
82: TypePointer Output 81(VI) 82(@entryPointOutput.m[0]): 81(ptr) Variable Output
83(@entryPointOutput): 82(ptr) Variable Output 85(@entryPointOutput.m[1]): 81(ptr) Variable Output
84: TypePointer Function 11 88(@entryPointOutput.coord): 81(ptr) Variable Output
87: TypePointer Output 11 91(@entryPointOutput.b): 81(ptr) Variable Output
89: TypePointer Output 7(fvec4)
90(@entryPointOutput.coord): 89(ptr) Variable Output
4(main): 2 Function None 3 4(main): 2 Function None 3
5: Label 5: Label
53(d): 8(ptr) Variable Function 53(d): 8(ptr) Variable Function
@ -438,17 +453,18 @@ Shader version: 500
Store 78(param) 79 Store 78(param) 79
80: 12(VI) FunctionCall 18(@main(vf4;struct-VI-vf4[2]-vf4-vf41;vf4;) 74(param) 76(param) 78(param) 80: 12(VI) FunctionCall 18(@main(vf4;struct-VI-vf4[2]-vf4-vf41;vf4;) 74(param) 76(param) 78(param)
Store 73(flattenTemp) 80 Store 73(flattenTemp) 80
85: 84(ptr) AccessChain 73(flattenTemp) 23 83: 8(ptr) AccessChain 73(flattenTemp) 23 23
86: 11 Load 85 84: 7(fvec4) Load 83
88: 87(ptr) AccessChain 83(@entryPointOutput) 23 Store 82(@entryPointOutput.m[0]) 84
Store 88 86 86: 8(ptr) AccessChain 73(flattenTemp) 23 24
91: 8(ptr) AccessChain 73(flattenTemp) 24 87: 7(fvec4) Load 86
92: 7(fvec4) Load 91 Store 85(@entryPointOutput.m[1]) 87
Store 90(@entryPointOutput.coord) 92 89: 8(ptr) AccessChain 73(flattenTemp) 24
93: 8(ptr) AccessChain 73(flattenTemp) 22 90: 7(fvec4) Load 89
94: 7(fvec4) Load 93 Store 88(@entryPointOutput.coord) 90
95: 89(ptr) AccessChain 83(@entryPointOutput) 24 92: 8(ptr) AccessChain 73(flattenTemp) 22
Store 95 94 93: 7(fvec4) Load 92
Store 91(@entryPointOutput.b) 93
Return Return
FunctionEnd FunctionEnd
18(@main(vf4;struct-VI-vf4[2]-vf4-vf41;vf4;): 12(VI) Function None 14 18(@main(vf4;struct-VI-vf4[2]-vf4-vf41;vf4;): 12(VI) Function None 14

View File

@ -18,11 +18,11 @@ struct gs_in_t
}; };
[domain ( "tri" )] [domain ( "tri" )]
gs_in_t main (const OutputPatch <ds_in_t, 3> i, float3 tesscoord : SV_DomainLocation, pcf_in_t pcf_data ) gs_in_t main (const OutputPatch <ds_in_t, 3> i, float f : msem, float3 tesscoord : SV_DomainLocation, pcf_in_t pcf_data )
{ {
gs_in_t o; gs_in_t o;
o.pos = i[0].pos + tesscoord.x; o.pos = i[0].pos + tesscoord.x * f;
o.norm = i[0].norm + tesscoord.y; o.norm = i[0].norm + tesscoord.y;
tesscoord.z; tesscoord.z;

View File

@ -1270,16 +1270,16 @@ int HlslParseContext::addFlattenedMember(const TVariable& variable, const TType&
if (flattenData.nextBinding != TQualifier::layoutBindingEnd) if (flattenData.nextBinding != TQualifier::layoutBindingEnd)
memberVariable->getWritableType().getQualifier().layoutBinding = flattenData.nextBinding++; memberVariable->getWritableType().getQualifier().layoutBinding = flattenData.nextBinding++;
if (!memberVariable->getType().isBuiltIn()) { if (memberVariable->getType().isBuiltIn()) {
// inherited locations are nonsensical for built-ins (TODO: what if semantic had a number)
memberVariable->getWritableType().getQualifier().layoutLocation = TQualifier::layoutLocationEnd;
} else {
// inherited locations must be auto bumped, not replicated // inherited locations must be auto bumped, not replicated
if (flattenData.nextLocation != TQualifier::layoutLocationEnd) { if (flattenData.nextLocation != TQualifier::layoutLocationEnd) {
memberVariable->getWritableType().getQualifier().layoutLocation = flattenData.nextLocation; memberVariable->getWritableType().getQualifier().layoutLocation = flattenData.nextLocation;
flattenData.nextLocation += intermediate.computeTypeLocationSize(memberVariable->getType()); flattenData.nextLocation += intermediate.computeTypeLocationSize(memberVariable->getType());
nextOutLocation = std::max(nextOutLocation, flattenData.nextLocation); nextOutLocation = std::max(nextOutLocation, flattenData.nextLocation);
} }
} else {
// inherited locations are nonsensical for built-ins
memberVariable->getWritableType().getQualifier().layoutLocation = TQualifier::layoutLocationEnd;
} }
flattenData.offsets.push_back(static_cast<int>(flattenData.members.size())); flattenData.offsets.push_back(static_cast<int>(flattenData.members.size()));
@ -1484,11 +1484,7 @@ void HlslParseContext::fixBuiltInIoType(TType& type)
// Alter or set array size as needed. // Alter or set array size as needed.
if (requiredArraySize > 0) { if (requiredArraySize > 0) {
if (type.isArray()) { if (!type.isArray() || type.getOuterArraySize() != requiredArraySize) {
// Already an array. Fix the size.
type.changeOuterArraySize(requiredArraySize);
} else {
// it wasn't an array, but needs to be.
TArraySizes arraySizes; TArraySizes arraySizes;
arraySizes.addInnerSize(requiredArraySize); arraySizes.addInnerSize(requiredArraySize);
type.newArraySizes(arraySizes); type.newArraySizes(arraySizes);
@ -1916,19 +1912,15 @@ TIntermNode* HlslParseContext::transformEntryPoint(const TSourceLoc& loc, TFunct
// Further this return/in/out transform by flattening, splitting, and assigning locations // Further this return/in/out transform by flattening, splitting, and assigning locations
const auto makeVariableInOut = [&](TVariable& variable) { const auto makeVariableInOut = [&](TVariable& variable) {
if (variable.getType().isStruct()) { if (variable.getType().isStruct()) {
const TStorageQualifier qualifier = variable.getType().getQualifier().storage; if (variable.getType().getQualifier().isArrayedIo(language)) {
// struct inputs to the vertex stage and outputs from the fragment stage must be flattened if (variable.getType().containsBuiltIn())
if ((language == EShLangVertex && qualifier == EvqVaryingIn) || split(variable);
(language == EShLangFragment && qualifier == EvqVaryingOut)) } else
flatten(variable, false /* don't track linkage here, it will be tracked in assignToInterface() */); flatten(variable, false /* don't track linkage here, it will be tracked in assignToInterface() */);
// Structs containing built-ins must be split
else if (variable.getType().containsBuiltIn())
split(variable);
else if (!variable.getType().getQualifier().isArrayedIo(language))
flatten(variable, false);
//else
// TODO: unify split and flatten, so all paths can create flattened I/O
} }
// TODO: flatten arrays too
// TODO: flatten everything in I/O
// TODO: replace all split with flatten, make all paths can create flattened I/O, then split code can be removed
// For clip and cull distance, multiple output variables potentially get merged // For clip and cull distance, multiple output variables potentially get merged
// into one in assignClipCullDistance. That code in assignClipCullDistance // into one in assignClipCullDistance. That code in assignClipCullDistance
@ -8698,6 +8690,7 @@ void HlslParseContext::correctInput(TQualifier& qualifier)
qualifier.sample = false; qualifier.sample = false;
} }
// TODO: handle clip/cull on the input side; this doesn't work, see overwrite of .layoutLocation later
if (isClipOrCullDistance(qualifier)) if (isClipOrCullDistance(qualifier))
qualifier.layoutLocation = TQualifier::layoutLocationEnd; qualifier.layoutLocation = TQualifier::layoutLocationEnd;