mirror of
https://github.com/KhronosGroup/glslang
synced 2024-11-12 21:20:06 +00:00
33c7e30860
It is invalid if the same decoration is applied to the same id multiple times. This adds a check before adding a decoration that the decoration is not already in the list. If it is, then the duplicate is not added. Fixes #3627
103 lines
5.3 KiB
Plaintext
103 lines
5.3 KiB
Plaintext
spv.ext.meshShaderTaskMem.mesh
|
|
// Module Version 10400
|
|
// Generated by (magic number): 8000b
|
|
// Id's are bound by 58
|
|
|
|
Capability MeshShadingEXT
|
|
Extension "SPV_EXT_mesh_shader"
|
|
1: ExtInstImport "GLSL.std.450"
|
|
MemoryModel Logical GLSL450
|
|
EntryPoint MeshEXT 4 "main" 11 22 30 38
|
|
ExecutionMode 4 LocalSize 32 1 1
|
|
ExecutionMode 4 OutputVertices 81
|
|
ExecutionMode 4 OutputPrimitivesNV 32
|
|
ExecutionMode 4 OutputTrianglesNV
|
|
Source GLSL 450
|
|
SourceExtension "GL_EXT_mesh_shader"
|
|
Name 4 "main"
|
|
Name 8 "iid"
|
|
Name 11 "gl_LocalInvocationID"
|
|
Name 18 "outBlock"
|
|
MemberName 18(outBlock) 0 "gid5"
|
|
MemberName 18(outBlock) 1 "gid6"
|
|
Name 22 "myblk"
|
|
Name 28 "taskBlock"
|
|
MemberName 28(taskBlock) 0 "gid1"
|
|
MemberName 28(taskBlock) 1 "gid2"
|
|
Name 30 "mytask"
|
|
Name 36 "bufferBlock"
|
|
MemberName 36(bufferBlock) 0 "gid3"
|
|
MemberName 36(bufferBlock) 1 "gid4"
|
|
Name 38 "mybuf"
|
|
Decorate 11(gl_LocalInvocationID) BuiltIn LocalInvocationId
|
|
Decorate 18(outBlock) Block
|
|
Decorate 22(myblk) Location 0
|
|
Decorate 35 ArrayStride 4
|
|
Decorate 36(bufferBlock) Block
|
|
MemberDecorate 36(bufferBlock) 0 Offset 0
|
|
MemberDecorate 36(bufferBlock) 1 Offset 16
|
|
Decorate 38(mybuf) Binding 0
|
|
Decorate 38(mybuf) DescriptorSet 0
|
|
Decorate 57 BuiltIn WorkgroupSize
|
|
2: TypeVoid
|
|
3: TypeFunction 2
|
|
6: TypeInt 32 0
|
|
7: TypePointer Function 6(int)
|
|
9: TypeVector 6(int) 3
|
|
10: TypePointer Input 9(ivec3)
|
|
11(gl_LocalInvocationID): 10(ptr) Variable Input
|
|
12: 6(int) Constant 0
|
|
13: TypePointer Input 6(int)
|
|
16: TypeFloat 32
|
|
17: TypeVector 16(float) 4
|
|
18(outBlock): TypeStruct 16(float) 17(fvec4)
|
|
19: 6(int) Constant 81
|
|
20: TypeArray 18(outBlock) 19
|
|
21: TypePointer Output 20
|
|
22(myblk): 21(ptr) Variable Output
|
|
24: TypeInt 32 1
|
|
25: 24(int) Constant 0
|
|
26: 6(int) Constant 2
|
|
27: TypeArray 16(float) 26
|
|
28(taskBlock): TypeStruct 27 17(fvec4)
|
|
29: TypePointer TaskPayloadWorkgroupEXT 28(taskBlock)
|
|
30(mytask): 29(ptr) Variable TaskPayloadWorkgroupEXT
|
|
31: 24(int) Constant 1
|
|
32: TypePointer TaskPayloadWorkgroupEXT 16(float)
|
|
35: TypeArray 16(float) 26
|
|
36(bufferBlock): TypeStruct 35 17(fvec4)
|
|
37: TypePointer StorageBuffer 36(bufferBlock)
|
|
38(mybuf): 37(ptr) Variable StorageBuffer
|
|
39: TypePointer StorageBuffer 16(float)
|
|
43: TypePointer Output 16(float)
|
|
46: TypePointer TaskPayloadWorkgroupEXT 17(fvec4)
|
|
49: TypePointer StorageBuffer 17(fvec4)
|
|
53: TypePointer Output 17(fvec4)
|
|
55: 6(int) Constant 32
|
|
56: 6(int) Constant 1
|
|
57: 9(ivec3) ConstantComposite 55 56 56
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
8(iid): 7(ptr) Variable Function
|
|
14: 13(ptr) AccessChain 11(gl_LocalInvocationID) 12
|
|
15: 6(int) Load 14
|
|
Store 8(iid) 15
|
|
23: 6(int) Load 8(iid)
|
|
33: 32(ptr) AccessChain 30(mytask) 25 31
|
|
34: 16(float) Load 33
|
|
40: 39(ptr) AccessChain 38(mybuf) 25 31
|
|
41: 16(float) Load 40
|
|
42: 16(float) FAdd 34 41
|
|
44: 43(ptr) AccessChain 22(myblk) 23 25
|
|
Store 44 42
|
|
45: 6(int) Load 8(iid)
|
|
47: 46(ptr) AccessChain 30(mytask) 31
|
|
48: 17(fvec4) Load 47
|
|
50: 49(ptr) AccessChain 38(mybuf) 31
|
|
51: 17(fvec4) Load 50
|
|
52: 17(fvec4) FAdd 48 51
|
|
54: 53(ptr) AccessChain 22(myblk) 45 31
|
|
Store 54 52
|
|
Return
|
|
FunctionEnd
|