SPV: Change barrier emission to conform to Khronos decisions.
The memory model group agreed to these definitions for how to map GLSL barrier, memoryBarrier, etc. With HLSL following suit.
This commit is contained in:
parent
070aaeafcd
commit
8297936dd6
19 changed files with 600 additions and 520 deletions
|
|
@ -225,12 +225,12 @@ vertex spacing = equal_spacing
|
|||
|
||||
// Module Version 10000
|
||||
// Generated by (magic number): 80002
|
||||
// Id's are bound by 90
|
||||
// Id's are bound by 89
|
||||
|
||||
Capability Tessellation
|
||||
1: ExtInstImport "GLSL.std.450"
|
||||
MemoryModel Logical GLSL450
|
||||
EntryPoint TessellationControl 4 "main" 40 44 48 66 72
|
||||
EntryPoint TessellationControl 4 "main" 40 44 48 65 71
|
||||
ExecutionMode 4 OutputVertices 4
|
||||
ExecutionMode 4 Isolines
|
||||
ExecutionMode 4 SpacingEqual
|
||||
|
|
@ -255,17 +255,17 @@ vertex spacing = equal_spacing
|
|||
Name 48 "@entryPointOutput"
|
||||
Name 50 "param"
|
||||
Name 52 "param"
|
||||
Name 65 "@patchConstantResult"
|
||||
Name 66 "pid"
|
||||
Name 67 "param"
|
||||
Name 72 "@patchConstantOutput.edges"
|
||||
Name 82 "output"
|
||||
Name 64 "@patchConstantResult"
|
||||
Name 65 "pid"
|
||||
Name 66 "param"
|
||||
Name 71 "@patchConstantOutput.edges"
|
||||
Name 81 "output"
|
||||
Decorate 40(ip) Location 0
|
||||
Decorate 44(m_cpid) BuiltIn InvocationId
|
||||
Decorate 48(@entryPointOutput) Location 0
|
||||
Decorate 66(pid) BuiltIn PrimitiveId
|
||||
Decorate 72(@patchConstantOutput.edges) Patch
|
||||
Decorate 72(@patchConstantOutput.edges) BuiltIn TessLevelOuter
|
||||
Decorate 65(pid) BuiltIn PrimitiveId
|
||||
Decorate 71(@patchConstantOutput.edges) Patch
|
||||
Decorate 71(@patchConstantOutput.edges) BuiltIn TessLevelOuter
|
||||
2: TypeVoid
|
||||
3: TypeFunction 2
|
||||
6: TypeFloat 32
|
||||
|
|
@ -294,27 +294,26 @@ vertex spacing = equal_spacing
|
|||
47: TypePointer Output 46
|
||||
48(@entryPointOutput): 47(ptr) Variable Output
|
||||
55: TypePointer Output 14(HS_OUT)
|
||||
57: 9(int) Constant 1
|
||||
58: 9(int) Constant 0
|
||||
60: TypeBool
|
||||
64: TypePointer Function 22(HS_CONSTANT_OUT)
|
||||
66(pid): 43(ptr) Variable Input
|
||||
70: TypeArray 6(float) 10
|
||||
71: TypePointer Output 70
|
||||
72(@patchConstantOutput.edges): 71(ptr) Variable Output
|
||||
73: TypePointer Function 6(float)
|
||||
76: TypePointer Output 6(float)
|
||||
78: 29(int) Constant 1
|
||||
83: 6(float) Constant 1073741824
|
||||
85: 6(float) Constant 1090519040
|
||||
57: 9(int) Constant 0
|
||||
59: TypeBool
|
||||
63: TypePointer Function 22(HS_CONSTANT_OUT)
|
||||
65(pid): 43(ptr) Variable Input
|
||||
69: TypeArray 6(float) 10
|
||||
70: TypePointer Output 69
|
||||
71(@patchConstantOutput.edges): 70(ptr) Variable Output
|
||||
72: TypePointer Function 6(float)
|
||||
75: TypePointer Output 6(float)
|
||||
77: 29(int) Constant 1
|
||||
82: 6(float) Constant 1073741824
|
||||
84: 6(float) Constant 1090519040
|
||||
4(main): 2 Function None 3
|
||||
5: Label
|
||||
38(ip): 12(ptr) Variable Function
|
||||
42(m_cpid): 13(ptr) Variable Function
|
||||
50(param): 12(ptr) Variable Function
|
||||
52(param): 13(ptr) Variable Function
|
||||
65(@patchConstantResult): 64(ptr) Variable Function
|
||||
67(param): 13(ptr) Variable Function
|
||||
64(@patchConstantResult): 63(ptr) Variable Function
|
||||
66(param): 13(ptr) Variable Function
|
||||
41: 11 Load 40(ip)
|
||||
Store 38(ip) 41
|
||||
45: 9(int) Load 44(m_cpid)
|
||||
|
|
@ -327,26 +326,26 @@ vertex spacing = equal_spacing
|
|||
54: 14(HS_OUT) FunctionCall 18(@main(struct-VS_OUT-vf31[4];u1;) 50(param) 52(param)
|
||||
56: 55(ptr) AccessChain 48(@entryPointOutput) 49
|
||||
Store 56 54
|
||||
ControlBarrier 20 57 58
|
||||
59: 9(int) Load 44(m_cpid)
|
||||
61: 60(bool) IEqual 59 30
|
||||
SelectionMerge 63 None
|
||||
BranchConditional 61 62 63
|
||||
62: Label
|
||||
68: 9(int) Load 66(pid)
|
||||
Store 67(param) 68
|
||||
69:22(HS_CONSTANT_OUT) FunctionCall 25(PCF(u1;) 67(param)
|
||||
Store 65(@patchConstantResult) 69
|
||||
74: 73(ptr) AccessChain 65(@patchConstantResult) 30 30
|
||||
75: 6(float) Load 74
|
||||
77: 76(ptr) AccessChain 72(@patchConstantOutput.edges) 30
|
||||
Store 77 75
|
||||
79: 73(ptr) AccessChain 65(@patchConstantResult) 30 78
|
||||
80: 6(float) Load 79
|
||||
81: 76(ptr) AccessChain 72(@patchConstantOutput.edges) 78
|
||||
Store 81 80
|
||||
Branch 63
|
||||
63: Label
|
||||
ControlBarrier 20 10 57
|
||||
58: 9(int) Load 44(m_cpid)
|
||||
60: 59(bool) IEqual 58 30
|
||||
SelectionMerge 62 None
|
||||
BranchConditional 60 61 62
|
||||
61: Label
|
||||
67: 9(int) Load 65(pid)
|
||||
Store 66(param) 67
|
||||
68:22(HS_CONSTANT_OUT) FunctionCall 25(PCF(u1;) 66(param)
|
||||
Store 64(@patchConstantResult) 68
|
||||
73: 72(ptr) AccessChain 64(@patchConstantResult) 30 30
|
||||
74: 6(float) Load 73
|
||||
76: 75(ptr) AccessChain 71(@patchConstantOutput.edges) 30
|
||||
Store 76 74
|
||||
78: 72(ptr) AccessChain 64(@patchConstantResult) 30 77
|
||||
79: 6(float) Load 78
|
||||
80: 75(ptr) AccessChain 71(@patchConstantOutput.edges) 77
|
||||
Store 80 79
|
||||
Branch 62
|
||||
62: Label
|
||||
Return
|
||||
FunctionEnd
|
||||
18(@main(struct-VS_OUT-vf31[4];u1;): 14(HS_OUT) Function None 15
|
||||
|
|
@ -364,11 +363,11 @@ vertex spacing = equal_spacing
|
|||
25(PCF(u1;):22(HS_CONSTANT_OUT) Function None 23
|
||||
24(pid): 13(ptr) FunctionParameter
|
||||
26: Label
|
||||
82(output): 64(ptr) Variable Function
|
||||
84: 73(ptr) AccessChain 82(output) 30 30
|
||||
Store 84 83
|
||||
86: 73(ptr) AccessChain 82(output) 30 78
|
||||
Store 86 85
|
||||
87:22(HS_CONSTANT_OUT) Load 82(output)
|
||||
ReturnValue 87
|
||||
81(output): 63(ptr) Variable Function
|
||||
83: 72(ptr) AccessChain 81(output) 30 30
|
||||
Store 83 82
|
||||
85: 72(ptr) AccessChain 81(output) 30 77
|
||||
Store 85 84
|
||||
86:22(HS_CONSTANT_OUT) Load 81(output)
|
||||
ReturnValue 86
|
||||
FunctionEnd
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue