Add GL_EXT_shader_image_int64 support (#2409)

This commit is contained in:
Tobski
2020-11-04 16:24:23 +00:00
committed by GitHub
parent 478b232952
commit 8c1a3a06b8
19 changed files with 5349 additions and 3697 deletions

View File

@@ -1,20 +1,25 @@
spv.imageLoadStoreLod.frag
// Module Version 10000
// Generated by (magic number): 8000a
// Id's are bound by 82
// 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"
@@ -27,6 +32,18 @@ spv.imageLoadStoreLod.frag
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) DescriptorSet 0
Decorate 14(i1D) Binding 0
Decorate 24(i2D) DescriptorSet 0
@@ -42,6 +59,25 @@ spv.imageLoadStoreLod.frag
Decorate 71(uiCubeArray) DescriptorSet 0
Decorate 71(uiCubeArray) Binding 6
Decorate 77(fragColor) Location 0
MemberDecorate 86(Buf) 0 Offset 0
MemberDecorate 86(Buf) 1 Offset 32
Decorate 86(Buf) BufferBlock
Decorate 88 DescriptorSet 0
Decorate 88 Binding 14
Decorate 92(i64i1D) DescriptorSet 0
Decorate 92(i64i1D) Binding 7
Decorate 102(i64i2D) DescriptorSet 0
Decorate 102(i64i2D) Binding 8
Decorate 111(i64i3D) DescriptorSet 0
Decorate 111(i64i3D) Binding 9
Decorate 120(u64iCube) DescriptorSet 0
Decorate 120(u64iCube) Binding 10
Decorate 127(u64i1DArray) DescriptorSet 0
Decorate 127(u64i1DArray) Binding 11
Decorate 133(u64i2DArray) DescriptorSet 0
Decorate 133(u64i2DArray) Binding 12
Decorate 142(u64iCubeArray) DescriptorSet 0
Decorate 142(u64iCubeArray) Binding 13
2: TypeVoid
3: TypeFunction 2
6: TypeFloat 32
@@ -88,6 +124,38 @@ spv.imageLoadStoreLod.frag
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
@@ -131,5 +199,46 @@ spv.imageLoadStoreLod.frag
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