glslang/Test/baseResults/spv.imageLoadStoreLod.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

245 lines
13 KiB
Plaintext

spv.imageLoadStoreLod.frag
// Module Version 10000
// Generated by (magic number): 8000b
// Id's are bound by 148
Capability Shader
Capability Int64
Capability ImageCubeArray
Capability SparseResidency
Capability Image1D
Capability ImageReadWriteLodAMD
Capability Int64ImageEXT
Extension "SPV_AMD_shader_image_load_store_lod"
Extension "SPV_EXT_shader_image_int64"
1: ExtInstImport "GLSL.std.450"
MemoryModel Logical GLSL450
EntryPoint Fragment 4 "main" 77
ExecutionMode 4 OriginUpperLeft
Source GLSL 450
SourceExtension "GL_AMD_shader_image_load_store_lod"
SourceExtension "GL_ARB_gpu_shader_int64"
SourceExtension "GL_EXT_shader_image_int64"
Name 4 "main"
Name 9 "f4"
Name 14 "i1D"
Name 24 "i2D"
Name 34 "i3D"
Name 46 "iiCube"
Name 53 "ii1DArray"
Name 60 "ui2DArray"
Name 64 "u4"
Name 65 "ResType"
Name 71 "uiCubeArray"
Name 77 "fragColor"
Name 86 "Buf"
MemberName 86(Buf) 0 "i64v4"
MemberName 86(Buf) 1 "u64v4"
Name 88 ""
Name 92 "i64i1D"
Name 102 "i64i2D"
Name 111 "i64i3D"
Name 120 "u64iCube"
Name 127 "u64i1DArray"
Name 133 "u64i2DArray"
Name 136 "ResType"
Name 142 "u64iCubeArray"
Decorate 14(i1D) Binding 0
Decorate 14(i1D) DescriptorSet 0
Decorate 24(i2D) Binding 1
Decorate 24(i2D) DescriptorSet 0
Decorate 34(i3D) Binding 2
Decorate 34(i3D) DescriptorSet 0
Decorate 46(iiCube) Binding 3
Decorate 46(iiCube) DescriptorSet 0
Decorate 53(ii1DArray) Binding 4
Decorate 53(ii1DArray) DescriptorSet 0
Decorate 60(ui2DArray) Binding 5
Decorate 60(ui2DArray) DescriptorSet 0
Decorate 71(uiCubeArray) Binding 6
Decorate 71(uiCubeArray) DescriptorSet 0
Decorate 77(fragColor) Location 0
Decorate 86(Buf) BufferBlock
MemberDecorate 86(Buf) 0 Offset 0
MemberDecorate 86(Buf) 1 Offset 32
Decorate 88 Binding 14
Decorate 88 DescriptorSet 0
Decorate 92(i64i1D) Binding 7
Decorate 92(i64i1D) DescriptorSet 0
Decorate 102(i64i2D) Binding 8
Decorate 102(i64i2D) DescriptorSet 0
Decorate 111(i64i3D) Binding 9
Decorate 111(i64i3D) DescriptorSet 0
Decorate 120(u64iCube) Binding 10
Decorate 120(u64iCube) DescriptorSet 0
Decorate 127(u64i1DArray) Binding 11
Decorate 127(u64i1DArray) DescriptorSet 0
Decorate 133(u64i2DArray) Binding 12
Decorate 133(u64i2DArray) DescriptorSet 0
Decorate 142(u64iCubeArray) Binding 13
Decorate 142(u64iCubeArray) DescriptorSet 0
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
7: TypeVector 6(float) 4
8: TypePointer Function 7(fvec4)
10: 6(float) Constant 0
11: 7(fvec4) ConstantComposite 10 10 10 10
12: TypeImage 6(float) 1D nonsampled format:Rgba32f
13: TypePointer UniformConstant 12
14(i1D): 13(ptr) Variable UniformConstant
16: TypeInt 32 1
17: 16(int) Constant 1
18: 16(int) Constant 3
22: TypeImage 6(float) 2D nonsampled format:Rgba32f
23: TypePointer UniformConstant 22
24(i2D): 23(ptr) Variable UniformConstant
26: TypeVector 16(int) 2
27: 16(int) Constant 2
28: 26(ivec2) ConstantComposite 27 18
32: TypeImage 6(float) 3D nonsampled format:Rgba32f
33: TypePointer UniformConstant 32
34(i3D): 33(ptr) Variable UniformConstant
36: TypeVector 16(int) 3
37: 16(int) Constant 4
38: 16(int) Constant 5
39: 16(int) Constant 6
40: 36(ivec3) ConstantComposite 37 38 39
44: TypeImage 16(int) Cube nonsampled format:Rgba32i
45: TypePointer UniformConstant 44
46(iiCube): 45(ptr) Variable UniformConstant
49: TypeVector 16(int) 4
51: TypeImage 16(int) 1D array nonsampled format:Rgba32i
52: TypePointer UniformConstant 51
53(ii1DArray): 52(ptr) Variable UniformConstant
57: TypeInt 32 0
58: TypeImage 57(int) 2D array nonsampled format:Rgba32ui
59: TypePointer UniformConstant 58
60(ui2DArray): 59(ptr) Variable UniformConstant
62: TypeVector 57(int) 4
63: TypePointer Function 62(ivec4)
65(ResType): TypeStruct 16(int) 62(ivec4)
69: TypeImage 57(int) Cube array nonsampled format:Rgba32ui
70: TypePointer UniformConstant 69
71(uiCubeArray): 70(ptr) Variable UniformConstant
76: TypePointer Output 7(fvec4)
77(fragColor): 76(ptr) Variable Output
82: TypeInt 64 1
83: TypeVector 82(int64_t) 4
84: TypeInt 64 0
85: TypeVector 84(int64_t) 4
86(Buf): TypeStruct 83(i64vec4) 85(i64vec4)
87: TypePointer Uniform 86(Buf)
88: 87(ptr) Variable Uniform
89: 16(int) Constant 0
90: TypeImage 82(int64_t) 1D nonsampled format:R64i
91: TypePointer UniformConstant 90
92(i64i1D): 91(ptr) Variable UniformConstant
95: TypePointer Uniform 83(i64vec4)
100: TypeImage 82(int64_t) 2D nonsampled format:R64i
101: TypePointer UniformConstant 100
102(i64i2D): 101(ptr) Variable UniformConstant
109: TypeImage 82(int64_t) 3D nonsampled format:R64i
110: TypePointer UniformConstant 109
111(i64i3D): 110(ptr) Variable UniformConstant
118: TypeImage 84(int64_t) Cube nonsampled format:R64ui
119: TypePointer UniformConstant 118
120(u64iCube): 119(ptr) Variable UniformConstant
122: TypePointer Uniform 85(i64vec4)
125: TypeImage 84(int64_t) 1D array nonsampled format:R64ui
126: TypePointer UniformConstant 125
127(u64i1DArray): 126(ptr) Variable UniformConstant
131: TypeImage 84(int64_t) 2D array nonsampled format:R64ui
132: TypePointer UniformConstant 131
133(u64i2DArray): 132(ptr) Variable UniformConstant
136(ResType): TypeStruct 16(int) 85(i64vec4)
140: TypeImage 84(int64_t) Cube array nonsampled format:R64ui
141: TypePointer UniformConstant 140
142(u64iCubeArray): 141(ptr) Variable UniformConstant
4(main): 2 Function None 3
5: Label
9(f4): 8(ptr) Variable Function
64(u4): 63(ptr) Variable Function
Store 9(f4) 11
15: 12 Load 14(i1D)
19: 7(fvec4) ImageRead 15 17 Lod 18
20: 7(fvec4) Load 9(f4)
21: 7(fvec4) FAdd 20 19
Store 9(f4) 21
25: 22 Load 24(i2D)
29: 7(fvec4) ImageRead 25 28 Lod 18
30: 7(fvec4) Load 9(f4)
31: 7(fvec4) FAdd 30 29
Store 9(f4) 31
35: 32 Load 34(i3D)
41: 7(fvec4) ImageRead 35 40 Lod 18
42: 7(fvec4) Load 9(f4)
43: 7(fvec4) FAdd 42 41
Store 9(f4) 43
47: 44 Load 46(iiCube)
48: 7(fvec4) Load 9(f4)
50: 49(ivec4) ConvertFToS 48
ImageWrite 47 40 50 Lod 18
54: 51 Load 53(ii1DArray)
55: 7(fvec4) Load 9(f4)
56: 49(ivec4) ConvertFToS 55
ImageWrite 54 28 56 Lod 18
61: 58 Load 60(ui2DArray)
66: 65(ResType) ImageSparseRead 61 40 Lod 18
67: 62(ivec4) CompositeExtract 66 1
Store 64(u4) 67
68: 16(int) CompositeExtract 66 0
72: 69 Load 71(uiCubeArray)
73: 65(ResType) ImageSparseRead 72 40 Lod 18
74: 62(ivec4) CompositeExtract 73 1
Store 64(u4) 74
75: 16(int) CompositeExtract 73 0
78: 7(fvec4) Load 9(f4)
79: 62(ivec4) Load 64(u4)
80: 7(fvec4) ConvertUToF 79
81: 7(fvec4) FAdd 78 80
Store 77(fragColor) 81
93: 90 Load 92(i64i1D)
94: 83(i64vec4) ImageRead 93 17 Lod 18
96: 95(ptr) AccessChain 88 89
97: 83(i64vec4) Load 96
98: 83(i64vec4) IAdd 97 94
99: 95(ptr) AccessChain 88 89
Store 99 98
103: 100 Load 102(i64i2D)
104: 83(i64vec4) ImageRead 103 28 Lod 18
105: 95(ptr) AccessChain 88 89
106: 83(i64vec4) Load 105
107: 83(i64vec4) IAdd 106 104
108: 95(ptr) AccessChain 88 89
Store 108 107
112: 109 Load 111(i64i3D)
113: 83(i64vec4) ImageRead 112 40 Lod 18
114: 95(ptr) AccessChain 88 89
115: 83(i64vec4) Load 114
116: 83(i64vec4) IAdd 115 113
117: 95(ptr) AccessChain 88 89
Store 117 116
121: 118 Load 120(u64iCube)
123: 122(ptr) AccessChain 88 17
124: 85(i64vec4) Load 123
ImageWrite 121 40 124 Lod 18
128: 125 Load 127(u64i1DArray)
129: 122(ptr) AccessChain 88 17
130: 85(i64vec4) Load 129
ImageWrite 128 28 130 Lod 18
134: 131 Load 133(u64i2DArray)
135: 122(ptr) AccessChain 88 17
137:136(ResType) ImageSparseRead 134 40 Lod 18
138: 85(i64vec4) CompositeExtract 137 1
Store 135 138
139: 16(int) CompositeExtract 137 0
143: 140 Load 142(u64iCubeArray)
144: 122(ptr) AccessChain 88 17
145:136(ResType) ImageSparseRead 143 40 Lod 18
146: 85(i64vec4) CompositeExtract 145 1
Store 144 146
147: 16(int) CompositeExtract 145 0
Return
FunctionEnd