HLSL: Emulate write-to-output on return-from-entry-point, for return value.

This fixes issue #487 and #480.
It also correctly handles output parameters from the entry point.
This commit is contained in:
John Kessenich
2016-08-28 15:00:23 -06:00
parent 81cd764b5f
commit 6a70eb7161
91 changed files with 5158 additions and 4130 deletions

View File

@@ -13,7 +13,7 @@ Linked fragment stage:
Capability Sampled1D
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 5663 "main"
EntryPoint Fragment 5663 "main" 4045
ExecutionMode 5663 OriginUpperLeft
Decorate 4727 DescriptorSet 0
Decorate 4727 Binding 0
@@ -128,6 +128,8 @@ Linked fragment stage:
138: 13(float) Constant 1065353216
1284: 29(fvec4) ConstantComposite 138 138 138 138
650: TypePointer Function 13(float)
1670: TypePointer Output 1032(struct)
4045: 1670(ptr) Variable Output
5663: 8 Function None 1282
24915: Label
5830: 1972(ptr) Variable Function
@@ -208,6 +210,7 @@ Linked fragment stage:
Store 20158 1284
19657: 650(ptr) AccessChain 5072 2574
Store 19657 138
21536:1032(struct) Load 5072
ReturnValue 21536
17934:1032(struct) Load 5072
Store 4045 17934
Return
FunctionEnd