glslang/Test/baseResults/spv.bufferhandle9.frag.out
Steven Perron 33c7e30860
Don't emit duplicate decorations. (#3635)
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
2024-06-28 19:16:59 -04:00

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