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
117 lines
5.8 KiB
Plaintext
117 lines
5.8 KiB
Plaintext
spv.bufferhandle9.frag
|
|
// Module Version 10000
|
|
// Generated by (magic number): 8000b
|
|
// Id's are bound by 56
|
|
|
|
Capability Shader
|
|
Capability Int64
|
|
Capability PhysicalStorageBufferAddressesEXT
|
|
Extension "SPV_KHR_physical_storage_buffer"
|
|
Extension "SPV_KHR_storage_buffer_storage_class"
|
|
1: ExtInstImport "GLSL.std.450"
|
|
MemoryModel PhysicalStorageBuffer64EXT GLSL450
|
|
EntryPoint Fragment 4 "main" 16 19
|
|
ExecutionMode 4 OriginUpperLeft
|
|
Source GLSL 450
|
|
SourceExtension "GL_ARB_gpu_shader_int64"
|
|
SourceExtension "GL_EXT_buffer_reference"
|
|
Name 4 "main"
|
|
Name 8 "blockType"
|
|
MemberName 8(blockType) 0 "a"
|
|
MemberName 8(blockType) 1 "b"
|
|
MemberName 8(blockType) 2 "c"
|
|
MemberName 8(blockType) 3 "d"
|
|
MemberName 8(blockType) 4 "e"
|
|
Name 13 "b1"
|
|
Name 16 "h"
|
|
Name 19 "i"
|
|
Name 34 "b2"
|
|
Name 37 "b3"
|
|
Name 46 "j"
|
|
Name 53 "t2"
|
|
MemberName 53(t2) 0 "f"
|
|
MemberName 53(t2) 1 "g"
|
|
Name 55 "t"
|
|
Decorate 8(blockType) Block
|
|
MemberDecorate 8(blockType) 0 Offset 0
|
|
MemberDecorate 8(blockType) 1 Offset 4
|
|
MemberDecorate 8(blockType) 2 Offset 8
|
|
MemberDecorate 8(blockType) 3 Offset 12
|
|
MemberDecorate 8(blockType) 4 Offset 16
|
|
Decorate 13(b1) DecorationAliasedPointerEXT
|
|
Decorate 16(h) Flat
|
|
Decorate 16(h) Location 0
|
|
Decorate 19(i) Flat
|
|
Decorate 19(i) Location 1
|
|
Decorate 34(b2) DecorationAliasedPointerEXT
|
|
Decorate 37(b3) DecorationAliasedPointerEXT
|
|
Decorate 53(t2) Block
|
|
MemberDecorate 53(t2) 0 Offset 0
|
|
MemberDecorate 53(t2) 1 Offset 8
|
|
Decorate 55(t) Binding 0
|
|
Decorate 55(t) DescriptorSet 0
|
|
2: TypeVoid
|
|
3: TypeFunction 2
|
|
TypeForwardPointer 6 PhysicalStorageBufferEXT
|
|
7: TypeInt 32 1
|
|
8(blockType): TypeStruct 7(int) 7(int) 7(int) 7(int) 7(int)
|
|
6: TypePointer PhysicalStorageBufferEXT 8(blockType)
|
|
9: TypeInt 32 0
|
|
10: 9(int) Constant 2
|
|
11: TypeArray 6(ptr) 10
|
|
12: TypePointer Function 11
|
|
14: TypeInt 64 0
|
|
15: TypePointer Input 14(int64_t)
|
|
16(h): 15(ptr) Variable Input
|
|
19(i): 15(ptr) Variable Input
|
|
23: 7(int) Constant 0
|
|
24: TypePointer Function 6(ptr)
|
|
27: 7(int) Constant 1
|
|
30: TypePointer PhysicalStorageBufferEXT 7(int)
|
|
45: TypePointer Function 14(int64_t)
|
|
50: 14(int64_t) Constant 256 0
|
|
53(t2): TypeStruct 6(ptr) 6(ptr)
|
|
54: TypePointer StorageBuffer 53(t2)
|
|
55(t): 54(ptr) Variable StorageBuffer
|
|
4(main): 2 Function None 3
|
|
5: Label
|
|
13(b1): 12(ptr) Variable Function
|
|
34(b2): 24(ptr) Variable Function
|
|
37(b3): 24(ptr) Variable Function
|
|
46(j): 45(ptr) Variable Function
|
|
17: 14(int64_t) Load 16(h)
|
|
18: 6(ptr) ConvertUToPtr 17
|
|
20: 14(int64_t) Load 19(i)
|
|
21: 6(ptr) ConvertUToPtr 20
|
|
22: 11 CompositeConstruct 18 21
|
|
Store 13(b1) 22
|
|
25: 24(ptr) AccessChain 13(b1) 23
|
|
26: 6(ptr) Load 25
|
|
28: 24(ptr) AccessChain 13(b1) 27
|
|
29: 6(ptr) Load 28
|
|
31: 30(ptr) AccessChain 29 27
|
|
32: 7(int) Load 31 Aligned 4
|
|
33: 30(ptr) AccessChain 26 23
|
|
Store 33 32 Aligned 16
|
|
35: 14(int64_t) Load 16(h)
|
|
36: 6(ptr) ConvertUToPtr 35
|
|
Store 34(b2) 36
|
|
38: 14(int64_t) Load 19(i)
|
|
39: 6(ptr) ConvertUToPtr 38
|
|
Store 37(b3) 39
|
|
40: 6(ptr) Load 34(b2)
|
|
41: 6(ptr) Load 37(b3)
|
|
42: 30(ptr) AccessChain 41 27
|
|
43: 7(int) Load 42 Aligned 4
|
|
44: 30(ptr) AccessChain 40 23
|
|
Store 44 43 Aligned 16
|
|
47: 6(ptr) Load 34(b2)
|
|
48: 14(int64_t) ConvertPtrToU 47
|
|
Store 46(j) 48
|
|
49: 14(int64_t) Load 46(j)
|
|
51: 14(int64_t) IAdd 49 50
|
|
52: 6(ptr) ConvertUToPtr 51
|
|
Store 34(b2) 52
|
|
Return
|
|
FunctionEnd
|