HLSL: Wrap the entry-point; need to write 'in' args, and support 'inout' args.

This needs some render testing, but is destined to be part of master.

This also leads to a variety of other simplifications.
 - IO are global symbols, so only need one list of linkage nodes (deferred)
 - no longer need parse-context-wide 'inEntryPoint' state, entry-point is localized
 - several parts of splitting/flattening are now localized
This commit is contained in:
John Kessenich
2017-01-19 15:41:47 -07:00
parent 18adbdbbb8
commit 02467d8d94
171 changed files with 37604 additions and 32679 deletions

View File

@@ -3,7 +3,7 @@ WARNING: 0:4: 'immediate sampler state' : unimplemented
// Module Version 10000
// Generated by (magic number): 80001
// Id's are bound by 24916
// Id's are bound by 24878
Capability Shader
Capability Sampled1D
@@ -30,6 +30,10 @@ WARNING: 0:4: 'immediate sampler state' : unimplemented
Decorate 4112 BuiltIn FragDepth
8: TypeVoid
1282: TypeFunction 8
13: TypeFloat 32
29: TypeVector 13(float) 4
1032: TypeStruct 29(fvec4) 13(float)
319: TypeFunction 1032(struct)
12: TypeInt 32 1
1335: TypeStruct 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int) 12(int)
1972: TypePointer Function 1335(struct)
@@ -46,8 +50,6 @@ WARNING: 0:4: 'immediate sampler state' : unimplemented
2598: 12(int) Constant 9
2601: 12(int) Constant 10
2604: 12(int) Constant 11
13: TypeFloat 32
29: TypeVector 13(float) 4
666: TypePointer Function 29(fvec4)
149: TypeImage 13(float) 1D sampled format:Unknown
786: TypePointer UniformConstant 149
@@ -120,7 +122,6 @@ WARNING: 0:4: 'immediate sampler state' : unimplemented
795: TypePointer UniformConstant 158
3869: 795(ptr) Variable UniformConstant
521: TypeSampledImage 158
1032: TypeStruct 29(fvec4) 13(float)
1669: TypePointer Function 1032(struct)
138: 13(float) Constant 1065353216
1284: 29(fvec4) ConstantComposite 138 138 138 138
@@ -130,90 +131,98 @@ WARNING: 0:4: 'immediate sampler state' : unimplemented
651: TypePointer Output 13(float)
4112: 651(ptr) Variable Output
5663: 8 Function None 1282
24915: Label
5830: 1972(ptr) Variable Function
5072: 1669(ptr) Variable Function
22097: 649(ptr) AccessChain 5830 2574
Store 22097 2574
19732: 649(ptr) AccessChain 5830 2577
Store 19732 2574
19733: 649(ptr) AccessChain 5830 2580
Store 19733 2574
19734: 649(ptr) AccessChain 5830 2583
Store 19734 2574
19735: 649(ptr) AccessChain 5830 2586
Store 19735 2574
19736: 649(ptr) AccessChain 5830 2589
Store 19736 2574
19737: 649(ptr) AccessChain 5830 2571
Store 19737 2574
19738: 649(ptr) AccessChain 5830 2592
Store 19738 2574
19739: 649(ptr) AccessChain 5830 2595
Store 19739 2574
19740: 649(ptr) AccessChain 5830 2598
Store 19740 2574
19741: 649(ptr) AccessChain 5830 2601
Store 19741 2574
19656: 649(ptr) AccessChain 5830 2604
Store 19656 2574
14934: 149 Load 4727
11686: 508 Load 3305
11940: 510 SampledImage 14934 11686
7877: 29(fvec4) ImageSampleImplicitLod 11940 2935
15360: 148 Load 4743
15706: 508 Load 3305
11941: 511 SampledImage 15360 15706
7878: 26(ivec4) ImageSampleImplicitLod 11941 2821
15361: 147 Load 4807
15707: 508 Load 3305
11942: 512 SampledImage 15361 15707
7879: 23(ivec4) ImageSampleImplicitLod 11942 2151
15362: 150 Load 5042
15708: 508 Load 3305
11943: 513 SampledImage 15362 15708
7880: 29(fvec4) ImageSampleImplicitLod 11943 1825
15363: 151 Load 5058
15709: 508 Load 3305
11944: 514 SampledImage 15363 15709
7881: 26(ivec4) ImageSampleImplicitLod 11944 2028
15364: 152 Load 5122
15710: 508 Load 3305
11945: 515 SampledImage 15364 15710
7882: 23(ivec4) ImageSampleImplicitLod 11945 2684
15365: 153 Load 3967
15711: 508 Load 3305
11946: 516 SampledImage 15365 15711
7883: 29(fvec4) ImageSampleImplicitLod 11946 1660
15366: 154 Load 3983
15712: 508 Load 3305
11947: 517 SampledImage 15366 15712
7884: 26(ivec4) ImageSampleImplicitLod 11947 2174
15367: 155 Load 4047
15713: 508 Load 3305
11948: 518 SampledImage 15367 15713
7885: 23(ivec4) ImageSampleImplicitLod 11948 2476
15368: 156 Load 3789
15714: 508 Load 3305
11949: 519 SampledImage 15368 15714
7886: 29(fvec4) ImageSampleImplicitLod 11949 1660
15369: 157 Load 3805
15715: 508 Load 3305
11950: 520 SampledImage 15369 15715
7887: 26(ivec4) ImageSampleImplicitLod 11950 2174
15370: 158 Load 3869
15716: 508 Load 3305
12016: 521 SampledImage 15370 15716
7204: 23(ivec4) ImageSampleImplicitLod 12016 2476
20158: 666(ptr) AccessChain 5072 2571
Store 20158 1284
19742: 650(ptr) AccessChain 5072 2574
Store 19742 138
19848: 666(ptr) AccessChain 5072 2571
7967: 29(fvec4) Load 19848
24877: Label
4104: 1669(ptr) Variable Function
18803:1032(struct) FunctionCall 3317
Store 4104 18803
13396: 666(ptr) AccessChain 4104 2571
7967: 29(fvec4) Load 13396
Store 4656 7967
16622: 650(ptr) AccessChain 5072 2574
16622: 650(ptr) AccessChain 4104 2574
11539: 13(float) Load 16622
Store 4112 11539
Return
FunctionEnd
3317:1032(struct) Function None 319
12442: Label
5830: 1972(ptr) Variable Function
5072: 1669(ptr) Variable Function
22671: 649(ptr) AccessChain 5830 2574
Store 22671 2574
20306: 649(ptr) AccessChain 5830 2577
Store 20306 2574
20307: 649(ptr) AccessChain 5830 2580
Store 20307 2574
20308: 649(ptr) AccessChain 5830 2583
Store 20308 2574
20309: 649(ptr) AccessChain 5830 2586
Store 20309 2574
20310: 649(ptr) AccessChain 5830 2589
Store 20310 2574
20311: 649(ptr) AccessChain 5830 2571
Store 20311 2574
20312: 649(ptr) AccessChain 5830 2592
Store 20312 2574
20313: 649(ptr) AccessChain 5830 2595
Store 20313 2574
20314: 649(ptr) AccessChain 5830 2598
Store 20314 2574
20315: 649(ptr) AccessChain 5830 2601
Store 20315 2574
20230: 649(ptr) AccessChain 5830 2604
Store 20230 2574
15508: 149 Load 4727
12260: 508 Load 3305
12514: 510 SampledImage 15508 12260
21065: 29(fvec4) ImageSampleImplicitLod 12514 2935
9477: 148 Load 4743
16280: 508 Load 3305
12515: 511 SampledImage 9477 16280
21066: 26(ivec4) ImageSampleImplicitLod 12515 2821
9478: 147 Load 4807
16281: 508 Load 3305
12516: 512 SampledImage 9478 16281
21067: 23(ivec4) ImageSampleImplicitLod 12516 2151
9479: 150 Load 5042
16282: 508 Load 3305
12517: 513 SampledImage 9479 16282
21068: 29(fvec4) ImageSampleImplicitLod 12517 1825
9480: 151 Load 5058
16283: 508 Load 3305
12518: 514 SampledImage 9480 16283
21069: 26(ivec4) ImageSampleImplicitLod 12518 2028
9481: 152 Load 5122
16284: 508 Load 3305
12519: 515 SampledImage 9481 16284
21070: 23(ivec4) ImageSampleImplicitLod 12519 2684
9482: 153 Load 3967
16285: 508 Load 3305
12520: 516 SampledImage 9482 16285
21071: 29(fvec4) ImageSampleImplicitLod 12520 1660
9483: 154 Load 3983
16286: 508 Load 3305
12521: 517 SampledImage 9483 16286
21072: 26(ivec4) ImageSampleImplicitLod 12521 2174
9484: 155 Load 4047
16287: 508 Load 3305
12522: 518 SampledImage 9484 16287
21073: 23(ivec4) ImageSampleImplicitLod 12522 2476
9485: 156 Load 3789
16288: 508 Load 3305
12523: 519 SampledImage 9485 16288
21074: 29(fvec4) ImageSampleImplicitLod 12523 1660
9486: 157 Load 3805
16289: 508 Load 3305
12524: 520 SampledImage 9486 16289
21075: 26(ivec4) ImageSampleImplicitLod 12524 2174
9487: 158 Load 3869
16290: 508 Load 3305
12590: 521 SampledImage 9487 16290
20392: 23(ivec4) ImageSampleImplicitLod 12590 2476
14275: 666(ptr) AccessChain 5072 2571
Store 14275 1284
20231: 650(ptr) AccessChain 5072 2574
Store 20231 138
8692:1032(struct) Load 5072
ReturnValue 8692
FunctionEnd