
Full vector and fully specified vector swizzle stores are not affected by this change, only partial swizzles ie swizzles with fewer components than the vector being stored to. Previously the vector being stored to loaded and any components not specified in the swizzle were used to create a full store to the vector. While this change generates more SPIR-V instructions, it is necessary for correctness. Fixes #2518.
211 lines
10 KiB
Plaintext
211 lines
10 KiB
Plaintext
spv.320.meshShaderUserDefined.mesh
|
|
// Module Version 10000
|
|
// Generated by (magic number): 8000a
|
|
// Id's are bound by 143
|
|
|
|
Capability MeshShadingNV
|
|
Extension "SPV_NV_mesh_shader"
|
|
1: ExtInstImport "GLSL.std.450"
|
|
MemoryModel Logical GLSL450
|
|
EntryPoint MeshNV 4 "main" 12 19 37 106
|
|
ExecutionMode 4 LocalSize 32 1 1
|
|
ExecutionMode 4 OutputVertices 81
|
|
ExecutionMode 4 OutputPrimitivesNV 32
|
|
ExecutionMode 4 OutputTrianglesNV
|
|
Source ESSL 320
|
|
SourceExtension "GL_NV_mesh_shader"
|
|
Name 4 "main"
|
|
Name 8 "iid"
|
|
Name 12 "gl_LocalInvocationID"
|
|
Name 18 "gid"
|
|
Name 19 "gl_WorkGroupID"
|
|
Name 33 "myblock"
|
|
MemberName 33(myblock) 0 "f"
|
|
MemberName 33(myblock) 1 "fArr"
|
|
MemberName 33(myblock) 2 "pos"
|
|
MemberName 33(myblock) 3 "posArr"
|
|
MemberName 33(myblock) 4 "m"
|
|
MemberName 33(myblock) 5 "mArr"
|
|
Name 37 "blk"
|
|
Name 102 "myblock2"
|
|
MemberName 102(myblock2) 0 "f"
|
|
MemberName 102(myblock2) 1 "pos"
|
|
MemberName 102(myblock2) 2 "m"
|
|
Name 106 "blk2"
|
|
Decorate 12(gl_LocalInvocationID) BuiltIn LocalInvocationId
|
|
Decorate 19(gl_WorkGroupID) BuiltIn WorkgroupId
|
|
MemberDecorate 33(myblock) 0 PerPrimitiveNV
|
|
MemberDecorate 33(myblock) 1 PerPrimitiveNV
|
|
MemberDecorate 33(myblock) 2 PerPrimitiveNV
|
|
MemberDecorate 33(myblock) 3 PerPrimitiveNV
|
|
MemberDecorate 33(myblock) 4 PerPrimitiveNV
|
|
MemberDecorate 33(myblock) 5 PerPrimitiveNV
|
|
Decorate 33(myblock) Block
|
|
Decorate 37(blk) Location 0
|
|
Decorate 102(myblock2) Block
|
|
Decorate 106(blk2) Location 20
|
|
Decorate 142 BuiltIn WorkgroupSize
|
|
2: TypeVoid
|
|
3: TypeFunction 2
|
|
6: TypeInt 32 1
|
|
7: TypePointer Function 6(int)
|
|
9: TypeInt 32 0
|
|
10: TypeVector 9(int) 3
|
|
11: TypePointer Input 10(ivec3)
|
|
12(gl_LocalInvocationID): 11(ptr) Variable Input
|
|
13: 9(int) Constant 0
|
|
14: TypePointer Input 9(int)
|
|
19(gl_WorkGroupID): 11(ptr) Variable Input
|
|
23: TypeFloat 32
|
|
24: 9(int) Constant 4
|
|
25: TypeArray 23(float) 24
|
|
26: TypeVector 23(float) 3
|
|
27: TypeVector 23(float) 4
|
|
28: TypeArray 27(fvec4) 24
|
|
29: TypeMatrix 27(fvec4) 4
|
|
30: TypeMatrix 26(fvec3) 3
|
|
31: 9(int) Constant 2
|
|
32: TypeArray 30 31
|
|
33(myblock): TypeStruct 23(float) 25 26(fvec3) 28 29 32
|
|
34: 9(int) Constant 32
|
|
35: TypeArray 33(myblock) 34
|
|
36: TypePointer Output 35
|
|
37(blk): 36(ptr) Variable Output
|
|
39: 6(int) Constant 0
|
|
40: 23(float) Constant 1093664768
|
|
41: TypePointer Output 23(float)
|
|
44: 6(int) Constant 1
|
|
52: 6(int) Constant 2
|
|
54: 23(float) Constant 1096810496
|
|
55: 23(float) Constant 1097859072
|
|
56: 23(float) Constant 1095761920
|
|
57: 26(fvec3) ConstantComposite 54 55 56
|
|
58: TypePointer Output 26(fvec3)
|
|
64: 6(int) Constant 3
|
|
69: 9(int) Constant 1
|
|
74: 9(int) Constant 3
|
|
78: 6(int) Constant 4
|
|
80: 23(float) Constant 1098907648
|
|
81: 27(fvec4) ConstantComposite 56 54 55 80
|
|
82: TypePointer Output 27(fvec4)
|
|
87: 6(int) Constant 5
|
|
96: 23(float) Constant 1099431936
|
|
97: 23(float) Constant 1099956224
|
|
98: 23(float) Constant 1100480512
|
|
99: 26(fvec3) ConstantComposite 96 97 98
|
|
101: 9(int) Constant 264
|
|
102(myblock2): TypeStruct 23(float) 27(fvec4) 29
|
|
103: 9(int) Constant 81
|
|
104: TypeArray 102(myblock2) 103
|
|
105: TypePointer Output 104
|
|
106(blk2): 105(ptr) Variable Output
|
|
112: 23(float) Constant 1101004800
|
|
116: 23(float) Constant 1101529088
|
|
117: 23(float) Constant 1102053376
|
|
118: 23(float) Constant 1102577664
|
|
119: 23(float) Constant 1103101952
|
|
120: 27(fvec4) ConstantComposite 116 117 118 119
|
|
132: 23(float) Constant 1105723392
|
|
142: 10(ivec3) ConstantComposite 34 69 69
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
8(iid): 7(ptr) Variable Function
|
|
18(gid): 7(ptr) Variable Function
|
|
15: 14(ptr) AccessChain 12(gl_LocalInvocationID) 13
|
|
16: 9(int) Load 15
|
|
17: 6(int) Bitcast 16
|
|
Store 8(iid) 17
|
|
20: 14(ptr) AccessChain 19(gl_WorkGroupID) 13
|
|
21: 9(int) Load 20
|
|
22: 6(int) Bitcast 21
|
|
Store 18(gid) 22
|
|
38: 6(int) Load 8(iid)
|
|
42: 41(ptr) AccessChain 37(blk) 38 39
|
|
Store 42 40
|
|
43: 6(int) Load 8(iid)
|
|
45: 6(int) IAdd 43 44
|
|
46: 6(int) Load 18(gid)
|
|
47: 6(int) Load 8(iid)
|
|
48: 41(ptr) AccessChain 37(blk) 47 39
|
|
49: 23(float) Load 48
|
|
50: 41(ptr) AccessChain 37(blk) 45 44 46
|
|
Store 50 49
|
|
51: 6(int) Load 8(iid)
|
|
53: 6(int) SDiv 51 52
|
|
59: 58(ptr) AccessChain 37(blk) 53 52
|
|
60: 26(fvec3) Load 59
|
|
61: 26(fvec3) VectorShuffle 60 57 5 3 4
|
|
Store 59 61
|
|
62: 6(int) Load 8(iid)
|
|
63: 6(int) IMul 62 52
|
|
65: 6(int) Load 8(iid)
|
|
66: 6(int) SDiv 65 52
|
|
67: 58(ptr) AccessChain 37(blk) 66 52
|
|
68: 26(fvec3) Load 67
|
|
70: 41(ptr) AccessChain 37(blk) 63 64 44 69
|
|
71: 23(float) CompositeExtract 68 0
|
|
Store 70 71
|
|
72: 41(ptr) AccessChain 37(blk) 63 64 44 31
|
|
73: 23(float) CompositeExtract 68 1
|
|
Store 72 73
|
|
75: 41(ptr) AccessChain 37(blk) 63 64 44 74
|
|
76: 23(float) CompositeExtract 68 2
|
|
Store 75 76
|
|
77: 6(int) Load 8(iid)
|
|
79: 6(int) SDiv 77 78
|
|
83: 82(ptr) AccessChain 37(blk) 79 78 52
|
|
84: 27(fvec4) Load 83
|
|
85: 27(fvec4) VectorShuffle 84 81 7 6 5 4
|
|
Store 83 85
|
|
86: 6(int) Load 8(iid)
|
|
88: 6(int) Load 8(iid)
|
|
89: 6(int) SDiv 88 78
|
|
90: 41(ptr) AccessChain 37(blk) 89 78 52 74
|
|
91: 23(float) Load 90
|
|
92: 41(ptr) AccessChain 37(blk) 86 87 39 44 69
|
|
Store 92 91
|
|
93: 6(int) Load 8(iid)
|
|
94: 6(int) IMul 93 78
|
|
95: 6(int) Load 18(gid)
|
|
100: 58(ptr) AccessChain 37(blk) 94 87 44 95
|
|
Store 100 99
|
|
MemoryBarrier 69 101
|
|
ControlBarrier 31 31 101
|
|
107: 6(int) Load 8(iid)
|
|
108: 6(int) Load 8(iid)
|
|
109: 6(int) ISub 108 44
|
|
110: 41(ptr) AccessChain 106(blk2) 109 39
|
|
111: 23(float) Load 110
|
|
113: 23(float) FAdd 111 112
|
|
114: 41(ptr) AccessChain 106(blk2) 107 39
|
|
Store 114 113
|
|
115: 6(int) Load 8(iid)
|
|
121: 82(ptr) AccessChain 106(blk2) 115 44
|
|
Store 121 120
|
|
122: 6(int) Load 8(iid)
|
|
123: 6(int) IAdd 122 44
|
|
124: 6(int) Load 18(gid)
|
|
125: 6(int) Load 8(iid)
|
|
126: 82(ptr) AccessChain 106(blk2) 125 44
|
|
127: 27(fvec4) Load 126
|
|
128: 82(ptr) AccessChain 106(blk2) 123 52 124
|
|
Store 128 127
|
|
129: 6(int) Load 8(iid)
|
|
130: 6(int) IAdd 129 44
|
|
131: 6(int) Load 18(gid)
|
|
133: 41(ptr) AccessChain 106(blk2) 130 52 131 31
|
|
Store 133 132
|
|
134: 6(int) Load 8(iid)
|
|
135: 6(int) IAdd 134 52
|
|
136: 6(int) Load 8(iid)
|
|
137: 6(int) IAdd 136 44
|
|
138: 6(int) Load 18(gid)
|
|
139: 82(ptr) AccessChain 106(blk2) 137 52 138
|
|
140: 27(fvec4) Load 139
|
|
141: 82(ptr) AccessChain 106(blk2) 135 52 64
|
|
Store 141 140
|
|
MemoryBarrier 69 101
|
|
ControlBarrier 31 31 101
|
|
Return
|
|
FunctionEnd
|