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:
John Kessenich 2017-12-11 04:02:24 -07:00
parent 070aaeafcd
commit 8297936dd6
19 changed files with 600 additions and 520 deletions

View file

@ -1,14 +1,14 @@
spv.400.tesc
// Module Version 10000
// Generated by (magic number): 80002
// Id's are bound by 93
// Id's are bound by 92
Capability Tessellation
Capability TessellationPointSize
Capability ClipDistance
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint TessellationControl 4 "main" 24 41 44 47 54 68 73 79 83 84 87 88 91 92
EntryPoint TessellationControl 4 "main" 24 41 44 47 53 67 72 78 82 83 86 87 90 91
ExecutionMode 4 OutputVertices 4
Source GLSL 400
SourceExtension "GL_ARB_separate_shader_objects"
@ -32,17 +32,17 @@ spv.400.tesc
MemberName 50(gl_PerVertex) 0 "gl_Position"
MemberName 50(gl_PerVertex) 1 "gl_PointSize"
MemberName 50(gl_PerVertex) 2 "gl_ClipDistance"
Name 54 "gl_out"
Name 68 "gl_TessLevelOuter"
Name 73 "gl_TessLevelInner"
Name 78 "outa"
Name 79 "patchOut"
Name 83 "inb"
Name 84 "ind"
Name 87 "ivla"
Name 88 "ivlb"
Name 91 "ovla"
Name 92 "ovlb"
Name 53 "gl_out"
Name 67 "gl_TessLevelOuter"
Name 72 "gl_TessLevelInner"
Name 77 "outa"
Name 78 "patchOut"
Name 82 "inb"
Name 83 "ind"
Name 86 "ivla"
Name 87 "ivlb"
Name 90 "ovla"
Name 91 "ovlb"
MemberDecorate 20(gl_PerVertex) 0 BuiltIn Position
MemberDecorate 20(gl_PerVertex) 1 BuiltIn PointSize
MemberDecorate 20(gl_PerVertex) 2 BuiltIn ClipDistance
@ -54,20 +54,20 @@ spv.400.tesc
MemberDecorate 50(gl_PerVertex) 1 BuiltIn PointSize
MemberDecorate 50(gl_PerVertex) 2 BuiltIn ClipDistance
Decorate 50(gl_PerVertex) Block
Decorate 68(gl_TessLevelOuter) Patch
Decorate 68(gl_TessLevelOuter) BuiltIn TessLevelOuter
Decorate 73(gl_TessLevelInner) Patch
Decorate 73(gl_TessLevelInner) BuiltIn TessLevelInner
Decorate 79(patchOut) Patch
Decorate 87(ivla) Location 3
Decorate 88(ivlb) Location 4
Decorate 91(ovla) Location 3
Decorate 92(ovlb) Location 4
Decorate 67(gl_TessLevelOuter) Patch
Decorate 67(gl_TessLevelOuter) BuiltIn TessLevelOuter
Decorate 72(gl_TessLevelInner) Patch
Decorate 72(gl_TessLevelInner) BuiltIn TessLevelInner
Decorate 78(patchOut) Patch
Decorate 86(ivla) Location 3
Decorate 87(ivlb) Location 4
Decorate 90(ovla) Location 3
Decorate 91(ovlb) Location 4
2: TypeVoid
3: TypeFunction 2
6: TypeInt 32 0
7: 6(int) Constant 2
8: 6(int) Constant 1
8: 6(int) Constant 4
9: 6(int) Constant 0
10: TypeInt 32 1
11: TypePointer Function 10(int)
@ -94,37 +94,36 @@ spv.400.tesc
47(gl_InvocationID): 40(ptr) Variable Input
49: TypeArray 14(float) 7
50(gl_PerVertex): TypeStruct 15(fvec4) 14(float) 49
51: 6(int) Constant 4
52: TypeArray 50(gl_PerVertex) 51
53: TypePointer Output 52
54(gl_out): 53(ptr) Variable Output
57: TypePointer Output 15(fvec4)
61: TypePointer Output 14(float)
66: TypeArray 14(float) 51
67: TypePointer Output 66
68(gl_TessLevelOuter): 67(ptr) Variable Output
69: 10(int) Constant 3
70: 14(float) Constant 1078774989
72: TypePointer Output 49
73(gl_TessLevelInner): 72(ptr) Variable Output
74: 14(float) Constant 1067869798
76: TypeArray 10(int) 51
77: TypePointer Private 76
78(outa): 77(ptr) Variable Private
79(patchOut): 57(ptr) Variable Output
80: TypeVector 14(float) 2
81: TypeArray 80(fvec2) 21
82: TypePointer Input 81
83(inb): 82(ptr) Variable Input
84(ind): 82(ptr) Variable Input
85: TypeArray 15(fvec4) 21
86: TypePointer Input 85
87(ivla): 86(ptr) Variable Input
88(ivlb): 86(ptr) Variable Input
89: TypeArray 15(fvec4) 51
90: TypePointer Output 89
91(ovla): 90(ptr) Variable Output
92(ovlb): 90(ptr) Variable Output
51: TypeArray 50(gl_PerVertex) 8
52: TypePointer Output 51
53(gl_out): 52(ptr) Variable Output
56: TypePointer Output 15(fvec4)
60: TypePointer Output 14(float)
65: TypeArray 14(float) 8
66: TypePointer Output 65
67(gl_TessLevelOuter): 66(ptr) Variable Output
68: 10(int) Constant 3
69: 14(float) Constant 1078774989
71: TypePointer Output 49
72(gl_TessLevelInner): 71(ptr) Variable Output
73: 14(float) Constant 1067869798
75: TypeArray 10(int) 8
76: TypePointer Private 75
77(outa): 76(ptr) Variable Private
78(patchOut): 56(ptr) Variable Output
79: TypeVector 14(float) 2
80: TypeArray 79(fvec2) 21
81: TypePointer Input 80
82(inb): 81(ptr) Variable Input
83(ind): 81(ptr) Variable Input
84: TypeArray 15(fvec4) 21
85: TypePointer Input 84
86(ivla): 85(ptr) Variable Input
87(ivlb): 85(ptr) Variable Input
88: TypeArray 15(fvec4) 8
89: TypePointer Output 88
90(ovla): 89(ptr) Variable Output
91(ovlb): 89(ptr) Variable Output
4(main): 2 Function None 3
5: Label
12(a): 11(ptr) Variable Function
@ -151,21 +150,21 @@ spv.400.tesc
Store 43(pid) 45
48: 10(int) Load 47(gl_InvocationID)
Store 46(iid) 48
55: 10(int) Load 47(gl_InvocationID)
56: 15(fvec4) Load 17(p)
58: 57(ptr) AccessChain 54(gl_out) 55 26
Store 58 56
59: 10(int) Load 47(gl_InvocationID)
60: 14(float) Load 31(ps)
62: 61(ptr) AccessChain 54(gl_out) 59 25
Store 62 60
63: 10(int) Load 47(gl_InvocationID)
64: 14(float) Load 35(cd)
65: 61(ptr) AccessChain 54(gl_out) 63 36 25
Store 65 64
71: 61(ptr) AccessChain 68(gl_TessLevelOuter) 69
Store 71 70
75: 61(ptr) AccessChain 73(gl_TessLevelInner) 25
Store 75 74
54: 10(int) Load 47(gl_InvocationID)
55: 15(fvec4) Load 17(p)
57: 56(ptr) AccessChain 53(gl_out) 54 26
Store 57 55
58: 10(int) Load 47(gl_InvocationID)
59: 14(float) Load 31(ps)
61: 60(ptr) AccessChain 53(gl_out) 58 25
Store 61 59
62: 10(int) Load 47(gl_InvocationID)
63: 14(float) Load 35(cd)
64: 60(ptr) AccessChain 53(gl_out) 62 36 25
Store 64 63
70: 60(ptr) AccessChain 67(gl_TessLevelOuter) 68
Store 70 69
74: 60(ptr) AccessChain 72(gl_TessLevelInner) 25
Store 74 73
Return
FunctionEnd