1 | // |
2 | // Copyright (C) 2014-2015 LunarG, Inc. |
3 | // Modifications Copyright (C) 2020 Advanced Micro Devices, Inc. All rights reserved. |
4 | // |
5 | // All rights reserved. |
6 | // |
7 | // Redistribution and use in source and binary forms, with or without |
8 | // modification, are permitted provided that the following conditions |
9 | // are met: |
10 | // |
11 | // Redistributions of source code must retain the above copyright |
12 | // notice, this list of conditions and the following disclaimer. |
13 | // |
14 | // Redistributions in binary form must reproduce the above |
15 | // copyright notice, this list of conditions and the following |
16 | // disclaimer in the documentation and/or other materials provided |
17 | // with the distribution. |
18 | // |
19 | // Neither the name of 3Dlabs Inc. Ltd. nor the names of its |
20 | // contributors may be used to endorse or promote products derived |
21 | // from this software without specific prior written permission. |
22 | // |
23 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
24 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
25 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS |
26 | // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE |
27 | // COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, |
28 | // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, |
29 | // BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
30 | // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER |
31 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
32 | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN |
33 | // ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
34 | // POSSIBILITY OF SUCH DAMAGE. |
35 | |
36 | // |
37 | // 1) Programmatically fill in instruction/operand information. |
38 | // This can be used for disassembly, printing documentation, etc. |
39 | // |
40 | // 2) Print documentation from this parameterization. |
41 | // |
42 | |
43 | #include "doc.h" |
44 | |
45 | #include <cstdio> |
46 | #include <cstring> |
47 | #include <algorithm> |
48 | |
49 | namespace spv { |
50 | extern "C" { |
51 | // Include C-based headers that don't have a namespace |
52 | #include "GLSL.ext.KHR.h" |
53 | #include "GLSL.ext.EXT.h" |
54 | #include "GLSL.ext.AMD.h" |
55 | #include "GLSL.ext.NV.h" |
56 | #include "GLSL.ext.ARM.h" |
57 | } |
58 | } |
59 | |
60 | namespace spv { |
61 | |
62 | // |
63 | // Whole set of functions that translate enumerants to their text strings for |
64 | // the specification (or their sanitized versions for auto-generating the |
65 | // spirv headers. |
66 | // |
67 | // Also, for masks the ceilings are declared next to these, to help keep them in sync. |
68 | // Ceilings should be |
69 | // - one more than the maximum value an enumerant takes on, for non-mask enumerants |
70 | // (for non-sparse enums, this is the number of enumerants) |
71 | // - the number of bits consumed by the set of masks |
72 | // (for non-sparse mask enums, this is the number of enumerants) |
73 | // |
74 | |
75 | const char* SourceString(int source) |
76 | { |
77 | switch (source) { |
78 | case 0: return "Unknown" ; |
79 | case 1: return "ESSL" ; |
80 | case 2: return "GLSL" ; |
81 | case 3: return "OpenCL_C" ; |
82 | case 4: return "OpenCL_CPP" ; |
83 | case 5: return "HLSL" ; |
84 | |
85 | default: return "Bad" ; |
86 | } |
87 | } |
88 | |
89 | const char* ExecutionModelString(int model) |
90 | { |
91 | switch (model) { |
92 | case 0: return "Vertex" ; |
93 | case 1: return "TessellationControl" ; |
94 | case 2: return "TessellationEvaluation" ; |
95 | case 3: return "Geometry" ; |
96 | case 4: return "Fragment" ; |
97 | case 5: return "GLCompute" ; |
98 | case 6: return "Kernel" ; |
99 | case ExecutionModelTaskNV: return "TaskNV" ; |
100 | case ExecutionModelMeshNV: return "MeshNV" ; |
101 | case ExecutionModelTaskEXT: return "TaskEXT" ; |
102 | case ExecutionModelMeshEXT: return "MeshEXT" ; |
103 | |
104 | default: return "Bad" ; |
105 | |
106 | case ExecutionModelRayGenerationKHR: return "RayGenerationKHR" ; |
107 | case ExecutionModelIntersectionKHR: return "IntersectionKHR" ; |
108 | case ExecutionModelAnyHitKHR: return "AnyHitKHR" ; |
109 | case ExecutionModelClosestHitKHR: return "ClosestHitKHR" ; |
110 | case ExecutionModelMissKHR: return "MissKHR" ; |
111 | case ExecutionModelCallableKHR: return "CallableKHR" ; |
112 | } |
113 | } |
114 | |
115 | const char* AddressingString(int addr) |
116 | { |
117 | switch (addr) { |
118 | case 0: return "Logical" ; |
119 | case 1: return "Physical32" ; |
120 | case 2: return "Physical64" ; |
121 | |
122 | case AddressingModelPhysicalStorageBuffer64EXT: return "PhysicalStorageBuffer64EXT" ; |
123 | |
124 | default: return "Bad" ; |
125 | } |
126 | } |
127 | |
128 | const char* MemoryString(int mem) |
129 | { |
130 | switch (mem) { |
131 | case MemoryModelSimple: return "Simple" ; |
132 | case MemoryModelGLSL450: return "GLSL450" ; |
133 | case MemoryModelOpenCL: return "OpenCL" ; |
134 | case MemoryModelVulkanKHR: return "VulkanKHR" ; |
135 | |
136 | default: return "Bad" ; |
137 | } |
138 | } |
139 | |
140 | const int ExecutionModeCeiling = 40; |
141 | |
142 | const char* ExecutionModeString(int mode) |
143 | { |
144 | switch (mode) { |
145 | case 0: return "Invocations" ; |
146 | case 1: return "SpacingEqual" ; |
147 | case 2: return "SpacingFractionalEven" ; |
148 | case 3: return "SpacingFractionalOdd" ; |
149 | case 4: return "VertexOrderCw" ; |
150 | case 5: return "VertexOrderCcw" ; |
151 | case 6: return "PixelCenterInteger" ; |
152 | case 7: return "OriginUpperLeft" ; |
153 | case 8: return "OriginLowerLeft" ; |
154 | case 9: return "EarlyFragmentTests" ; |
155 | case 10: return "PointMode" ; |
156 | case 11: return "Xfb" ; |
157 | case 12: return "DepthReplacing" ; |
158 | case 13: return "Bad" ; |
159 | case 14: return "DepthGreater" ; |
160 | case 15: return "DepthLess" ; |
161 | case 16: return "DepthUnchanged" ; |
162 | case 17: return "LocalSize" ; |
163 | case 18: return "LocalSizeHint" ; |
164 | case 19: return "InputPoints" ; |
165 | case 20: return "InputLines" ; |
166 | case 21: return "InputLinesAdjacency" ; |
167 | case 22: return "Triangles" ; |
168 | case 23: return "InputTrianglesAdjacency" ; |
169 | case 24: return "Quads" ; |
170 | case 25: return "Isolines" ; |
171 | case 26: return "OutputVertices" ; |
172 | case 27: return "OutputPoints" ; |
173 | case 28: return "OutputLineStrip" ; |
174 | case 29: return "OutputTriangleStrip" ; |
175 | case 30: return "VecTypeHint" ; |
176 | case 31: return "ContractionOff" ; |
177 | case 32: return "Bad" ; |
178 | |
179 | case ExecutionModeInitializer: return "Initializer" ; |
180 | case ExecutionModeFinalizer: return "Finalizer" ; |
181 | case ExecutionModeSubgroupSize: return "SubgroupSize" ; |
182 | case ExecutionModeSubgroupsPerWorkgroup: return "SubgroupsPerWorkgroup" ; |
183 | case ExecutionModeSubgroupsPerWorkgroupId: return "SubgroupsPerWorkgroupId" ; |
184 | case ExecutionModeLocalSizeId: return "LocalSizeId" ; |
185 | case ExecutionModeLocalSizeHintId: return "LocalSizeHintId" ; |
186 | |
187 | case ExecutionModePostDepthCoverage: return "PostDepthCoverage" ; |
188 | case ExecutionModeDenormPreserve: return "DenormPreserve" ; |
189 | case ExecutionModeDenormFlushToZero: return "DenormFlushToZero" ; |
190 | case ExecutionModeSignedZeroInfNanPreserve: return "SignedZeroInfNanPreserve" ; |
191 | case ExecutionModeRoundingModeRTE: return "RoundingModeRTE" ; |
192 | case ExecutionModeRoundingModeRTZ: return "RoundingModeRTZ" ; |
193 | case ExecutionModeEarlyAndLateFragmentTestsAMD: return "EarlyAndLateFragmentTestsAMD" ; |
194 | case ExecutionModeStencilRefUnchangedFrontAMD: return "StencilRefUnchangedFrontAMD" ; |
195 | case ExecutionModeStencilRefLessFrontAMD: return "StencilRefLessFrontAMD" ; |
196 | case ExecutionModeStencilRefGreaterBackAMD: return "StencilRefGreaterBackAMD" ; |
197 | case ExecutionModeStencilRefReplacingEXT: return "StencilRefReplacingEXT" ; |
198 | case ExecutionModeSubgroupUniformControlFlowKHR: return "SubgroupUniformControlFlow" ; |
199 | |
200 | case ExecutionModeOutputLinesNV: return "OutputLinesNV" ; |
201 | case ExecutionModeOutputPrimitivesNV: return "OutputPrimitivesNV" ; |
202 | case ExecutionModeOutputTrianglesNV: return "OutputTrianglesNV" ; |
203 | case ExecutionModeDerivativeGroupQuadsNV: return "DerivativeGroupQuadsNV" ; |
204 | case ExecutionModeDerivativeGroupLinearNV: return "DerivativeGroupLinearNV" ; |
205 | |
206 | case ExecutionModePixelInterlockOrderedEXT: return "PixelInterlockOrderedEXT" ; |
207 | case ExecutionModePixelInterlockUnorderedEXT: return "PixelInterlockUnorderedEXT" ; |
208 | case ExecutionModeSampleInterlockOrderedEXT: return "SampleInterlockOrderedEXT" ; |
209 | case ExecutionModeSampleInterlockUnorderedEXT: return "SampleInterlockUnorderedEXT" ; |
210 | case ExecutionModeShadingRateInterlockOrderedEXT: return "ShadingRateInterlockOrderedEXT" ; |
211 | case ExecutionModeShadingRateInterlockUnorderedEXT: return "ShadingRateInterlockUnorderedEXT" ; |
212 | |
213 | case ExecutionModeMaxWorkgroupSizeINTEL: return "MaxWorkgroupSizeINTEL" ; |
214 | case ExecutionModeMaxWorkDimINTEL: return "MaxWorkDimINTEL" ; |
215 | case ExecutionModeNoGlobalOffsetINTEL: return "NoGlobalOffsetINTEL" ; |
216 | case ExecutionModeNumSIMDWorkitemsINTEL: return "NumSIMDWorkitemsINTEL" ; |
217 | |
218 | case ExecutionModeNonCoherentColorAttachmentReadEXT: return "NonCoherentColorAttachmentReadEXT" ; |
219 | case ExecutionModeNonCoherentDepthAttachmentReadEXT: return "NonCoherentDepthAttachmentReadEXT" ; |
220 | case ExecutionModeNonCoherentStencilAttachmentReadEXT: return "NonCoherentStencilAttachmentReadEXT" ; |
221 | |
222 | case ExecutionModeCeiling: |
223 | default: return "Bad" ; |
224 | } |
225 | } |
226 | |
227 | const char* StorageClassString(int StorageClass) |
228 | { |
229 | switch (StorageClass) { |
230 | case 0: return "UniformConstant" ; |
231 | case 1: return "Input" ; |
232 | case 2: return "Uniform" ; |
233 | case 3: return "Output" ; |
234 | case 4: return "Workgroup" ; |
235 | case 5: return "CrossWorkgroup" ; |
236 | case 6: return "Private" ; |
237 | case 7: return "Function" ; |
238 | case 8: return "Generic" ; |
239 | case 9: return "PushConstant" ; |
240 | case 10: return "AtomicCounter" ; |
241 | case 11: return "Image" ; |
242 | case 12: return "StorageBuffer" ; |
243 | |
244 | case StorageClassRayPayloadKHR: return "RayPayloadKHR" ; |
245 | case StorageClassHitAttributeKHR: return "HitAttributeKHR" ; |
246 | case StorageClassIncomingRayPayloadKHR: return "IncomingRayPayloadKHR" ; |
247 | case StorageClassShaderRecordBufferKHR: return "ShaderRecordBufferKHR" ; |
248 | case StorageClassCallableDataKHR: return "CallableDataKHR" ; |
249 | case StorageClassIncomingCallableDataKHR: return "IncomingCallableDataKHR" ; |
250 | |
251 | case StorageClassPhysicalStorageBufferEXT: return "PhysicalStorageBufferEXT" ; |
252 | case StorageClassTaskPayloadWorkgroupEXT: return "TaskPayloadWorkgroupEXT" ; |
253 | case StorageClassHitObjectAttributeNV: return "HitObjectAttributeNV" ; |
254 | case StorageClassTileImageEXT: return "TileImageEXT" ; |
255 | default: return "Bad" ; |
256 | } |
257 | } |
258 | |
259 | const int DecorationCeiling = 45; |
260 | |
261 | const char* DecorationString(int decoration) |
262 | { |
263 | switch (decoration) { |
264 | case 0: return "RelaxedPrecision" ; |
265 | case 1: return "SpecId" ; |
266 | case 2: return "Block" ; |
267 | case 3: return "BufferBlock" ; |
268 | case 4: return "RowMajor" ; |
269 | case 5: return "ColMajor" ; |
270 | case 6: return "ArrayStride" ; |
271 | case 7: return "MatrixStride" ; |
272 | case 8: return "GLSLShared" ; |
273 | case 9: return "GLSLPacked" ; |
274 | case 10: return "CPacked" ; |
275 | case 11: return "BuiltIn" ; |
276 | case 12: return "Bad" ; |
277 | case 13: return "NoPerspective" ; |
278 | case 14: return "Flat" ; |
279 | case 15: return "Patch" ; |
280 | case 16: return "Centroid" ; |
281 | case 17: return "Sample" ; |
282 | case 18: return "Invariant" ; |
283 | case 19: return "Restrict" ; |
284 | case 20: return "Aliased" ; |
285 | case 21: return "Volatile" ; |
286 | case 22: return "Constant" ; |
287 | case 23: return "Coherent" ; |
288 | case 24: return "NonWritable" ; |
289 | case 25: return "NonReadable" ; |
290 | case 26: return "Uniform" ; |
291 | case 27: return "Bad" ; |
292 | case 28: return "SaturatedConversion" ; |
293 | case 29: return "Stream" ; |
294 | case 30: return "Location" ; |
295 | case 31: return "Component" ; |
296 | case 32: return "Index" ; |
297 | case 33: return "Binding" ; |
298 | case 34: return "DescriptorSet" ; |
299 | case 35: return "Offset" ; |
300 | case 36: return "XfbBuffer" ; |
301 | case 37: return "XfbStride" ; |
302 | case 38: return "FuncParamAttr" ; |
303 | case 39: return "FP Rounding Mode" ; |
304 | case 40: return "FP Fast Math Mode" ; |
305 | case 41: return "Linkage Attributes" ; |
306 | case 42: return "NoContraction" ; |
307 | case 43: return "InputAttachmentIndex" ; |
308 | case 44: return "Alignment" ; |
309 | |
310 | case DecorationCeiling: |
311 | default: return "Bad" ; |
312 | |
313 | case DecorationExplicitInterpAMD: return "ExplicitInterpAMD" ; |
314 | case DecorationOverrideCoverageNV: return "OverrideCoverageNV" ; |
315 | case DecorationPassthroughNV: return "PassthroughNV" ; |
316 | case DecorationViewportRelativeNV: return "ViewportRelativeNV" ; |
317 | case DecorationSecondaryViewportRelativeNV: return "SecondaryViewportRelativeNV" ; |
318 | case DecorationPerPrimitiveNV: return "PerPrimitiveNV" ; |
319 | case DecorationPerViewNV: return "PerViewNV" ; |
320 | case DecorationPerTaskNV: return "PerTaskNV" ; |
321 | |
322 | case DecorationPerVertexKHR: return "PerVertexKHR" ; |
323 | |
324 | case DecorationNonUniformEXT: return "DecorationNonUniformEXT" ; |
325 | case DecorationHlslCounterBufferGOOGLE: return "DecorationHlslCounterBufferGOOGLE" ; |
326 | case DecorationHlslSemanticGOOGLE: return "DecorationHlslSemanticGOOGLE" ; |
327 | case DecorationRestrictPointerEXT: return "DecorationRestrictPointerEXT" ; |
328 | case DecorationAliasedPointerEXT: return "DecorationAliasedPointerEXT" ; |
329 | |
330 | case DecorationHitObjectShaderRecordBufferNV: return "DecorationHitObjectShaderRecordBufferNV" ; |
331 | } |
332 | } |
333 | |
334 | const char* BuiltInString(int builtIn) |
335 | { |
336 | switch (builtIn) { |
337 | case 0: return "Position" ; |
338 | case 1: return "PointSize" ; |
339 | case 2: return "Bad" ; |
340 | case 3: return "ClipDistance" ; |
341 | case 4: return "CullDistance" ; |
342 | case 5: return "VertexId" ; |
343 | case 6: return "InstanceId" ; |
344 | case 7: return "PrimitiveId" ; |
345 | case 8: return "InvocationId" ; |
346 | case 9: return "Layer" ; |
347 | case 10: return "ViewportIndex" ; |
348 | case 11: return "TessLevelOuter" ; |
349 | case 12: return "TessLevelInner" ; |
350 | case 13: return "TessCoord" ; |
351 | case 14: return "PatchVertices" ; |
352 | case 15: return "FragCoord" ; |
353 | case 16: return "PointCoord" ; |
354 | case 17: return "FrontFacing" ; |
355 | case 18: return "SampleId" ; |
356 | case 19: return "SamplePosition" ; |
357 | case 20: return "SampleMask" ; |
358 | case 21: return "Bad" ; |
359 | case 22: return "FragDepth" ; |
360 | case 23: return "HelperInvocation" ; |
361 | case 24: return "NumWorkgroups" ; |
362 | case 25: return "WorkgroupSize" ; |
363 | case 26: return "WorkgroupId" ; |
364 | case 27: return "LocalInvocationId" ; |
365 | case 28: return "GlobalInvocationId" ; |
366 | case 29: return "LocalInvocationIndex" ; |
367 | case 30: return "WorkDim" ; |
368 | case 31: return "GlobalSize" ; |
369 | case 32: return "EnqueuedWorkgroupSize" ; |
370 | case 33: return "GlobalOffset" ; |
371 | case 34: return "GlobalLinearId" ; |
372 | case 35: return "Bad" ; |
373 | case 36: return "SubgroupSize" ; |
374 | case 37: return "SubgroupMaxSize" ; |
375 | case 38: return "NumSubgroups" ; |
376 | case 39: return "NumEnqueuedSubgroups" ; |
377 | case 40: return "SubgroupId" ; |
378 | case 41: return "SubgroupLocalInvocationId" ; |
379 | case 42: return "VertexIndex" ; // TBD: put next to VertexId? |
380 | case 43: return "InstanceIndex" ; // TBD: put next to InstanceId? |
381 | |
382 | case 4416: return "SubgroupEqMaskKHR" ; |
383 | case 4417: return "SubgroupGeMaskKHR" ; |
384 | case 4418: return "SubgroupGtMaskKHR" ; |
385 | case 4419: return "SubgroupLeMaskKHR" ; |
386 | case 4420: return "SubgroupLtMaskKHR" ; |
387 | case 4438: return "DeviceIndex" ; |
388 | case 4440: return "ViewIndex" ; |
389 | case 4424: return "BaseVertex" ; |
390 | case 4425: return "BaseInstance" ; |
391 | case 4426: return "DrawIndex" ; |
392 | case 4432: return "PrimitiveShadingRateKHR" ; |
393 | case 4444: return "ShadingRateKHR" ; |
394 | case 5014: return "FragStencilRefEXT" ; |
395 | |
396 | case 4992: return "BaryCoordNoPerspAMD" ; |
397 | case 4993: return "BaryCoordNoPerspCentroidAMD" ; |
398 | case 4994: return "BaryCoordNoPerspSampleAMD" ; |
399 | case 4995: return "BaryCoordSmoothAMD" ; |
400 | case 4996: return "BaryCoordSmoothCentroidAMD" ; |
401 | case 4997: return "BaryCoordSmoothSampleAMD" ; |
402 | case 4998: return "BaryCoordPullModelAMD" ; |
403 | case BuiltInLaunchIdKHR: return "LaunchIdKHR" ; |
404 | case BuiltInLaunchSizeKHR: return "LaunchSizeKHR" ; |
405 | case BuiltInWorldRayOriginKHR: return "WorldRayOriginKHR" ; |
406 | case BuiltInWorldRayDirectionKHR: return "WorldRayDirectionKHR" ; |
407 | case BuiltInObjectRayOriginKHR: return "ObjectRayOriginKHR" ; |
408 | case BuiltInObjectRayDirectionKHR: return "ObjectRayDirectionKHR" ; |
409 | case BuiltInRayTminKHR: return "RayTminKHR" ; |
410 | case BuiltInRayTmaxKHR: return "RayTmaxKHR" ; |
411 | case BuiltInCullMaskKHR: return "CullMaskKHR" ; |
412 | case BuiltInHitTriangleVertexPositionsKHR: return "HitTriangleVertexPositionsKHR" ; |
413 | case BuiltInInstanceCustomIndexKHR: return "InstanceCustomIndexKHR" ; |
414 | case BuiltInRayGeometryIndexKHR: return "RayGeometryIndexKHR" ; |
415 | case BuiltInObjectToWorldKHR: return "ObjectToWorldKHR" ; |
416 | case BuiltInWorldToObjectKHR: return "WorldToObjectKHR" ; |
417 | case BuiltInHitTNV: return "HitTNV" ; |
418 | case BuiltInHitKindKHR: return "HitKindKHR" ; |
419 | case BuiltInIncomingRayFlagsKHR: return "IncomingRayFlagsKHR" ; |
420 | case BuiltInViewportMaskNV: return "ViewportMaskNV" ; |
421 | case BuiltInSecondaryPositionNV: return "SecondaryPositionNV" ; |
422 | case BuiltInSecondaryViewportMaskNV: return "SecondaryViewportMaskNV" ; |
423 | case BuiltInPositionPerViewNV: return "PositionPerViewNV" ; |
424 | case BuiltInViewportMaskPerViewNV: return "ViewportMaskPerViewNV" ; |
425 | // case BuiltInFragmentSizeNV: return "FragmentSizeNV"; // superseded by BuiltInFragSizeEXT |
426 | // case BuiltInInvocationsPerPixelNV: return "InvocationsPerPixelNV"; // superseded by BuiltInFragInvocationCountEXT |
427 | case BuiltInBaryCoordKHR: return "BaryCoordKHR" ; |
428 | case BuiltInBaryCoordNoPerspKHR: return "BaryCoordNoPerspKHR" ; |
429 | |
430 | case BuiltInFragSizeEXT: return "FragSizeEXT" ; |
431 | case BuiltInFragInvocationCountEXT: return "FragInvocationCountEXT" ; |
432 | |
433 | case 5264: return "FullyCoveredEXT" ; |
434 | |
435 | case BuiltInTaskCountNV: return "TaskCountNV" ; |
436 | case BuiltInPrimitiveCountNV: return "PrimitiveCountNV" ; |
437 | case BuiltInPrimitiveIndicesNV: return "PrimitiveIndicesNV" ; |
438 | case BuiltInClipDistancePerViewNV: return "ClipDistancePerViewNV" ; |
439 | case BuiltInCullDistancePerViewNV: return "CullDistancePerViewNV" ; |
440 | case BuiltInLayerPerViewNV: return "LayerPerViewNV" ; |
441 | case BuiltInMeshViewCountNV: return "MeshViewCountNV" ; |
442 | case BuiltInMeshViewIndicesNV: return "MeshViewIndicesNV" ; |
443 | case BuiltInWarpsPerSMNV: return "WarpsPerSMNV" ; |
444 | case BuiltInSMCountNV: return "SMCountNV" ; |
445 | case BuiltInWarpIDNV: return "WarpIDNV" ; |
446 | case BuiltInSMIDNV: return "SMIDNV" ; |
447 | case BuiltInCurrentRayTimeNV: return "CurrentRayTimeNV" ; |
448 | case BuiltInPrimitivePointIndicesEXT: return "PrimitivePointIndicesEXT" ; |
449 | case BuiltInPrimitiveLineIndicesEXT: return "PrimitiveLineIndicesEXT" ; |
450 | case BuiltInPrimitiveTriangleIndicesEXT: return "PrimitiveTriangleIndicesEXT" ; |
451 | case BuiltInCullPrimitiveEXT: return "CullPrimitiveEXT" ; |
452 | case BuiltInCoreCountARM: return "CoreCountARM" ; |
453 | case BuiltInCoreIDARM: return "CoreIDARM" ; |
454 | case BuiltInCoreMaxIDARM: return "CoreMaxIDARM" ; |
455 | case BuiltInWarpIDARM: return "WarpIDARM" ; |
456 | case BuiltInWarpMaxIDARM: return "BuiltInWarpMaxIDARM" ; |
457 | |
458 | default: return "Bad" ; |
459 | } |
460 | } |
461 | |
462 | const char* DimensionString(int dim) |
463 | { |
464 | switch (dim) { |
465 | case 0: return "1D" ; |
466 | case 1: return "2D" ; |
467 | case 2: return "3D" ; |
468 | case 3: return "Cube" ; |
469 | case 4: return "Rect" ; |
470 | case 5: return "Buffer" ; |
471 | case 6: return "SubpassData" ; |
472 | case DimTileImageDataEXT: return "TileImageDataEXT" ; |
473 | |
474 | default: return "Bad" ; |
475 | } |
476 | } |
477 | |
478 | const char* SamplerAddressingModeString(int mode) |
479 | { |
480 | switch (mode) { |
481 | case 0: return "None" ; |
482 | case 1: return "ClampToEdge" ; |
483 | case 2: return "Clamp" ; |
484 | case 3: return "Repeat" ; |
485 | case 4: return "RepeatMirrored" ; |
486 | |
487 | default: return "Bad" ; |
488 | } |
489 | } |
490 | |
491 | const char* SamplerFilterModeString(int mode) |
492 | { |
493 | switch (mode) { |
494 | case 0: return "Nearest" ; |
495 | case 1: return "Linear" ; |
496 | |
497 | default: return "Bad" ; |
498 | } |
499 | } |
500 | |
501 | const char* ImageFormatString(int format) |
502 | { |
503 | switch (format) { |
504 | case 0: return "Unknown" ; |
505 | |
506 | // ES/Desktop float |
507 | case 1: return "Rgba32f" ; |
508 | case 2: return "Rgba16f" ; |
509 | case 3: return "R32f" ; |
510 | case 4: return "Rgba8" ; |
511 | case 5: return "Rgba8Snorm" ; |
512 | |
513 | // Desktop float |
514 | case 6: return "Rg32f" ; |
515 | case 7: return "Rg16f" ; |
516 | case 8: return "R11fG11fB10f" ; |
517 | case 9: return "R16f" ; |
518 | case 10: return "Rgba16" ; |
519 | case 11: return "Rgb10A2" ; |
520 | case 12: return "Rg16" ; |
521 | case 13: return "Rg8" ; |
522 | case 14: return "R16" ; |
523 | case 15: return "R8" ; |
524 | case 16: return "Rgba16Snorm" ; |
525 | case 17: return "Rg16Snorm" ; |
526 | case 18: return "Rg8Snorm" ; |
527 | case 19: return "R16Snorm" ; |
528 | case 20: return "R8Snorm" ; |
529 | |
530 | // ES/Desktop int |
531 | case 21: return "Rgba32i" ; |
532 | case 22: return "Rgba16i" ; |
533 | case 23: return "Rgba8i" ; |
534 | case 24: return "R32i" ; |
535 | |
536 | // Desktop int |
537 | case 25: return "Rg32i" ; |
538 | case 26: return "Rg16i" ; |
539 | case 27: return "Rg8i" ; |
540 | case 28: return "R16i" ; |
541 | case 29: return "R8i" ; |
542 | |
543 | // ES/Desktop uint |
544 | case 30: return "Rgba32ui" ; |
545 | case 31: return "Rgba16ui" ; |
546 | case 32: return "Rgba8ui" ; |
547 | case 33: return "R32ui" ; |
548 | |
549 | // Desktop uint |
550 | case 34: return "Rgb10a2ui" ; |
551 | case 35: return "Rg32ui" ; |
552 | case 36: return "Rg16ui" ; |
553 | case 37: return "Rg8ui" ; |
554 | case 38: return "R16ui" ; |
555 | case 39: return "R8ui" ; |
556 | case 40: return "R64ui" ; |
557 | case 41: return "R64i" ; |
558 | |
559 | default: |
560 | return "Bad" ; |
561 | } |
562 | } |
563 | |
564 | const char* ImageChannelOrderString(int format) |
565 | { |
566 | switch (format) { |
567 | case 0: return "R" ; |
568 | case 1: return "A" ; |
569 | case 2: return "RG" ; |
570 | case 3: return "RA" ; |
571 | case 4: return "RGB" ; |
572 | case 5: return "RGBA" ; |
573 | case 6: return "BGRA" ; |
574 | case 7: return "ARGB" ; |
575 | case 8: return "Intensity" ; |
576 | case 9: return "Luminance" ; |
577 | case 10: return "Rx" ; |
578 | case 11: return "RGx" ; |
579 | case 12: return "RGBx" ; |
580 | case 13: return "Depth" ; |
581 | case 14: return "DepthStencil" ; |
582 | case 15: return "sRGB" ; |
583 | case 16: return "sRGBx" ; |
584 | case 17: return "sRGBA" ; |
585 | case 18: return "sBGRA" ; |
586 | |
587 | default: |
588 | return "Bad" ; |
589 | } |
590 | } |
591 | |
592 | const char* ImageChannelDataTypeString(int type) |
593 | { |
594 | switch (type) |
595 | { |
596 | case 0: return "SnormInt8" ; |
597 | case 1: return "SnormInt16" ; |
598 | case 2: return "UnormInt8" ; |
599 | case 3: return "UnormInt16" ; |
600 | case 4: return "UnormShort565" ; |
601 | case 5: return "UnormShort555" ; |
602 | case 6: return "UnormInt101010" ; |
603 | case 7: return "SignedInt8" ; |
604 | case 8: return "SignedInt16" ; |
605 | case 9: return "SignedInt32" ; |
606 | case 10: return "UnsignedInt8" ; |
607 | case 11: return "UnsignedInt16" ; |
608 | case 12: return "UnsignedInt32" ; |
609 | case 13: return "HalfFloat" ; |
610 | case 14: return "Float" ; |
611 | case 15: return "UnormInt24" ; |
612 | case 16: return "UnormInt101010_2" ; |
613 | |
614 | default: |
615 | return "Bad" ; |
616 | } |
617 | } |
618 | |
619 | const int ImageOperandsCeiling = 14; |
620 | |
621 | const char* ImageOperandsString(int format) |
622 | { |
623 | switch (format) { |
624 | case ImageOperandsBiasShift: return "Bias" ; |
625 | case ImageOperandsLodShift: return "Lod" ; |
626 | case ImageOperandsGradShift: return "Grad" ; |
627 | case ImageOperandsConstOffsetShift: return "ConstOffset" ; |
628 | case ImageOperandsOffsetShift: return "Offset" ; |
629 | case ImageOperandsConstOffsetsShift: return "ConstOffsets" ; |
630 | case ImageOperandsSampleShift: return "Sample" ; |
631 | case ImageOperandsMinLodShift: return "MinLod" ; |
632 | case ImageOperandsMakeTexelAvailableKHRShift: return "MakeTexelAvailableKHR" ; |
633 | case ImageOperandsMakeTexelVisibleKHRShift: return "MakeTexelVisibleKHR" ; |
634 | case ImageOperandsNonPrivateTexelKHRShift: return "NonPrivateTexelKHR" ; |
635 | case ImageOperandsVolatileTexelKHRShift: return "VolatileTexelKHR" ; |
636 | case ImageOperandsSignExtendShift: return "SignExtend" ; |
637 | case ImageOperandsZeroExtendShift: return "ZeroExtend" ; |
638 | |
639 | case ImageOperandsCeiling: |
640 | default: |
641 | return "Bad" ; |
642 | } |
643 | } |
644 | |
645 | const char* FPFastMathString(int mode) |
646 | { |
647 | switch (mode) { |
648 | case 0: return "NotNaN" ; |
649 | case 1: return "NotInf" ; |
650 | case 2: return "NSZ" ; |
651 | case 3: return "AllowRecip" ; |
652 | case 4: return "Fast" ; |
653 | |
654 | default: return "Bad" ; |
655 | } |
656 | } |
657 | |
658 | const char* FPRoundingModeString(int mode) |
659 | { |
660 | switch (mode) { |
661 | case 0: return "RTE" ; |
662 | case 1: return "RTZ" ; |
663 | case 2: return "RTP" ; |
664 | case 3: return "RTN" ; |
665 | |
666 | default: return "Bad" ; |
667 | } |
668 | } |
669 | |
670 | const char* LinkageTypeString(int type) |
671 | { |
672 | switch (type) { |
673 | case 0: return "Export" ; |
674 | case 1: return "Import" ; |
675 | |
676 | default: return "Bad" ; |
677 | } |
678 | } |
679 | |
680 | const char* FuncParamAttrString(int attr) |
681 | { |
682 | switch (attr) { |
683 | case 0: return "Zext" ; |
684 | case 1: return "Sext" ; |
685 | case 2: return "ByVal" ; |
686 | case 3: return "Sret" ; |
687 | case 4: return "NoAlias" ; |
688 | case 5: return "NoCapture" ; |
689 | case 6: return "NoWrite" ; |
690 | case 7: return "NoReadWrite" ; |
691 | |
692 | default: return "Bad" ; |
693 | } |
694 | } |
695 | |
696 | const char* AccessQualifierString(int attr) |
697 | { |
698 | switch (attr) { |
699 | case 0: return "ReadOnly" ; |
700 | case 1: return "WriteOnly" ; |
701 | case 2: return "ReadWrite" ; |
702 | |
703 | default: return "Bad" ; |
704 | } |
705 | } |
706 | |
707 | const int SelectControlCeiling = 2; |
708 | |
709 | const char* SelectControlString(int cont) |
710 | { |
711 | switch (cont) { |
712 | case 0: return "Flatten" ; |
713 | case 1: return "DontFlatten" ; |
714 | |
715 | case SelectControlCeiling: |
716 | default: return "Bad" ; |
717 | } |
718 | } |
719 | |
720 | const int LoopControlCeiling = LoopControlPartialCountShift + 1; |
721 | |
722 | const char* LoopControlString(int cont) |
723 | { |
724 | switch (cont) { |
725 | case LoopControlUnrollShift: return "Unroll" ; |
726 | case LoopControlDontUnrollShift: return "DontUnroll" ; |
727 | case LoopControlDependencyInfiniteShift: return "DependencyInfinite" ; |
728 | case LoopControlDependencyLengthShift: return "DependencyLength" ; |
729 | case LoopControlMinIterationsShift: return "MinIterations" ; |
730 | case LoopControlMaxIterationsShift: return "MaxIterations" ; |
731 | case LoopControlIterationMultipleShift: return "IterationMultiple" ; |
732 | case LoopControlPeelCountShift: return "PeelCount" ; |
733 | case LoopControlPartialCountShift: return "PartialCount" ; |
734 | |
735 | case LoopControlCeiling: |
736 | default: return "Bad" ; |
737 | } |
738 | } |
739 | |
740 | const int FunctionControlCeiling = 4; |
741 | |
742 | const char* FunctionControlString(int cont) |
743 | { |
744 | switch (cont) { |
745 | case 0: return "Inline" ; |
746 | case 1: return "DontInline" ; |
747 | case 2: return "Pure" ; |
748 | case 3: return "Const" ; |
749 | |
750 | case FunctionControlCeiling: |
751 | default: return "Bad" ; |
752 | } |
753 | } |
754 | |
755 | const char* MemorySemanticsString(int mem) |
756 | { |
757 | // Note: No bits set (None) means "Relaxed" |
758 | switch (mem) { |
759 | case 0: return "Bad" ; // Note: this is a placeholder for 'Consume' |
760 | case 1: return "Acquire" ; |
761 | case 2: return "Release" ; |
762 | case 3: return "AcquireRelease" ; |
763 | case 4: return "SequentiallyConsistent" ; |
764 | case 5: return "Bad" ; // Note: reserved for future expansion |
765 | case 6: return "UniformMemory" ; |
766 | case 7: return "SubgroupMemory" ; |
767 | case 8: return "WorkgroupMemory" ; |
768 | case 9: return "CrossWorkgroupMemory" ; |
769 | case 10: return "AtomicCounterMemory" ; |
770 | case 11: return "ImageMemory" ; |
771 | |
772 | default: return "Bad" ; |
773 | } |
774 | } |
775 | |
776 | const int MemoryAccessCeiling = 6; |
777 | |
778 | const char* MemoryAccessString(int mem) |
779 | { |
780 | switch (mem) { |
781 | case MemoryAccessVolatileShift: return "Volatile" ; |
782 | case MemoryAccessAlignedShift: return "Aligned" ; |
783 | case MemoryAccessNontemporalShift: return "Nontemporal" ; |
784 | case MemoryAccessMakePointerAvailableKHRShift: return "MakePointerAvailableKHR" ; |
785 | case MemoryAccessMakePointerVisibleKHRShift: return "MakePointerVisibleKHR" ; |
786 | case MemoryAccessNonPrivatePointerKHRShift: return "NonPrivatePointerKHR" ; |
787 | |
788 | default: return "Bad" ; |
789 | } |
790 | } |
791 | |
792 | const char* ScopeString(int mem) |
793 | { |
794 | switch (mem) { |
795 | case 0: return "CrossDevice" ; |
796 | case 1: return "Device" ; |
797 | case 2: return "Workgroup" ; |
798 | case 3: return "Subgroup" ; |
799 | case 4: return "Invocation" ; |
800 | |
801 | default: return "Bad" ; |
802 | } |
803 | } |
804 | |
805 | const char* GroupOperationString(int gop) |
806 | { |
807 | |
808 | switch (gop) |
809 | { |
810 | case GroupOperationReduce: return "Reduce" ; |
811 | case GroupOperationInclusiveScan: return "InclusiveScan" ; |
812 | case GroupOperationExclusiveScan: return "ExclusiveScan" ; |
813 | case GroupOperationClusteredReduce: return "ClusteredReduce" ; |
814 | case GroupOperationPartitionedReduceNV: return "PartitionedReduceNV" ; |
815 | case GroupOperationPartitionedInclusiveScanNV: return "PartitionedInclusiveScanNV" ; |
816 | case GroupOperationPartitionedExclusiveScanNV: return "PartitionedExclusiveScanNV" ; |
817 | |
818 | default: return "Bad" ; |
819 | } |
820 | } |
821 | |
822 | const char* KernelEnqueueFlagsString(int flag) |
823 | { |
824 | switch (flag) |
825 | { |
826 | case 0: return "NoWait" ; |
827 | case 1: return "WaitKernel" ; |
828 | case 2: return "WaitWorkGroup" ; |
829 | |
830 | default: return "Bad" ; |
831 | } |
832 | } |
833 | |
834 | const char* KernelProfilingInfoString(int info) |
835 | { |
836 | switch (info) |
837 | { |
838 | case 0: return "CmdExecTime" ; |
839 | |
840 | default: return "Bad" ; |
841 | } |
842 | } |
843 | |
844 | const char* CapabilityString(int info) |
845 | { |
846 | switch (info) |
847 | { |
848 | case 0: return "Matrix" ; |
849 | case 1: return "Shader" ; |
850 | case 2: return "Geometry" ; |
851 | case 3: return "Tessellation" ; |
852 | case 4: return "Addresses" ; |
853 | case 5: return "Linkage" ; |
854 | case 6: return "Kernel" ; |
855 | case 7: return "Vector16" ; |
856 | case 8: return "Float16Buffer" ; |
857 | case 9: return "Float16" ; |
858 | case 10: return "Float64" ; |
859 | case 11: return "Int64" ; |
860 | case 12: return "Int64Atomics" ; |
861 | case 13: return "ImageBasic" ; |
862 | case 14: return "ImageReadWrite" ; |
863 | case 15: return "ImageMipmap" ; |
864 | case 16: return "Bad" ; |
865 | case 17: return "Pipes" ; |
866 | case 18: return "Groups" ; |
867 | case 19: return "DeviceEnqueue" ; |
868 | case 20: return "LiteralSampler" ; |
869 | case 21: return "AtomicStorage" ; |
870 | case 22: return "Int16" ; |
871 | case 23: return "TessellationPointSize" ; |
872 | case 24: return "GeometryPointSize" ; |
873 | case 25: return "ImageGatherExtended" ; |
874 | case 26: return "Bad" ; |
875 | case 27: return "StorageImageMultisample" ; |
876 | case 28: return "UniformBufferArrayDynamicIndexing" ; |
877 | case 29: return "SampledImageArrayDynamicIndexing" ; |
878 | case 30: return "StorageBufferArrayDynamicIndexing" ; |
879 | case 31: return "StorageImageArrayDynamicIndexing" ; |
880 | case 32: return "ClipDistance" ; |
881 | case 33: return "CullDistance" ; |
882 | case 34: return "ImageCubeArray" ; |
883 | case 35: return "SampleRateShading" ; |
884 | case 36: return "ImageRect" ; |
885 | case 37: return "SampledRect" ; |
886 | case 38: return "GenericPointer" ; |
887 | case 39: return "Int8" ; |
888 | case 40: return "InputAttachment" ; |
889 | case 41: return "SparseResidency" ; |
890 | case 42: return "MinLod" ; |
891 | case 43: return "Sampled1D" ; |
892 | case 44: return "Image1D" ; |
893 | case 45: return "SampledCubeArray" ; |
894 | case 46: return "SampledBuffer" ; |
895 | case 47: return "ImageBuffer" ; |
896 | case 48: return "ImageMSArray" ; |
897 | case 49: return "StorageImageExtendedFormats" ; |
898 | case 50: return "ImageQuery" ; |
899 | case 51: return "DerivativeControl" ; |
900 | case 52: return "InterpolationFunction" ; |
901 | case 53: return "TransformFeedback" ; |
902 | case 54: return "GeometryStreams" ; |
903 | case 55: return "StorageImageReadWithoutFormat" ; |
904 | case 56: return "StorageImageWriteWithoutFormat" ; |
905 | case 57: return "MultiViewport" ; |
906 | case 61: return "GroupNonUniform" ; |
907 | case 62: return "GroupNonUniformVote" ; |
908 | case 63: return "GroupNonUniformArithmetic" ; |
909 | case 64: return "GroupNonUniformBallot" ; |
910 | case 65: return "GroupNonUniformShuffle" ; |
911 | case 66: return "GroupNonUniformShuffleRelative" ; |
912 | case 67: return "GroupNonUniformClustered" ; |
913 | case 68: return "GroupNonUniformQuad" ; |
914 | |
915 | case CapabilitySubgroupBallotKHR: return "SubgroupBallotKHR" ; |
916 | case CapabilityDrawParameters: return "DrawParameters" ; |
917 | case CapabilitySubgroupVoteKHR: return "SubgroupVoteKHR" ; |
918 | |
919 | case CapabilityStorageUniformBufferBlock16: return "StorageUniformBufferBlock16" ; |
920 | case CapabilityStorageUniform16: return "StorageUniform16" ; |
921 | case CapabilityStoragePushConstant16: return "StoragePushConstant16" ; |
922 | case CapabilityStorageInputOutput16: return "StorageInputOutput16" ; |
923 | |
924 | case CapabilityStorageBuffer8BitAccess: return "StorageBuffer8BitAccess" ; |
925 | case CapabilityUniformAndStorageBuffer8BitAccess: return "UniformAndStorageBuffer8BitAccess" ; |
926 | case CapabilityStoragePushConstant8: return "StoragePushConstant8" ; |
927 | |
928 | case CapabilityDeviceGroup: return "DeviceGroup" ; |
929 | case CapabilityMultiView: return "MultiView" ; |
930 | |
931 | case CapabilityDenormPreserve: return "DenormPreserve" ; |
932 | case CapabilityDenormFlushToZero: return "DenormFlushToZero" ; |
933 | case CapabilitySignedZeroInfNanPreserve: return "SignedZeroInfNanPreserve" ; |
934 | case CapabilityRoundingModeRTE: return "RoundingModeRTE" ; |
935 | case CapabilityRoundingModeRTZ: return "RoundingModeRTZ" ; |
936 | |
937 | case CapabilityStencilExportEXT: return "StencilExportEXT" ; |
938 | |
939 | case CapabilityFloat16ImageAMD: return "Float16ImageAMD" ; |
940 | case CapabilityImageGatherBiasLodAMD: return "ImageGatherBiasLodAMD" ; |
941 | case CapabilityFragmentMaskAMD: return "FragmentMaskAMD" ; |
942 | case CapabilityImageReadWriteLodAMD: return "ImageReadWriteLodAMD" ; |
943 | |
944 | case CapabilityAtomicStorageOps: return "AtomicStorageOps" ; |
945 | |
946 | case CapabilitySampleMaskPostDepthCoverage: return "SampleMaskPostDepthCoverage" ; |
947 | case CapabilityGeometryShaderPassthroughNV: return "GeometryShaderPassthroughNV" ; |
948 | case CapabilityShaderViewportIndexLayerNV: return "ShaderViewportIndexLayerNV" ; |
949 | case CapabilityShaderViewportMaskNV: return "ShaderViewportMaskNV" ; |
950 | case CapabilityShaderStereoViewNV: return "ShaderStereoViewNV" ; |
951 | case CapabilityPerViewAttributesNV: return "PerViewAttributesNV" ; |
952 | case CapabilityGroupNonUniformPartitionedNV: return "GroupNonUniformPartitionedNV" ; |
953 | case CapabilityRayTracingNV: return "RayTracingNV" ; |
954 | case CapabilityRayTracingMotionBlurNV: return "RayTracingMotionBlurNV" ; |
955 | case CapabilityRayTracingKHR: return "RayTracingKHR" ; |
956 | case CapabilityRayCullMaskKHR: return "RayCullMaskKHR" ; |
957 | case CapabilityRayQueryKHR: return "RayQueryKHR" ; |
958 | case CapabilityRayTracingProvisionalKHR: return "RayTracingProvisionalKHR" ; |
959 | case CapabilityRayTraversalPrimitiveCullingKHR: return "RayTraversalPrimitiveCullingKHR" ; |
960 | case CapabilityRayTracingPositionFetchKHR: return "RayTracingPositionFetchKHR" ; |
961 | case CapabilityRayQueryPositionFetchKHR: return "RayQueryPositionFetchKHR" ; |
962 | case CapabilityComputeDerivativeGroupQuadsNV: return "ComputeDerivativeGroupQuadsNV" ; |
963 | case CapabilityComputeDerivativeGroupLinearNV: return "ComputeDerivativeGroupLinearNV" ; |
964 | case CapabilityFragmentBarycentricKHR: return "FragmentBarycentricKHR" ; |
965 | case CapabilityMeshShadingNV: return "MeshShadingNV" ; |
966 | case CapabilityImageFootprintNV: return "ImageFootprintNV" ; |
967 | case CapabilityMeshShadingEXT: return "MeshShadingEXT" ; |
968 | // case CapabilityShadingRateNV: return "ShadingRateNV"; // superseded by FragmentDensityEXT |
969 | case CapabilitySampleMaskOverrideCoverageNV: return "SampleMaskOverrideCoverageNV" ; |
970 | case CapabilityFragmentDensityEXT: return "FragmentDensityEXT" ; |
971 | |
972 | case CapabilityFragmentFullyCoveredEXT: return "FragmentFullyCoveredEXT" ; |
973 | |
974 | case CapabilityShaderNonUniformEXT: return "ShaderNonUniformEXT" ; |
975 | case CapabilityRuntimeDescriptorArrayEXT: return "RuntimeDescriptorArrayEXT" ; |
976 | case CapabilityInputAttachmentArrayDynamicIndexingEXT: return "InputAttachmentArrayDynamicIndexingEXT" ; |
977 | case CapabilityUniformTexelBufferArrayDynamicIndexingEXT: return "UniformTexelBufferArrayDynamicIndexingEXT" ; |
978 | case CapabilityStorageTexelBufferArrayDynamicIndexingEXT: return "StorageTexelBufferArrayDynamicIndexingEXT" ; |
979 | case CapabilityUniformBufferArrayNonUniformIndexingEXT: return "UniformBufferArrayNonUniformIndexingEXT" ; |
980 | case CapabilitySampledImageArrayNonUniformIndexingEXT: return "SampledImageArrayNonUniformIndexingEXT" ; |
981 | case CapabilityStorageBufferArrayNonUniformIndexingEXT: return "StorageBufferArrayNonUniformIndexingEXT" ; |
982 | case CapabilityStorageImageArrayNonUniformIndexingEXT: return "StorageImageArrayNonUniformIndexingEXT" ; |
983 | case CapabilityInputAttachmentArrayNonUniformIndexingEXT: return "InputAttachmentArrayNonUniformIndexingEXT" ; |
984 | case CapabilityUniformTexelBufferArrayNonUniformIndexingEXT: return "UniformTexelBufferArrayNonUniformIndexingEXT" ; |
985 | case CapabilityStorageTexelBufferArrayNonUniformIndexingEXT: return "StorageTexelBufferArrayNonUniformIndexingEXT" ; |
986 | |
987 | case CapabilityVulkanMemoryModelKHR: return "VulkanMemoryModelKHR" ; |
988 | case CapabilityVulkanMemoryModelDeviceScopeKHR: return "VulkanMemoryModelDeviceScopeKHR" ; |
989 | |
990 | case CapabilityPhysicalStorageBufferAddressesEXT: return "PhysicalStorageBufferAddressesEXT" ; |
991 | |
992 | case CapabilityVariablePointers: return "VariablePointers" ; |
993 | |
994 | case CapabilityCooperativeMatrixNV: return "CooperativeMatrixNV" ; |
995 | case CapabilityShaderSMBuiltinsNV: return "ShaderSMBuiltinsNV" ; |
996 | |
997 | case CapabilityFragmentShaderSampleInterlockEXT: return "CapabilityFragmentShaderSampleInterlockEXT" ; |
998 | case CapabilityFragmentShaderPixelInterlockEXT: return "CapabilityFragmentShaderPixelInterlockEXT" ; |
999 | case CapabilityFragmentShaderShadingRateInterlockEXT: return "CapabilityFragmentShaderShadingRateInterlockEXT" ; |
1000 | |
1001 | case CapabilityTileImageColorReadAccessEXT: return "TileImageColorReadAccessEXT" ; |
1002 | case CapabilityTileImageDepthReadAccessEXT: return "TileImageDepthReadAccessEXT" ; |
1003 | case CapabilityTileImageStencilReadAccessEXT: return "TileImageStencilReadAccessEXT" ; |
1004 | |
1005 | case CapabilityFragmentShadingRateKHR: return "FragmentShadingRateKHR" ; |
1006 | |
1007 | case CapabilityDemoteToHelperInvocationEXT: return "DemoteToHelperInvocationEXT" ; |
1008 | case CapabilityShaderClockKHR: return "ShaderClockKHR" ; |
1009 | case CapabilityInt64ImageEXT: return "Int64ImageEXT" ; |
1010 | |
1011 | case CapabilityIntegerFunctions2INTEL: return "CapabilityIntegerFunctions2INTEL" ; |
1012 | |
1013 | case CapabilityAtomicFloat16AddEXT: return "AtomicFloat16AddEXT" ; |
1014 | case CapabilityAtomicFloat32AddEXT: return "AtomicFloat32AddEXT" ; |
1015 | case CapabilityAtomicFloat64AddEXT: return "AtomicFloat64AddEXT" ; |
1016 | case CapabilityAtomicFloat16MinMaxEXT: return "AtomicFloat16MinMaxEXT" ; |
1017 | case CapabilityAtomicFloat32MinMaxEXT: return "AtomicFloat32MinMaxEXT" ; |
1018 | case CapabilityAtomicFloat64MinMaxEXT: return "AtomicFloat64MinMaxEXT" ; |
1019 | |
1020 | case CapabilityWorkgroupMemoryExplicitLayoutKHR: return "CapabilityWorkgroupMemoryExplicitLayoutKHR" ; |
1021 | case CapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR: return "CapabilityWorkgroupMemoryExplicitLayout8BitAccessKHR" ; |
1022 | case CapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR: return "CapabilityWorkgroupMemoryExplicitLayout16BitAccessKHR" ; |
1023 | case CapabilityCoreBuiltinsARM: return "CoreBuiltinsARM" ; |
1024 | |
1025 | case CapabilityShaderInvocationReorderNV: return "ShaderInvocationReorderNV" ; |
1026 | default: return "Bad" ; |
1027 | } |
1028 | } |
1029 | |
1030 | const char* OpcodeString(int op) |
1031 | { |
1032 | switch (op) { |
1033 | case 0: return "OpNop" ; |
1034 | case 1: return "OpUndef" ; |
1035 | case 2: return "OpSourceContinued" ; |
1036 | case 3: return "OpSource" ; |
1037 | case 4: return "OpSourceExtension" ; |
1038 | case 5: return "OpName" ; |
1039 | case 6: return "OpMemberName" ; |
1040 | case 7: return "OpString" ; |
1041 | case 8: return "OpLine" ; |
1042 | case 9: return "Bad" ; |
1043 | case 10: return "OpExtension" ; |
1044 | case 11: return "OpExtInstImport" ; |
1045 | case 12: return "OpExtInst" ; |
1046 | case 13: return "Bad" ; |
1047 | case 14: return "OpMemoryModel" ; |
1048 | case 15: return "OpEntryPoint" ; |
1049 | case 16: return "OpExecutionMode" ; |
1050 | case 17: return "OpCapability" ; |
1051 | case 18: return "Bad" ; |
1052 | case 19: return "OpTypeVoid" ; |
1053 | case 20: return "OpTypeBool" ; |
1054 | case 21: return "OpTypeInt" ; |
1055 | case 22: return "OpTypeFloat" ; |
1056 | case 23: return "OpTypeVector" ; |
1057 | case 24: return "OpTypeMatrix" ; |
1058 | case 25: return "OpTypeImage" ; |
1059 | case 26: return "OpTypeSampler" ; |
1060 | case 27: return "OpTypeSampledImage" ; |
1061 | case 28: return "OpTypeArray" ; |
1062 | case 29: return "OpTypeRuntimeArray" ; |
1063 | case 30: return "OpTypeStruct" ; |
1064 | case 31: return "OpTypeOpaque" ; |
1065 | case 32: return "OpTypePointer" ; |
1066 | case 33: return "OpTypeFunction" ; |
1067 | case 34: return "OpTypeEvent" ; |
1068 | case 35: return "OpTypeDeviceEvent" ; |
1069 | case 36: return "OpTypeReserveId" ; |
1070 | case 37: return "OpTypeQueue" ; |
1071 | case 38: return "OpTypePipe" ; |
1072 | case 39: return "OpTypeForwardPointer" ; |
1073 | case 40: return "Bad" ; |
1074 | case 41: return "OpConstantTrue" ; |
1075 | case 42: return "OpConstantFalse" ; |
1076 | case 43: return "OpConstant" ; |
1077 | case 44: return "OpConstantComposite" ; |
1078 | case 45: return "OpConstantSampler" ; |
1079 | case 46: return "OpConstantNull" ; |
1080 | case 47: return "Bad" ; |
1081 | case 48: return "OpSpecConstantTrue" ; |
1082 | case 49: return "OpSpecConstantFalse" ; |
1083 | case 50: return "OpSpecConstant" ; |
1084 | case 51: return "OpSpecConstantComposite" ; |
1085 | case 52: return "OpSpecConstantOp" ; |
1086 | case 53: return "Bad" ; |
1087 | case 54: return "OpFunction" ; |
1088 | case 55: return "OpFunctionParameter" ; |
1089 | case 56: return "OpFunctionEnd" ; |
1090 | case 57: return "OpFunctionCall" ; |
1091 | case 58: return "Bad" ; |
1092 | case 59: return "OpVariable" ; |
1093 | case 60: return "OpImageTexelPointer" ; |
1094 | case 61: return "OpLoad" ; |
1095 | case 62: return "OpStore" ; |
1096 | case 63: return "OpCopyMemory" ; |
1097 | case 64: return "OpCopyMemorySized" ; |
1098 | case 65: return "OpAccessChain" ; |
1099 | case 66: return "OpInBoundsAccessChain" ; |
1100 | case 67: return "OpPtrAccessChain" ; |
1101 | case 68: return "OpArrayLength" ; |
1102 | case 69: return "OpGenericPtrMemSemantics" ; |
1103 | case 70: return "OpInBoundsPtrAccessChain" ; |
1104 | case 71: return "OpDecorate" ; |
1105 | case 72: return "OpMemberDecorate" ; |
1106 | case 73: return "OpDecorationGroup" ; |
1107 | case 74: return "OpGroupDecorate" ; |
1108 | case 75: return "OpGroupMemberDecorate" ; |
1109 | case 76: return "Bad" ; |
1110 | case 77: return "OpVectorExtractDynamic" ; |
1111 | case 78: return "OpVectorInsertDynamic" ; |
1112 | case 79: return "OpVectorShuffle" ; |
1113 | case 80: return "OpCompositeConstruct" ; |
1114 | case 81: return "OpCompositeExtract" ; |
1115 | case 82: return "OpCompositeInsert" ; |
1116 | case 83: return "OpCopyObject" ; |
1117 | case 84: return "OpTranspose" ; |
1118 | case OpCopyLogical: return "OpCopyLogical" ; |
1119 | case 85: return "Bad" ; |
1120 | case 86: return "OpSampledImage" ; |
1121 | case 87: return "OpImageSampleImplicitLod" ; |
1122 | case 88: return "OpImageSampleExplicitLod" ; |
1123 | case 89: return "OpImageSampleDrefImplicitLod" ; |
1124 | case 90: return "OpImageSampleDrefExplicitLod" ; |
1125 | case 91: return "OpImageSampleProjImplicitLod" ; |
1126 | case 92: return "OpImageSampleProjExplicitLod" ; |
1127 | case 93: return "OpImageSampleProjDrefImplicitLod" ; |
1128 | case 94: return "OpImageSampleProjDrefExplicitLod" ; |
1129 | case 95: return "OpImageFetch" ; |
1130 | case 96: return "OpImageGather" ; |
1131 | case 97: return "OpImageDrefGather" ; |
1132 | case 98: return "OpImageRead" ; |
1133 | case 99: return "OpImageWrite" ; |
1134 | case 100: return "OpImage" ; |
1135 | case 101: return "OpImageQueryFormat" ; |
1136 | case 102: return "OpImageQueryOrder" ; |
1137 | case 103: return "OpImageQuerySizeLod" ; |
1138 | case 104: return "OpImageQuerySize" ; |
1139 | case 105: return "OpImageQueryLod" ; |
1140 | case 106: return "OpImageQueryLevels" ; |
1141 | case 107: return "OpImageQuerySamples" ; |
1142 | case 108: return "Bad" ; |
1143 | case 109: return "OpConvertFToU" ; |
1144 | case 110: return "OpConvertFToS" ; |
1145 | case 111: return "OpConvertSToF" ; |
1146 | case 112: return "OpConvertUToF" ; |
1147 | case 113: return "OpUConvert" ; |
1148 | case 114: return "OpSConvert" ; |
1149 | case 115: return "OpFConvert" ; |
1150 | case 116: return "OpQuantizeToF16" ; |
1151 | case 117: return "OpConvertPtrToU" ; |
1152 | case 118: return "OpSatConvertSToU" ; |
1153 | case 119: return "OpSatConvertUToS" ; |
1154 | case 120: return "OpConvertUToPtr" ; |
1155 | case 121: return "OpPtrCastToGeneric" ; |
1156 | case 122: return "OpGenericCastToPtr" ; |
1157 | case 123: return "OpGenericCastToPtrExplicit" ; |
1158 | case 124: return "OpBitcast" ; |
1159 | case 125: return "Bad" ; |
1160 | case 126: return "OpSNegate" ; |
1161 | case 127: return "OpFNegate" ; |
1162 | case 128: return "OpIAdd" ; |
1163 | case 129: return "OpFAdd" ; |
1164 | case 130: return "OpISub" ; |
1165 | case 131: return "OpFSub" ; |
1166 | case 132: return "OpIMul" ; |
1167 | case 133: return "OpFMul" ; |
1168 | case 134: return "OpUDiv" ; |
1169 | case 135: return "OpSDiv" ; |
1170 | case 136: return "OpFDiv" ; |
1171 | case 137: return "OpUMod" ; |
1172 | case 138: return "OpSRem" ; |
1173 | case 139: return "OpSMod" ; |
1174 | case 140: return "OpFRem" ; |
1175 | case 141: return "OpFMod" ; |
1176 | case 142: return "OpVectorTimesScalar" ; |
1177 | case 143: return "OpMatrixTimesScalar" ; |
1178 | case 144: return "OpVectorTimesMatrix" ; |
1179 | case 145: return "OpMatrixTimesVector" ; |
1180 | case 146: return "OpMatrixTimesMatrix" ; |
1181 | case 147: return "OpOuterProduct" ; |
1182 | case 148: return "OpDot" ; |
1183 | case 149: return "OpIAddCarry" ; |
1184 | case 150: return "OpISubBorrow" ; |
1185 | case 151: return "OpUMulExtended" ; |
1186 | case 152: return "OpSMulExtended" ; |
1187 | case 153: return "Bad" ; |
1188 | case 154: return "OpAny" ; |
1189 | case 155: return "OpAll" ; |
1190 | case 156: return "OpIsNan" ; |
1191 | case 157: return "OpIsInf" ; |
1192 | case 158: return "OpIsFinite" ; |
1193 | case 159: return "OpIsNormal" ; |
1194 | case 160: return "OpSignBitSet" ; |
1195 | case 161: return "OpLessOrGreater" ; |
1196 | case 162: return "OpOrdered" ; |
1197 | case 163: return "OpUnordered" ; |
1198 | case 164: return "OpLogicalEqual" ; |
1199 | case 165: return "OpLogicalNotEqual" ; |
1200 | case 166: return "OpLogicalOr" ; |
1201 | case 167: return "OpLogicalAnd" ; |
1202 | case 168: return "OpLogicalNot" ; |
1203 | case 169: return "OpSelect" ; |
1204 | case 170: return "OpIEqual" ; |
1205 | case 171: return "OpINotEqual" ; |
1206 | case 172: return "OpUGreaterThan" ; |
1207 | case 173: return "OpSGreaterThan" ; |
1208 | case 174: return "OpUGreaterThanEqual" ; |
1209 | case 175: return "OpSGreaterThanEqual" ; |
1210 | case 176: return "OpULessThan" ; |
1211 | case 177: return "OpSLessThan" ; |
1212 | case 178: return "OpULessThanEqual" ; |
1213 | case 179: return "OpSLessThanEqual" ; |
1214 | case 180: return "OpFOrdEqual" ; |
1215 | case 181: return "OpFUnordEqual" ; |
1216 | case 182: return "OpFOrdNotEqual" ; |
1217 | case 183: return "OpFUnordNotEqual" ; |
1218 | case 184: return "OpFOrdLessThan" ; |
1219 | case 185: return "OpFUnordLessThan" ; |
1220 | case 186: return "OpFOrdGreaterThan" ; |
1221 | case 187: return "OpFUnordGreaterThan" ; |
1222 | case 188: return "OpFOrdLessThanEqual" ; |
1223 | case 189: return "OpFUnordLessThanEqual" ; |
1224 | case 190: return "OpFOrdGreaterThanEqual" ; |
1225 | case 191: return "OpFUnordGreaterThanEqual" ; |
1226 | case 192: return "Bad" ; |
1227 | case 193: return "Bad" ; |
1228 | case 194: return "OpShiftRightLogical" ; |
1229 | case 195: return "OpShiftRightArithmetic" ; |
1230 | case 196: return "OpShiftLeftLogical" ; |
1231 | case 197: return "OpBitwiseOr" ; |
1232 | case 198: return "OpBitwiseXor" ; |
1233 | case 199: return "OpBitwiseAnd" ; |
1234 | case 200: return "OpNot" ; |
1235 | case 201: return "OpBitFieldInsert" ; |
1236 | case 202: return "OpBitFieldSExtract" ; |
1237 | case 203: return "OpBitFieldUExtract" ; |
1238 | case 204: return "OpBitReverse" ; |
1239 | case 205: return "OpBitCount" ; |
1240 | case 206: return "Bad" ; |
1241 | case 207: return "OpDPdx" ; |
1242 | case 208: return "OpDPdy" ; |
1243 | case 209: return "OpFwidth" ; |
1244 | case 210: return "OpDPdxFine" ; |
1245 | case 211: return "OpDPdyFine" ; |
1246 | case 212: return "OpFwidthFine" ; |
1247 | case 213: return "OpDPdxCoarse" ; |
1248 | case 214: return "OpDPdyCoarse" ; |
1249 | case 215: return "OpFwidthCoarse" ; |
1250 | case 216: return "Bad" ; |
1251 | case 217: return "Bad" ; |
1252 | case 218: return "OpEmitVertex" ; |
1253 | case 219: return "OpEndPrimitive" ; |
1254 | case 220: return "OpEmitStreamVertex" ; |
1255 | case 221: return "OpEndStreamPrimitive" ; |
1256 | case 222: return "Bad" ; |
1257 | case 223: return "Bad" ; |
1258 | case 224: return "OpControlBarrier" ; |
1259 | case 225: return "OpMemoryBarrier" ; |
1260 | case 226: return "Bad" ; |
1261 | case 227: return "OpAtomicLoad" ; |
1262 | case 228: return "OpAtomicStore" ; |
1263 | case 229: return "OpAtomicExchange" ; |
1264 | case 230: return "OpAtomicCompareExchange" ; |
1265 | case 231: return "OpAtomicCompareExchangeWeak" ; |
1266 | case 232: return "OpAtomicIIncrement" ; |
1267 | case 233: return "OpAtomicIDecrement" ; |
1268 | case 234: return "OpAtomicIAdd" ; |
1269 | case 235: return "OpAtomicISub" ; |
1270 | case 236: return "OpAtomicSMin" ; |
1271 | case 237: return "OpAtomicUMin" ; |
1272 | case 238: return "OpAtomicSMax" ; |
1273 | case 239: return "OpAtomicUMax" ; |
1274 | case 240: return "OpAtomicAnd" ; |
1275 | case 241: return "OpAtomicOr" ; |
1276 | case 242: return "OpAtomicXor" ; |
1277 | case 243: return "Bad" ; |
1278 | case 244: return "Bad" ; |
1279 | case 245: return "OpPhi" ; |
1280 | case 246: return "OpLoopMerge" ; |
1281 | case 247: return "OpSelectionMerge" ; |
1282 | case 248: return "OpLabel" ; |
1283 | case 249: return "OpBranch" ; |
1284 | case 250: return "OpBranchConditional" ; |
1285 | case 251: return "OpSwitch" ; |
1286 | case 252: return "OpKill" ; |
1287 | case 253: return "OpReturn" ; |
1288 | case 254: return "OpReturnValue" ; |
1289 | case 255: return "OpUnreachable" ; |
1290 | case 256: return "OpLifetimeStart" ; |
1291 | case 257: return "OpLifetimeStop" ; |
1292 | case 258: return "Bad" ; |
1293 | case 259: return "OpGroupAsyncCopy" ; |
1294 | case 260: return "OpGroupWaitEvents" ; |
1295 | case 261: return "OpGroupAll" ; |
1296 | case 262: return "OpGroupAny" ; |
1297 | case 263: return "OpGroupBroadcast" ; |
1298 | case 264: return "OpGroupIAdd" ; |
1299 | case 265: return "OpGroupFAdd" ; |
1300 | case 266: return "OpGroupFMin" ; |
1301 | case 267: return "OpGroupUMin" ; |
1302 | case 268: return "OpGroupSMin" ; |
1303 | case 269: return "OpGroupFMax" ; |
1304 | case 270: return "OpGroupUMax" ; |
1305 | case 271: return "OpGroupSMax" ; |
1306 | case 272: return "Bad" ; |
1307 | case 273: return "Bad" ; |
1308 | case 274: return "OpReadPipe" ; |
1309 | case 275: return "OpWritePipe" ; |
1310 | case 276: return "OpReservedReadPipe" ; |
1311 | case 277: return "OpReservedWritePipe" ; |
1312 | case 278: return "OpReserveReadPipePackets" ; |
1313 | case 279: return "OpReserveWritePipePackets" ; |
1314 | case 280: return "OpCommitReadPipe" ; |
1315 | case 281: return "OpCommitWritePipe" ; |
1316 | case 282: return "OpIsValidReserveId" ; |
1317 | case 283: return "OpGetNumPipePackets" ; |
1318 | case 284: return "OpGetMaxPipePackets" ; |
1319 | case 285: return "OpGroupReserveReadPipePackets" ; |
1320 | case 286: return "OpGroupReserveWritePipePackets" ; |
1321 | case 287: return "OpGroupCommitReadPipe" ; |
1322 | case 288: return "OpGroupCommitWritePipe" ; |
1323 | case 289: return "Bad" ; |
1324 | case 290: return "Bad" ; |
1325 | case 291: return "OpEnqueueMarker" ; |
1326 | case 292: return "OpEnqueueKernel" ; |
1327 | case 293: return "OpGetKernelNDrangeSubGroupCount" ; |
1328 | case 294: return "OpGetKernelNDrangeMaxSubGroupSize" ; |
1329 | case 295: return "OpGetKernelWorkGroupSize" ; |
1330 | case 296: return "OpGetKernelPreferredWorkGroupSizeMultiple" ; |
1331 | case 297: return "OpRetainEvent" ; |
1332 | case 298: return "OpReleaseEvent" ; |
1333 | case 299: return "OpCreateUserEvent" ; |
1334 | case 300: return "OpIsValidEvent" ; |
1335 | case 301: return "OpSetUserEventStatus" ; |
1336 | case 302: return "OpCaptureEventProfilingInfo" ; |
1337 | case 303: return "OpGetDefaultQueue" ; |
1338 | case 304: return "OpBuildNDRange" ; |
1339 | case 305: return "OpImageSparseSampleImplicitLod" ; |
1340 | case 306: return "OpImageSparseSampleExplicitLod" ; |
1341 | case 307: return "OpImageSparseSampleDrefImplicitLod" ; |
1342 | case 308: return "OpImageSparseSampleDrefExplicitLod" ; |
1343 | case 309: return "OpImageSparseSampleProjImplicitLod" ; |
1344 | case 310: return "OpImageSparseSampleProjExplicitLod" ; |
1345 | case 311: return "OpImageSparseSampleProjDrefImplicitLod" ; |
1346 | case 312: return "OpImageSparseSampleProjDrefExplicitLod" ; |
1347 | case 313: return "OpImageSparseFetch" ; |
1348 | case 314: return "OpImageSparseGather" ; |
1349 | case 315: return "OpImageSparseDrefGather" ; |
1350 | case 316: return "OpImageSparseTexelsResident" ; |
1351 | case 317: return "OpNoLine" ; |
1352 | case 318: return "OpAtomicFlagTestAndSet" ; |
1353 | case 319: return "OpAtomicFlagClear" ; |
1354 | case 320: return "OpImageSparseRead" ; |
1355 | |
1356 | case OpModuleProcessed: return "OpModuleProcessed" ; |
1357 | case OpExecutionModeId: return "OpExecutionModeId" ; |
1358 | case OpDecorateId: return "OpDecorateId" ; |
1359 | |
1360 | case 333: return "OpGroupNonUniformElect" ; |
1361 | case 334: return "OpGroupNonUniformAll" ; |
1362 | case 335: return "OpGroupNonUniformAny" ; |
1363 | case 336: return "OpGroupNonUniformAllEqual" ; |
1364 | case 337: return "OpGroupNonUniformBroadcast" ; |
1365 | case 338: return "OpGroupNonUniformBroadcastFirst" ; |
1366 | case 339: return "OpGroupNonUniformBallot" ; |
1367 | case 340: return "OpGroupNonUniformInverseBallot" ; |
1368 | case 341: return "OpGroupNonUniformBallotBitExtract" ; |
1369 | case 342: return "OpGroupNonUniformBallotBitCount" ; |
1370 | case 343: return "OpGroupNonUniformBallotFindLSB" ; |
1371 | case 344: return "OpGroupNonUniformBallotFindMSB" ; |
1372 | case 345: return "OpGroupNonUniformShuffle" ; |
1373 | case 346: return "OpGroupNonUniformShuffleXor" ; |
1374 | case 347: return "OpGroupNonUniformShuffleUp" ; |
1375 | case 348: return "OpGroupNonUniformShuffleDown" ; |
1376 | case 349: return "OpGroupNonUniformIAdd" ; |
1377 | case 350: return "OpGroupNonUniformFAdd" ; |
1378 | case 351: return "OpGroupNonUniformIMul" ; |
1379 | case 352: return "OpGroupNonUniformFMul" ; |
1380 | case 353: return "OpGroupNonUniformSMin" ; |
1381 | case 354: return "OpGroupNonUniformUMin" ; |
1382 | case 355: return "OpGroupNonUniformFMin" ; |
1383 | case 356: return "OpGroupNonUniformSMax" ; |
1384 | case 357: return "OpGroupNonUniformUMax" ; |
1385 | case 358: return "OpGroupNonUniformFMax" ; |
1386 | case 359: return "OpGroupNonUniformBitwiseAnd" ; |
1387 | case 360: return "OpGroupNonUniformBitwiseOr" ; |
1388 | case 361: return "OpGroupNonUniformBitwiseXor" ; |
1389 | case 362: return "OpGroupNonUniformLogicalAnd" ; |
1390 | case 363: return "OpGroupNonUniformLogicalOr" ; |
1391 | case 364: return "OpGroupNonUniformLogicalXor" ; |
1392 | case 365: return "OpGroupNonUniformQuadBroadcast" ; |
1393 | case 366: return "OpGroupNonUniformQuadSwap" ; |
1394 | |
1395 | case OpTerminateInvocation: return "OpTerminateInvocation" ; |
1396 | |
1397 | case 4421: return "OpSubgroupBallotKHR" ; |
1398 | case 4422: return "OpSubgroupFirstInvocationKHR" ; |
1399 | case 4428: return "OpSubgroupAllKHR" ; |
1400 | case 4429: return "OpSubgroupAnyKHR" ; |
1401 | case 4430: return "OpSubgroupAllEqualKHR" ; |
1402 | case 4432: return "OpSubgroupReadInvocationKHR" ; |
1403 | |
1404 | case OpAtomicFAddEXT: return "OpAtomicFAddEXT" ; |
1405 | case OpAtomicFMinEXT: return "OpAtomicFMinEXT" ; |
1406 | case OpAtomicFMaxEXT: return "OpAtomicFMaxEXT" ; |
1407 | |
1408 | case 5000: return "OpGroupIAddNonUniformAMD" ; |
1409 | case 5001: return "OpGroupFAddNonUniformAMD" ; |
1410 | case 5002: return "OpGroupFMinNonUniformAMD" ; |
1411 | case 5003: return "OpGroupUMinNonUniformAMD" ; |
1412 | case 5004: return "OpGroupSMinNonUniformAMD" ; |
1413 | case 5005: return "OpGroupFMaxNonUniformAMD" ; |
1414 | case 5006: return "OpGroupUMaxNonUniformAMD" ; |
1415 | case 5007: return "OpGroupSMaxNonUniformAMD" ; |
1416 | |
1417 | case 5011: return "OpFragmentMaskFetchAMD" ; |
1418 | case 5012: return "OpFragmentFetchAMD" ; |
1419 | |
1420 | case OpReadClockKHR: return "OpReadClockKHR" ; |
1421 | |
1422 | case OpDecorateStringGOOGLE: return "OpDecorateStringGOOGLE" ; |
1423 | case OpMemberDecorateStringGOOGLE: return "OpMemberDecorateStringGOOGLE" ; |
1424 | |
1425 | case OpReportIntersectionKHR: return "OpReportIntersectionKHR" ; |
1426 | case OpIgnoreIntersectionNV: return "OpIgnoreIntersectionNV" ; |
1427 | case OpIgnoreIntersectionKHR: return "OpIgnoreIntersectionKHR" ; |
1428 | case OpTerminateRayNV: return "OpTerminateRayNV" ; |
1429 | case OpTerminateRayKHR: return "OpTerminateRayKHR" ; |
1430 | case OpTraceNV: return "OpTraceNV" ; |
1431 | case OpTraceRayMotionNV: return "OpTraceRayMotionNV" ; |
1432 | case OpTraceRayKHR: return "OpTraceRayKHR" ; |
1433 | case OpTypeAccelerationStructureKHR: return "OpTypeAccelerationStructureKHR" ; |
1434 | case OpExecuteCallableNV: return "OpExecuteCallableNV" ; |
1435 | case OpExecuteCallableKHR: return "OpExecuteCallableKHR" ; |
1436 | case OpConvertUToAccelerationStructureKHR: return "OpConvertUToAccelerationStructureKHR" ; |
1437 | |
1438 | case OpGroupNonUniformPartitionNV: return "OpGroupNonUniformPartitionNV" ; |
1439 | case OpImageSampleFootprintNV: return "OpImageSampleFootprintNV" ; |
1440 | case OpWritePackedPrimitiveIndices4x8NV: return "OpWritePackedPrimitiveIndices4x8NV" ; |
1441 | case OpEmitMeshTasksEXT: return "OpEmitMeshTasksEXT" ; |
1442 | case OpSetMeshOutputsEXT: return "OpSetMeshOutputsEXT" ; |
1443 | |
1444 | case OpTypeRayQueryKHR: return "OpTypeRayQueryKHR" ; |
1445 | case OpRayQueryInitializeKHR: return "OpRayQueryInitializeKHR" ; |
1446 | case OpRayQueryTerminateKHR: return "OpRayQueryTerminateKHR" ; |
1447 | case OpRayQueryGenerateIntersectionKHR: return "OpRayQueryGenerateIntersectionKHR" ; |
1448 | case OpRayQueryConfirmIntersectionKHR: return "OpRayQueryConfirmIntersectionKHR" ; |
1449 | case OpRayQueryProceedKHR: return "OpRayQueryProceedKHR" ; |
1450 | case OpRayQueryGetIntersectionTypeKHR: return "OpRayQueryGetIntersectionTypeKHR" ; |
1451 | case OpRayQueryGetRayTMinKHR: return "OpRayQueryGetRayTMinKHR" ; |
1452 | case OpRayQueryGetRayFlagsKHR: return "OpRayQueryGetRayFlagsKHR" ; |
1453 | case OpRayQueryGetIntersectionTKHR: return "OpRayQueryGetIntersectionTKHR" ; |
1454 | case OpRayQueryGetIntersectionInstanceCustomIndexKHR: return "OpRayQueryGetIntersectionInstanceCustomIndexKHR" ; |
1455 | case OpRayQueryGetIntersectionInstanceIdKHR: return "OpRayQueryGetIntersectionInstanceIdKHR" ; |
1456 | case OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR: return "OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR" ; |
1457 | case OpRayQueryGetIntersectionGeometryIndexKHR: return "OpRayQueryGetIntersectionGeometryIndexKHR" ; |
1458 | case OpRayQueryGetIntersectionPrimitiveIndexKHR: return "OpRayQueryGetIntersectionPrimitiveIndexKHR" ; |
1459 | case OpRayQueryGetIntersectionBarycentricsKHR: return "OpRayQueryGetIntersectionBarycentricsKHR" ; |
1460 | case OpRayQueryGetIntersectionFrontFaceKHR: return "OpRayQueryGetIntersectionFrontFaceKHR" ; |
1461 | case OpRayQueryGetIntersectionCandidateAABBOpaqueKHR: return "OpRayQueryGetIntersectionCandidateAABBOpaqueKHR" ; |
1462 | case OpRayQueryGetIntersectionObjectRayDirectionKHR: return "OpRayQueryGetIntersectionObjectRayDirectionKHR" ; |
1463 | case OpRayQueryGetIntersectionObjectRayOriginKHR: return "OpRayQueryGetIntersectionObjectRayOriginKHR" ; |
1464 | case OpRayQueryGetWorldRayDirectionKHR: return "OpRayQueryGetWorldRayDirectionKHR" ; |
1465 | case OpRayQueryGetWorldRayOriginKHR: return "OpRayQueryGetWorldRayOriginKHR" ; |
1466 | case OpRayQueryGetIntersectionObjectToWorldKHR: return "OpRayQueryGetIntersectionObjectToWorldKHR" ; |
1467 | case OpRayQueryGetIntersectionWorldToObjectKHR: return "OpRayQueryGetIntersectionWorldToObjectKHR" ; |
1468 | case OpRayQueryGetIntersectionTriangleVertexPositionsKHR: return "OpRayQueryGetIntersectionTriangleVertexPositionsKHR" ; |
1469 | |
1470 | case OpTypeCooperativeMatrixNV: return "OpTypeCooperativeMatrixNV" ; |
1471 | case OpCooperativeMatrixLoadNV: return "OpCooperativeMatrixLoadNV" ; |
1472 | case OpCooperativeMatrixStoreNV: return "OpCooperativeMatrixStoreNV" ; |
1473 | case OpCooperativeMatrixMulAddNV: return "OpCooperativeMatrixMulAddNV" ; |
1474 | case OpCooperativeMatrixLengthNV: return "OpCooperativeMatrixLengthNV" ; |
1475 | case OpDemoteToHelperInvocationEXT: return "OpDemoteToHelperInvocationEXT" ; |
1476 | case OpIsHelperInvocationEXT: return "OpIsHelperInvocationEXT" ; |
1477 | |
1478 | case OpBeginInvocationInterlockEXT: return "OpBeginInvocationInterlockEXT" ; |
1479 | case OpEndInvocationInterlockEXT: return "OpEndInvocationInterlockEXT" ; |
1480 | |
1481 | case OpTypeHitObjectNV: return "OpTypeHitObjectNV" ; |
1482 | case OpHitObjectTraceRayNV: return "OpHitObjectTraceRayNV" ; |
1483 | case OpHitObjectTraceRayMotionNV: return "OpHitObjectTraceRayMotionNV" ; |
1484 | case OpHitObjectRecordHitNV: return "OpHitObjectRecordHitNV" ; |
1485 | case OpHitObjectRecordHitMotionNV: return "OpHitObjectRecordHitMotionNV" ; |
1486 | case OpHitObjectRecordHitWithIndexNV: return "OpHitObjectRecordHitWithIndexNV" ; |
1487 | case OpHitObjectRecordHitWithIndexMotionNV: return "OpHitObjectRecordHitWithIndexMotionNV" ; |
1488 | case OpHitObjectRecordMissNV: return "OpHitObjectRecordMissNV" ; |
1489 | case OpHitObjectRecordMissMotionNV: return "OpHitObjectRecordMissMotionNV" ; |
1490 | case OpHitObjectRecordEmptyNV: return "OpHitObjectRecordEmptyNV" ; |
1491 | case OpHitObjectExecuteShaderNV: return "OpHitObjectExecuteShaderNV" ; |
1492 | case OpReorderThreadWithHintNV: return "OpReorderThreadWithHintNV" ; |
1493 | case OpReorderThreadWithHitObjectNV: return "OpReorderThreadWithHitObjectNV" ; |
1494 | case OpHitObjectGetCurrentTimeNV: return "OpHitObjectGetCurrentTimeNV" ; |
1495 | case OpHitObjectGetAttributesNV: return "OpHitObjectGetAttributesNV" ; |
1496 | case OpHitObjectGetHitKindNV: return "OpHitObjectGetFrontFaceNV" ; |
1497 | case OpHitObjectGetPrimitiveIndexNV: return "OpHitObjectGetPrimitiveIndexNV" ; |
1498 | case OpHitObjectGetGeometryIndexNV: return "OpHitObjectGetGeometryIndexNV" ; |
1499 | case OpHitObjectGetInstanceIdNV: return "OpHitObjectGetInstanceIdNV" ; |
1500 | case OpHitObjectGetInstanceCustomIndexNV: return "OpHitObjectGetInstanceCustomIndexNV" ; |
1501 | case OpHitObjectGetObjectRayDirectionNV: return "OpHitObjectGetObjectRayDirectionNV" ; |
1502 | case OpHitObjectGetObjectRayOriginNV: return "OpHitObjectGetObjectRayOriginNV" ; |
1503 | case OpHitObjectGetWorldRayDirectionNV: return "OpHitObjectGetWorldRayDirectionNV" ; |
1504 | case OpHitObjectGetWorldRayOriginNV: return "OpHitObjectGetWorldRayOriginNV" ; |
1505 | case OpHitObjectGetWorldToObjectNV: return "OpHitObjectGetWorldToObjectNV" ; |
1506 | case OpHitObjectGetObjectToWorldNV: return "OpHitObjectGetObjectToWorldNV" ; |
1507 | case OpHitObjectGetRayTMaxNV: return "OpHitObjectGetRayTMaxNV" ; |
1508 | case OpHitObjectGetRayTMinNV: return "OpHitObjectGetRayTMinNV" ; |
1509 | case OpHitObjectIsEmptyNV: return "OpHitObjectIsEmptyNV" ; |
1510 | case OpHitObjectIsHitNV: return "OpHitObjectIsHitNV" ; |
1511 | case OpHitObjectIsMissNV: return "OpHitObjectIsMissNV" ; |
1512 | case OpHitObjectGetShaderBindingTableRecordIndexNV: return "OpHitObjectGetShaderBindingTableRecordIndexNV" ; |
1513 | case OpHitObjectGetShaderRecordBufferHandleNV: return "OpHitObjectGetShaderRecordBufferHandleNV" ; |
1514 | |
1515 | case OpColorAttachmentReadEXT: return "OpColorAttachmentReadEXT" ; |
1516 | case OpDepthAttachmentReadEXT: return "OpDepthAttachmentReadEXT" ; |
1517 | case OpStencilAttachmentReadEXT: return "OpStencilAttachmentReadEXT" ; |
1518 | |
1519 | default: |
1520 | return "Bad" ; |
1521 | } |
1522 | } |
1523 | |
1524 | // The set of objects that hold all the instruction/operand |
1525 | // parameterization information. |
1526 | InstructionParameters InstructionDesc[OpCodeMask + 1]; |
1527 | OperandParameters ExecutionModeOperands[ExecutionModeCeiling]; |
1528 | OperandParameters DecorationOperands[DecorationCeiling]; |
1529 | |
1530 | EnumDefinition OperandClassParams[OperandCount]; |
1531 | EnumParameters ExecutionModeParams[ExecutionModeCeiling]; |
1532 | EnumParameters ImageOperandsParams[ImageOperandsCeiling]; |
1533 | EnumParameters DecorationParams[DecorationCeiling]; |
1534 | EnumParameters LoopControlParams[FunctionControlCeiling]; |
1535 | EnumParameters SelectionControlParams[SelectControlCeiling]; |
1536 | EnumParameters FunctionControlParams[FunctionControlCeiling]; |
1537 | EnumParameters MemoryAccessParams[MemoryAccessCeiling]; |
1538 | |
1539 | // Set up all the parameterizing descriptions of the opcodes, operands, etc. |
1540 | void Parameterize() |
1541 | { |
1542 | // only do this once. |
1543 | static bool initialized = false; |
1544 | if (initialized) |
1545 | return; |
1546 | initialized = true; |
1547 | |
1548 | // Exceptions to having a result <id> and a resulting type <id>. |
1549 | // (Everything is initialized to have both). |
1550 | |
1551 | InstructionDesc[OpNop].setResultAndType(false, false); |
1552 | InstructionDesc[OpSource].setResultAndType(false, false); |
1553 | InstructionDesc[OpSourceContinued].setResultAndType(false, false); |
1554 | InstructionDesc[OpSourceExtension].setResultAndType(false, false); |
1555 | InstructionDesc[OpExtension].setResultAndType(false, false); |
1556 | InstructionDesc[OpExtInstImport].setResultAndType(true, false); |
1557 | InstructionDesc[OpCapability].setResultAndType(false, false); |
1558 | InstructionDesc[OpMemoryModel].setResultAndType(false, false); |
1559 | InstructionDesc[OpEntryPoint].setResultAndType(false, false); |
1560 | InstructionDesc[OpExecutionMode].setResultAndType(false, false); |
1561 | InstructionDesc[OpExecutionModeId].setResultAndType(false, false); |
1562 | InstructionDesc[OpTypeVoid].setResultAndType(true, false); |
1563 | InstructionDesc[OpTypeBool].setResultAndType(true, false); |
1564 | InstructionDesc[OpTypeInt].setResultAndType(true, false); |
1565 | InstructionDesc[OpTypeFloat].setResultAndType(true, false); |
1566 | InstructionDesc[OpTypeVector].setResultAndType(true, false); |
1567 | InstructionDesc[OpTypeMatrix].setResultAndType(true, false); |
1568 | InstructionDesc[OpTypeImage].setResultAndType(true, false); |
1569 | InstructionDesc[OpTypeSampler].setResultAndType(true, false); |
1570 | InstructionDesc[OpTypeSampledImage].setResultAndType(true, false); |
1571 | InstructionDesc[OpTypeArray].setResultAndType(true, false); |
1572 | InstructionDesc[OpTypeRuntimeArray].setResultAndType(true, false); |
1573 | InstructionDesc[OpTypeStruct].setResultAndType(true, false); |
1574 | InstructionDesc[OpTypeOpaque].setResultAndType(true, false); |
1575 | InstructionDesc[OpTypePointer].setResultAndType(true, false); |
1576 | InstructionDesc[OpTypeForwardPointer].setResultAndType(false, false); |
1577 | InstructionDesc[OpTypeFunction].setResultAndType(true, false); |
1578 | InstructionDesc[OpTypeEvent].setResultAndType(true, false); |
1579 | InstructionDesc[OpTypeDeviceEvent].setResultAndType(true, false); |
1580 | InstructionDesc[OpTypeReserveId].setResultAndType(true, false); |
1581 | InstructionDesc[OpTypeQueue].setResultAndType(true, false); |
1582 | InstructionDesc[OpTypePipe].setResultAndType(true, false); |
1583 | InstructionDesc[OpFunctionEnd].setResultAndType(false, false); |
1584 | InstructionDesc[OpStore].setResultAndType(false, false); |
1585 | InstructionDesc[OpImageWrite].setResultAndType(false, false); |
1586 | InstructionDesc[OpDecorationGroup].setResultAndType(true, false); |
1587 | InstructionDesc[OpDecorate].setResultAndType(false, false); |
1588 | InstructionDesc[OpDecorateId].setResultAndType(false, false); |
1589 | InstructionDesc[OpDecorateStringGOOGLE].setResultAndType(false, false); |
1590 | InstructionDesc[OpMemberDecorate].setResultAndType(false, false); |
1591 | InstructionDesc[OpMemberDecorateStringGOOGLE].setResultAndType(false, false); |
1592 | InstructionDesc[OpGroupDecorate].setResultAndType(false, false); |
1593 | InstructionDesc[OpGroupMemberDecorate].setResultAndType(false, false); |
1594 | InstructionDesc[OpName].setResultAndType(false, false); |
1595 | InstructionDesc[OpMemberName].setResultAndType(false, false); |
1596 | InstructionDesc[OpString].setResultAndType(true, false); |
1597 | InstructionDesc[OpLine].setResultAndType(false, false); |
1598 | InstructionDesc[OpNoLine].setResultAndType(false, false); |
1599 | InstructionDesc[OpCopyMemory].setResultAndType(false, false); |
1600 | InstructionDesc[OpCopyMemorySized].setResultAndType(false, false); |
1601 | InstructionDesc[OpEmitVertex].setResultAndType(false, false); |
1602 | InstructionDesc[OpEndPrimitive].setResultAndType(false, false); |
1603 | InstructionDesc[OpEmitStreamVertex].setResultAndType(false, false); |
1604 | InstructionDesc[OpEndStreamPrimitive].setResultAndType(false, false); |
1605 | InstructionDesc[OpControlBarrier].setResultAndType(false, false); |
1606 | InstructionDesc[OpMemoryBarrier].setResultAndType(false, false); |
1607 | InstructionDesc[OpAtomicStore].setResultAndType(false, false); |
1608 | InstructionDesc[OpLoopMerge].setResultAndType(false, false); |
1609 | InstructionDesc[OpSelectionMerge].setResultAndType(false, false); |
1610 | InstructionDesc[OpLabel].setResultAndType(true, false); |
1611 | InstructionDesc[OpBranch].setResultAndType(false, false); |
1612 | InstructionDesc[OpBranchConditional].setResultAndType(false, false); |
1613 | InstructionDesc[OpSwitch].setResultAndType(false, false); |
1614 | InstructionDesc[OpKill].setResultAndType(false, false); |
1615 | InstructionDesc[OpTerminateInvocation].setResultAndType(false, false); |
1616 | InstructionDesc[OpReturn].setResultAndType(false, false); |
1617 | InstructionDesc[OpReturnValue].setResultAndType(false, false); |
1618 | InstructionDesc[OpUnreachable].setResultAndType(false, false); |
1619 | InstructionDesc[OpLifetimeStart].setResultAndType(false, false); |
1620 | InstructionDesc[OpLifetimeStop].setResultAndType(false, false); |
1621 | InstructionDesc[OpCommitReadPipe].setResultAndType(false, false); |
1622 | InstructionDesc[OpCommitWritePipe].setResultAndType(false, false); |
1623 | InstructionDesc[OpGroupCommitWritePipe].setResultAndType(false, false); |
1624 | InstructionDesc[OpGroupCommitReadPipe].setResultAndType(false, false); |
1625 | InstructionDesc[OpCaptureEventProfilingInfo].setResultAndType(false, false); |
1626 | InstructionDesc[OpSetUserEventStatus].setResultAndType(false, false); |
1627 | InstructionDesc[OpRetainEvent].setResultAndType(false, false); |
1628 | InstructionDesc[OpReleaseEvent].setResultAndType(false, false); |
1629 | InstructionDesc[OpGroupWaitEvents].setResultAndType(false, false); |
1630 | InstructionDesc[OpAtomicFlagClear].setResultAndType(false, false); |
1631 | InstructionDesc[OpModuleProcessed].setResultAndType(false, false); |
1632 | InstructionDesc[OpTypeCooperativeMatrixNV].setResultAndType(true, false); |
1633 | InstructionDesc[OpCooperativeMatrixStoreNV].setResultAndType(false, false); |
1634 | InstructionDesc[OpBeginInvocationInterlockEXT].setResultAndType(false, false); |
1635 | InstructionDesc[OpEndInvocationInterlockEXT].setResultAndType(false, false); |
1636 | |
1637 | // Specific additional context-dependent operands |
1638 | |
1639 | ExecutionModeOperands[ExecutionModeInvocations].push(OperandLiteralNumber, "'Number of <<Invocation,invocations>>'" ); |
1640 | |
1641 | ExecutionModeOperands[ExecutionModeLocalSize].push(OperandLiteralNumber, "'x size'" ); |
1642 | ExecutionModeOperands[ExecutionModeLocalSize].push(OperandLiteralNumber, "'y size'" ); |
1643 | ExecutionModeOperands[ExecutionModeLocalSize].push(OperandLiteralNumber, "'z size'" ); |
1644 | |
1645 | ExecutionModeOperands[ExecutionModeLocalSizeHint].push(OperandLiteralNumber, "'x size'" ); |
1646 | ExecutionModeOperands[ExecutionModeLocalSizeHint].push(OperandLiteralNumber, "'y size'" ); |
1647 | ExecutionModeOperands[ExecutionModeLocalSizeHint].push(OperandLiteralNumber, "'z size'" ); |
1648 | |
1649 | ExecutionModeOperands[ExecutionModeOutputVertices].push(OperandLiteralNumber, "'Vertex count'" ); |
1650 | ExecutionModeOperands[ExecutionModeVecTypeHint].push(OperandLiteralNumber, "'Vector type'" ); |
1651 | |
1652 | DecorationOperands[DecorationStream].push(OperandLiteralNumber, "'Stream Number'" ); |
1653 | DecorationOperands[DecorationLocation].push(OperandLiteralNumber, "'Location'" ); |
1654 | DecorationOperands[DecorationComponent].push(OperandLiteralNumber, "'Component'" ); |
1655 | DecorationOperands[DecorationIndex].push(OperandLiteralNumber, "'Index'" ); |
1656 | DecorationOperands[DecorationBinding].push(OperandLiteralNumber, "'Binding Point'" ); |
1657 | DecorationOperands[DecorationDescriptorSet].push(OperandLiteralNumber, "'Descriptor Set'" ); |
1658 | DecorationOperands[DecorationOffset].push(OperandLiteralNumber, "'Byte Offset'" ); |
1659 | DecorationOperands[DecorationXfbBuffer].push(OperandLiteralNumber, "'XFB Buffer Number'" ); |
1660 | DecorationOperands[DecorationXfbStride].push(OperandLiteralNumber, "'XFB Stride'" ); |
1661 | DecorationOperands[DecorationArrayStride].push(OperandLiteralNumber, "'Array Stride'" ); |
1662 | DecorationOperands[DecorationMatrixStride].push(OperandLiteralNumber, "'Matrix Stride'" ); |
1663 | DecorationOperands[DecorationBuiltIn].push(OperandLiteralNumber, "See <<BuiltIn,*BuiltIn*>>" ); |
1664 | DecorationOperands[DecorationFPRoundingMode].push(OperandFPRoundingMode, "'Floating-Point Rounding Mode'" ); |
1665 | DecorationOperands[DecorationFPFastMathMode].push(OperandFPFastMath, "'Fast-Math Mode'" ); |
1666 | DecorationOperands[DecorationLinkageAttributes].push(OperandLiteralString, "'Name'" ); |
1667 | DecorationOperands[DecorationLinkageAttributes].push(OperandLinkageType, "'Linkage Type'" ); |
1668 | DecorationOperands[DecorationFuncParamAttr].push(OperandFuncParamAttr, "'Function Parameter Attribute'" ); |
1669 | DecorationOperands[DecorationSpecId].push(OperandLiteralNumber, "'Specialization Constant ID'" ); |
1670 | DecorationOperands[DecorationInputAttachmentIndex].push(OperandLiteralNumber, "'Attachment Index'" ); |
1671 | DecorationOperands[DecorationAlignment].push(OperandLiteralNumber, "'Alignment'" ); |
1672 | |
1673 | OperandClassParams[OperandSource].set(0, SourceString, nullptr); |
1674 | OperandClassParams[OperandExecutionModel].set(0, ExecutionModelString, nullptr); |
1675 | OperandClassParams[OperandAddressing].set(0, AddressingString, nullptr); |
1676 | OperandClassParams[OperandMemory].set(0, MemoryString, nullptr); |
1677 | OperandClassParams[OperandExecutionMode].set(ExecutionModeCeiling, ExecutionModeString, ExecutionModeParams); |
1678 | OperandClassParams[OperandExecutionMode].setOperands(ExecutionModeOperands); |
1679 | OperandClassParams[OperandStorage].set(0, StorageClassString, nullptr); |
1680 | OperandClassParams[OperandDimensionality].set(0, DimensionString, nullptr); |
1681 | OperandClassParams[OperandSamplerAddressingMode].set(0, SamplerAddressingModeString, nullptr); |
1682 | OperandClassParams[OperandSamplerFilterMode].set(0, SamplerFilterModeString, nullptr); |
1683 | OperandClassParams[OperandSamplerImageFormat].set(0, ImageFormatString, nullptr); |
1684 | OperandClassParams[OperandImageChannelOrder].set(0, ImageChannelOrderString, nullptr); |
1685 | OperandClassParams[OperandImageChannelDataType].set(0, ImageChannelDataTypeString, nullptr); |
1686 | OperandClassParams[OperandImageOperands].set(ImageOperandsCeiling, ImageOperandsString, ImageOperandsParams, true); |
1687 | OperandClassParams[OperandFPFastMath].set(0, FPFastMathString, nullptr, true); |
1688 | OperandClassParams[OperandFPRoundingMode].set(0, FPRoundingModeString, nullptr); |
1689 | OperandClassParams[OperandLinkageType].set(0, LinkageTypeString, nullptr); |
1690 | OperandClassParams[OperandFuncParamAttr].set(0, FuncParamAttrString, nullptr); |
1691 | OperandClassParams[OperandAccessQualifier].set(0, AccessQualifierString, nullptr); |
1692 | OperandClassParams[OperandDecoration].set(DecorationCeiling, DecorationString, DecorationParams); |
1693 | OperandClassParams[OperandDecoration].setOperands(DecorationOperands); |
1694 | OperandClassParams[OperandBuiltIn].set(0, BuiltInString, nullptr); |
1695 | OperandClassParams[OperandSelect].set(SelectControlCeiling, SelectControlString, SelectionControlParams, true); |
1696 | OperandClassParams[OperandLoop].set(LoopControlCeiling, LoopControlString, LoopControlParams, true); |
1697 | OperandClassParams[OperandFunction].set(FunctionControlCeiling, FunctionControlString, FunctionControlParams, true); |
1698 | OperandClassParams[OperandMemorySemantics].set(0, MemorySemanticsString, nullptr, true); |
1699 | OperandClassParams[OperandMemoryAccess].set(MemoryAccessCeiling, MemoryAccessString, MemoryAccessParams, true); |
1700 | OperandClassParams[OperandScope].set(0, ScopeString, nullptr); |
1701 | OperandClassParams[OperandGroupOperation].set(0, GroupOperationString, nullptr); |
1702 | OperandClassParams[OperandKernelEnqueueFlags].set(0, KernelEnqueueFlagsString, nullptr); |
1703 | OperandClassParams[OperandKernelProfilingInfo].set(0, KernelProfilingInfoString, nullptr, true); |
1704 | OperandClassParams[OperandCapability].set(0, CapabilityString, nullptr); |
1705 | OperandClassParams[OperandOpcode].set(OpCodeMask + 1, OpcodeString, nullptr); |
1706 | |
1707 | // set name of operator, an initial set of <id> style operands, and the description |
1708 | |
1709 | InstructionDesc[OpSource].operands.push(OperandSource, "" ); |
1710 | InstructionDesc[OpSource].operands.push(OperandLiteralNumber, "'Version'" ); |
1711 | InstructionDesc[OpSource].operands.push(OperandId, "'File'" , true); |
1712 | InstructionDesc[OpSource].operands.push(OperandLiteralString, "'Source'" , true); |
1713 | |
1714 | InstructionDesc[OpSourceContinued].operands.push(OperandLiteralString, "'Continued Source'" ); |
1715 | |
1716 | InstructionDesc[OpSourceExtension].operands.push(OperandLiteralString, "'Extension'" ); |
1717 | |
1718 | InstructionDesc[OpName].operands.push(OperandId, "'Target'" ); |
1719 | InstructionDesc[OpName].operands.push(OperandLiteralString, "'Name'" ); |
1720 | |
1721 | InstructionDesc[OpMemberName].operands.push(OperandId, "'Type'" ); |
1722 | InstructionDesc[OpMemberName].operands.push(OperandLiteralNumber, "'Member'" ); |
1723 | InstructionDesc[OpMemberName].operands.push(OperandLiteralString, "'Name'" ); |
1724 | |
1725 | InstructionDesc[OpString].operands.push(OperandLiteralString, "'String'" ); |
1726 | |
1727 | InstructionDesc[OpLine].operands.push(OperandId, "'File'" ); |
1728 | InstructionDesc[OpLine].operands.push(OperandLiteralNumber, "'Line'" ); |
1729 | InstructionDesc[OpLine].operands.push(OperandLiteralNumber, "'Column'" ); |
1730 | |
1731 | InstructionDesc[OpExtension].operands.push(OperandLiteralString, "'Name'" ); |
1732 | |
1733 | InstructionDesc[OpExtInstImport].operands.push(OperandLiteralString, "'Name'" ); |
1734 | |
1735 | InstructionDesc[OpCapability].operands.push(OperandCapability, "'Capability'" ); |
1736 | |
1737 | InstructionDesc[OpMemoryModel].operands.push(OperandAddressing, "" ); |
1738 | InstructionDesc[OpMemoryModel].operands.push(OperandMemory, "" ); |
1739 | |
1740 | InstructionDesc[OpEntryPoint].operands.push(OperandExecutionModel, "" ); |
1741 | InstructionDesc[OpEntryPoint].operands.push(OperandId, "'Entry Point'" ); |
1742 | InstructionDesc[OpEntryPoint].operands.push(OperandLiteralString, "'Name'" ); |
1743 | InstructionDesc[OpEntryPoint].operands.push(OperandVariableIds, "'Interface'" ); |
1744 | |
1745 | InstructionDesc[OpExecutionMode].operands.push(OperandId, "'Entry Point'" ); |
1746 | InstructionDesc[OpExecutionMode].operands.push(OperandExecutionMode, "'Mode'" ); |
1747 | InstructionDesc[OpExecutionMode].operands.push(OperandOptionalLiteral, "See <<Execution_Mode,Execution Mode>>" ); |
1748 | |
1749 | InstructionDesc[OpExecutionModeId].operands.push(OperandId, "'Entry Point'" ); |
1750 | InstructionDesc[OpExecutionModeId].operands.push(OperandExecutionMode, "'Mode'" ); |
1751 | InstructionDesc[OpExecutionModeId].operands.push(OperandVariableIds, "See <<Execution_Mode,Execution Mode>>" ); |
1752 | |
1753 | InstructionDesc[OpTypeInt].operands.push(OperandLiteralNumber, "'Width'" ); |
1754 | InstructionDesc[OpTypeInt].operands.push(OperandLiteralNumber, "'Signedness'" ); |
1755 | |
1756 | InstructionDesc[OpTypeFloat].operands.push(OperandLiteralNumber, "'Width'" ); |
1757 | |
1758 | InstructionDesc[OpTypeVector].operands.push(OperandId, "'Component Type'" ); |
1759 | InstructionDesc[OpTypeVector].operands.push(OperandLiteralNumber, "'Component Count'" ); |
1760 | |
1761 | InstructionDesc[OpTypeMatrix].operands.push(OperandId, "'Column Type'" ); |
1762 | InstructionDesc[OpTypeMatrix].operands.push(OperandLiteralNumber, "'Column Count'" ); |
1763 | |
1764 | InstructionDesc[OpTypeImage].operands.push(OperandId, "'Sampled Type'" ); |
1765 | InstructionDesc[OpTypeImage].operands.push(OperandDimensionality, "" ); |
1766 | InstructionDesc[OpTypeImage].operands.push(OperandLiteralNumber, "'Depth'" ); |
1767 | InstructionDesc[OpTypeImage].operands.push(OperandLiteralNumber, "'Arrayed'" ); |
1768 | InstructionDesc[OpTypeImage].operands.push(OperandLiteralNumber, "'MS'" ); |
1769 | InstructionDesc[OpTypeImage].operands.push(OperandLiteralNumber, "'Sampled'" ); |
1770 | InstructionDesc[OpTypeImage].operands.push(OperandSamplerImageFormat, "" ); |
1771 | InstructionDesc[OpTypeImage].operands.push(OperandAccessQualifier, "" , true); |
1772 | |
1773 | InstructionDesc[OpTypeSampledImage].operands.push(OperandId, "'Image Type'" ); |
1774 | |
1775 | InstructionDesc[OpTypeArray].operands.push(OperandId, "'Element Type'" ); |
1776 | InstructionDesc[OpTypeArray].operands.push(OperandId, "'Length'" ); |
1777 | |
1778 | InstructionDesc[OpTypeRuntimeArray].operands.push(OperandId, "'Element Type'" ); |
1779 | |
1780 | InstructionDesc[OpTypeStruct].operands.push(OperandVariableIds, "'Member 0 type', +\n'member 1 type', +\n..." ); |
1781 | |
1782 | InstructionDesc[OpTypeOpaque].operands.push(OperandLiteralString, "The name of the opaque type." ); |
1783 | |
1784 | InstructionDesc[OpTypePointer].operands.push(OperandStorage, "" ); |
1785 | InstructionDesc[OpTypePointer].operands.push(OperandId, "'Type'" ); |
1786 | |
1787 | InstructionDesc[OpTypeForwardPointer].operands.push(OperandId, "'Pointer Type'" ); |
1788 | InstructionDesc[OpTypeForwardPointer].operands.push(OperandStorage, "" ); |
1789 | |
1790 | InstructionDesc[OpTypePipe].operands.push(OperandAccessQualifier, "'Qualifier'" ); |
1791 | |
1792 | InstructionDesc[OpTypeFunction].operands.push(OperandId, "'Return Type'" ); |
1793 | InstructionDesc[OpTypeFunction].operands.push(OperandVariableIds, "'Parameter 0 Type', +\n'Parameter 1 Type', +\n..." ); |
1794 | |
1795 | InstructionDesc[OpConstant].operands.push(OperandVariableLiterals, "'Value'" ); |
1796 | |
1797 | InstructionDesc[OpConstantComposite].operands.push(OperandVariableIds, "'Constituents'" ); |
1798 | |
1799 | InstructionDesc[OpConstantSampler].operands.push(OperandSamplerAddressingMode, "" ); |
1800 | InstructionDesc[OpConstantSampler].operands.push(OperandLiteralNumber, "'Param'" ); |
1801 | InstructionDesc[OpConstantSampler].operands.push(OperandSamplerFilterMode, "" ); |
1802 | |
1803 | InstructionDesc[OpSpecConstant].operands.push(OperandVariableLiterals, "'Value'" ); |
1804 | |
1805 | InstructionDesc[OpSpecConstantComposite].operands.push(OperandVariableIds, "'Constituents'" ); |
1806 | |
1807 | InstructionDesc[OpSpecConstantOp].operands.push(OperandLiteralNumber, "'Opcode'" ); |
1808 | InstructionDesc[OpSpecConstantOp].operands.push(OperandVariableIds, "'Operands'" ); |
1809 | |
1810 | InstructionDesc[OpVariable].operands.push(OperandStorage, "" ); |
1811 | InstructionDesc[OpVariable].operands.push(OperandId, "'Initializer'" , true); |
1812 | |
1813 | InstructionDesc[OpFunction].operands.push(OperandFunction, "" ); |
1814 | InstructionDesc[OpFunction].operands.push(OperandId, "'Function Type'" ); |
1815 | |
1816 | InstructionDesc[OpFunctionCall].operands.push(OperandId, "'Function'" ); |
1817 | InstructionDesc[OpFunctionCall].operands.push(OperandVariableIds, "'Argument 0', +\n'Argument 1', +\n..." ); |
1818 | |
1819 | InstructionDesc[OpExtInst].operands.push(OperandId, "'Set'" ); |
1820 | InstructionDesc[OpExtInst].operands.push(OperandLiteralNumber, "'Instruction'" ); |
1821 | InstructionDesc[OpExtInst].operands.push(OperandVariableIds, "'Operand 1', +\n'Operand 2', +\n..." ); |
1822 | |
1823 | InstructionDesc[OpLoad].operands.push(OperandId, "'Pointer'" ); |
1824 | InstructionDesc[OpLoad].operands.push(OperandMemoryAccess, "" , true); |
1825 | InstructionDesc[OpLoad].operands.push(OperandLiteralNumber, "" , true); |
1826 | InstructionDesc[OpLoad].operands.push(OperandId, "" , true); |
1827 | |
1828 | InstructionDesc[OpStore].operands.push(OperandId, "'Pointer'" ); |
1829 | InstructionDesc[OpStore].operands.push(OperandId, "'Object'" ); |
1830 | InstructionDesc[OpStore].operands.push(OperandMemoryAccess, "" , true); |
1831 | InstructionDesc[OpStore].operands.push(OperandLiteralNumber, "" , true); |
1832 | InstructionDesc[OpStore].operands.push(OperandId, "" , true); |
1833 | |
1834 | InstructionDesc[OpPhi].operands.push(OperandVariableIds, "'Variable, Parent, ...'" ); |
1835 | |
1836 | InstructionDesc[OpDecorate].operands.push(OperandId, "'Target'" ); |
1837 | InstructionDesc[OpDecorate].operands.push(OperandDecoration, "" ); |
1838 | InstructionDesc[OpDecorate].operands.push(OperandVariableLiterals, "See <<Decoration,'Decoration'>>." ); |
1839 | |
1840 | InstructionDesc[OpDecorateId].operands.push(OperandId, "'Target'" ); |
1841 | InstructionDesc[OpDecorateId].operands.push(OperandDecoration, "" ); |
1842 | InstructionDesc[OpDecorateId].operands.push(OperandVariableIds, "See <<Decoration,'Decoration'>>." ); |
1843 | |
1844 | InstructionDesc[OpDecorateStringGOOGLE].operands.push(OperandId, "'Target'" ); |
1845 | InstructionDesc[OpDecorateStringGOOGLE].operands.push(OperandDecoration, "" ); |
1846 | InstructionDesc[OpDecorateStringGOOGLE].operands.push(OperandVariableLiteralStrings, "'Literal Strings'" ); |
1847 | |
1848 | InstructionDesc[OpMemberDecorate].operands.push(OperandId, "'Structure Type'" ); |
1849 | InstructionDesc[OpMemberDecorate].operands.push(OperandLiteralNumber, "'Member'" ); |
1850 | InstructionDesc[OpMemberDecorate].operands.push(OperandDecoration, "" ); |
1851 | InstructionDesc[OpMemberDecorate].operands.push(OperandVariableLiterals, "See <<Decoration,'Decoration'>>." ); |
1852 | |
1853 | InstructionDesc[OpMemberDecorateStringGOOGLE].operands.push(OperandId, "'Structure Type'" ); |
1854 | InstructionDesc[OpMemberDecorateStringGOOGLE].operands.push(OperandLiteralNumber, "'Member'" ); |
1855 | InstructionDesc[OpMemberDecorateStringGOOGLE].operands.push(OperandDecoration, "" ); |
1856 | InstructionDesc[OpMemberDecorateStringGOOGLE].operands.push(OperandVariableLiteralStrings, "'Literal Strings'" ); |
1857 | |
1858 | InstructionDesc[OpGroupDecorate].operands.push(OperandId, "'Decoration Group'" ); |
1859 | InstructionDesc[OpGroupDecorate].operands.push(OperandVariableIds, "'Targets'" ); |
1860 | |
1861 | InstructionDesc[OpGroupMemberDecorate].operands.push(OperandId, "'Decoration Group'" ); |
1862 | InstructionDesc[OpGroupMemberDecorate].operands.push(OperandVariableIdLiteral, "'Targets'" ); |
1863 | |
1864 | InstructionDesc[OpVectorExtractDynamic].operands.push(OperandId, "'Vector'" ); |
1865 | InstructionDesc[OpVectorExtractDynamic].operands.push(OperandId, "'Index'" ); |
1866 | |
1867 | InstructionDesc[OpVectorInsertDynamic].operands.push(OperandId, "'Vector'" ); |
1868 | InstructionDesc[OpVectorInsertDynamic].operands.push(OperandId, "'Component'" ); |
1869 | InstructionDesc[OpVectorInsertDynamic].operands.push(OperandId, "'Index'" ); |
1870 | |
1871 | InstructionDesc[OpVectorShuffle].operands.push(OperandId, "'Vector 1'" ); |
1872 | InstructionDesc[OpVectorShuffle].operands.push(OperandId, "'Vector 2'" ); |
1873 | InstructionDesc[OpVectorShuffle].operands.push(OperandVariableLiterals, "'Components'" ); |
1874 | |
1875 | InstructionDesc[OpCompositeConstruct].operands.push(OperandVariableIds, "'Constituents'" ); |
1876 | |
1877 | InstructionDesc[OpCompositeExtract].operands.push(OperandId, "'Composite'" ); |
1878 | InstructionDesc[OpCompositeExtract].operands.push(OperandVariableLiterals, "'Indexes'" ); |
1879 | |
1880 | InstructionDesc[OpCompositeInsert].operands.push(OperandId, "'Object'" ); |
1881 | InstructionDesc[OpCompositeInsert].operands.push(OperandId, "'Composite'" ); |
1882 | InstructionDesc[OpCompositeInsert].operands.push(OperandVariableLiterals, "'Indexes'" ); |
1883 | |
1884 | InstructionDesc[OpCopyObject].operands.push(OperandId, "'Operand'" ); |
1885 | |
1886 | InstructionDesc[OpCopyMemory].operands.push(OperandId, "'Target'" ); |
1887 | InstructionDesc[OpCopyMemory].operands.push(OperandId, "'Source'" ); |
1888 | InstructionDesc[OpCopyMemory].operands.push(OperandMemoryAccess, "" , true); |
1889 | |
1890 | InstructionDesc[OpCopyMemorySized].operands.push(OperandId, "'Target'" ); |
1891 | InstructionDesc[OpCopyMemorySized].operands.push(OperandId, "'Source'" ); |
1892 | InstructionDesc[OpCopyMemorySized].operands.push(OperandId, "'Size'" ); |
1893 | InstructionDesc[OpCopyMemorySized].operands.push(OperandMemoryAccess, "" , true); |
1894 | |
1895 | InstructionDesc[OpSampledImage].operands.push(OperandId, "'Image'" ); |
1896 | InstructionDesc[OpSampledImage].operands.push(OperandId, "'Sampler'" ); |
1897 | |
1898 | InstructionDesc[OpImage].operands.push(OperandId, "'Sampled Image'" ); |
1899 | |
1900 | InstructionDesc[OpImageRead].operands.push(OperandId, "'Image'" ); |
1901 | InstructionDesc[OpImageRead].operands.push(OperandId, "'Coordinate'" ); |
1902 | InstructionDesc[OpImageRead].operands.push(OperandImageOperands, "" , true); |
1903 | InstructionDesc[OpImageRead].operands.push(OperandVariableIds, "" , true); |
1904 | |
1905 | InstructionDesc[OpImageWrite].operands.push(OperandId, "'Image'" ); |
1906 | InstructionDesc[OpImageWrite].operands.push(OperandId, "'Coordinate'" ); |
1907 | InstructionDesc[OpImageWrite].operands.push(OperandId, "'Texel'" ); |
1908 | InstructionDesc[OpImageWrite].operands.push(OperandImageOperands, "" , true); |
1909 | InstructionDesc[OpImageWrite].operands.push(OperandVariableIds, "" , true); |
1910 | |
1911 | InstructionDesc[OpImageSampleImplicitLod].operands.push(OperandId, "'Sampled Image'" ); |
1912 | InstructionDesc[OpImageSampleImplicitLod].operands.push(OperandId, "'Coordinate'" ); |
1913 | InstructionDesc[OpImageSampleImplicitLod].operands.push(OperandImageOperands, "" , true); |
1914 | InstructionDesc[OpImageSampleImplicitLod].operands.push(OperandVariableIds, "" , true); |
1915 | |
1916 | InstructionDesc[OpImageSampleExplicitLod].operands.push(OperandId, "'Sampled Image'" ); |
1917 | InstructionDesc[OpImageSampleExplicitLod].operands.push(OperandId, "'Coordinate'" ); |
1918 | InstructionDesc[OpImageSampleExplicitLod].operands.push(OperandImageOperands, "" , true); |
1919 | InstructionDesc[OpImageSampleExplicitLod].operands.push(OperandVariableIds, "" , true); |
1920 | |
1921 | InstructionDesc[OpImageSampleDrefImplicitLod].operands.push(OperandId, "'Sampled Image'" ); |
1922 | InstructionDesc[OpImageSampleDrefImplicitLod].operands.push(OperandId, "'Coordinate'" ); |
1923 | InstructionDesc[OpImageSampleDrefImplicitLod].operands.push(OperandId, "'D~ref~'" ); |
1924 | InstructionDesc[OpImageSampleDrefImplicitLod].operands.push(OperandImageOperands, "" , true); |
1925 | InstructionDesc[OpImageSampleDrefImplicitLod].operands.push(OperandVariableIds, "" , true); |
1926 | |
1927 | InstructionDesc[OpImageSampleDrefExplicitLod].operands.push(OperandId, "'Sampled Image'" ); |
1928 | InstructionDesc[OpImageSampleDrefExplicitLod].operands.push(OperandId, "'Coordinate'" ); |
1929 | InstructionDesc[OpImageSampleDrefExplicitLod].operands.push(OperandId, "'D~ref~'" ); |
1930 | InstructionDesc[OpImageSampleDrefExplicitLod].operands.push(OperandImageOperands, "" , true); |
1931 | InstructionDesc[OpImageSampleDrefExplicitLod].operands.push(OperandVariableIds, "" , true); |
1932 | |
1933 | InstructionDesc[OpImageSampleProjImplicitLod].operands.push(OperandId, "'Sampled Image'" ); |
1934 | InstructionDesc[OpImageSampleProjImplicitLod].operands.push(OperandId, "'Coordinate'" ); |
1935 | InstructionDesc[OpImageSampleProjImplicitLod].operands.push(OperandImageOperands, "" , true); |
1936 | InstructionDesc[OpImageSampleProjImplicitLod].operands.push(OperandVariableIds, "" , true); |
1937 | |
1938 | InstructionDesc[OpImageSampleProjExplicitLod].operands.push(OperandId, "'Sampled Image'" ); |
1939 | InstructionDesc[OpImageSampleProjExplicitLod].operands.push(OperandId, "'Coordinate'" ); |
1940 | InstructionDesc[OpImageSampleProjExplicitLod].operands.push(OperandImageOperands, "" , true); |
1941 | InstructionDesc[OpImageSampleProjExplicitLod].operands.push(OperandVariableIds, "" , true); |
1942 | |
1943 | InstructionDesc[OpImageSampleProjDrefImplicitLod].operands.push(OperandId, "'Sampled Image'" ); |
1944 | InstructionDesc[OpImageSampleProjDrefImplicitLod].operands.push(OperandId, "'Coordinate'" ); |
1945 | InstructionDesc[OpImageSampleProjDrefImplicitLod].operands.push(OperandId, "'D~ref~'" ); |
1946 | InstructionDesc[OpImageSampleProjDrefImplicitLod].operands.push(OperandImageOperands, "" , true); |
1947 | InstructionDesc[OpImageSampleProjDrefImplicitLod].operands.push(OperandVariableIds, "" , true); |
1948 | |
1949 | InstructionDesc[OpImageSampleProjDrefExplicitLod].operands.push(OperandId, "'Sampled Image'" ); |
1950 | InstructionDesc[OpImageSampleProjDrefExplicitLod].operands.push(OperandId, "'Coordinate'" ); |
1951 | InstructionDesc[OpImageSampleProjDrefExplicitLod].operands.push(OperandId, "'D~ref~'" ); |
1952 | InstructionDesc[OpImageSampleProjDrefExplicitLod].operands.push(OperandImageOperands, "" , true); |
1953 | InstructionDesc[OpImageSampleProjDrefExplicitLod].operands.push(OperandVariableIds, "" , true); |
1954 | |
1955 | InstructionDesc[OpImageFetch].operands.push(OperandId, "'Image'" ); |
1956 | InstructionDesc[OpImageFetch].operands.push(OperandId, "'Coordinate'" ); |
1957 | InstructionDesc[OpImageFetch].operands.push(OperandImageOperands, "" , true); |
1958 | InstructionDesc[OpImageFetch].operands.push(OperandVariableIds, "" , true); |
1959 | |
1960 | InstructionDesc[OpImageGather].operands.push(OperandId, "'Sampled Image'" ); |
1961 | InstructionDesc[OpImageGather].operands.push(OperandId, "'Coordinate'" ); |
1962 | InstructionDesc[OpImageGather].operands.push(OperandId, "'Component'" ); |
1963 | InstructionDesc[OpImageGather].operands.push(OperandImageOperands, "" , true); |
1964 | InstructionDesc[OpImageGather].operands.push(OperandVariableIds, "" , true); |
1965 | |
1966 | InstructionDesc[OpImageDrefGather].operands.push(OperandId, "'Sampled Image'" ); |
1967 | InstructionDesc[OpImageDrefGather].operands.push(OperandId, "'Coordinate'" ); |
1968 | InstructionDesc[OpImageDrefGather].operands.push(OperandId, "'D~ref~'" ); |
1969 | InstructionDesc[OpImageDrefGather].operands.push(OperandImageOperands, "" , true); |
1970 | InstructionDesc[OpImageDrefGather].operands.push(OperandVariableIds, "" , true); |
1971 | |
1972 | InstructionDesc[OpImageSparseSampleImplicitLod].operands.push(OperandId, "'Sampled Image'" ); |
1973 | InstructionDesc[OpImageSparseSampleImplicitLod].operands.push(OperandId, "'Coordinate'" ); |
1974 | InstructionDesc[OpImageSparseSampleImplicitLod].operands.push(OperandImageOperands, "" , true); |
1975 | InstructionDesc[OpImageSparseSampleImplicitLod].operands.push(OperandVariableIds, "" , true); |
1976 | |
1977 | InstructionDesc[OpImageSparseSampleExplicitLod].operands.push(OperandId, "'Sampled Image'" ); |
1978 | InstructionDesc[OpImageSparseSampleExplicitLod].operands.push(OperandId, "'Coordinate'" ); |
1979 | InstructionDesc[OpImageSparseSampleExplicitLod].operands.push(OperandImageOperands, "" , true); |
1980 | InstructionDesc[OpImageSparseSampleExplicitLod].operands.push(OperandVariableIds, "" , true); |
1981 | |
1982 | InstructionDesc[OpImageSparseSampleDrefImplicitLod].operands.push(OperandId, "'Sampled Image'" ); |
1983 | InstructionDesc[OpImageSparseSampleDrefImplicitLod].operands.push(OperandId, "'Coordinate'" ); |
1984 | InstructionDesc[OpImageSparseSampleDrefImplicitLod].operands.push(OperandId, "'D~ref~'" ); |
1985 | InstructionDesc[OpImageSparseSampleDrefImplicitLod].operands.push(OperandImageOperands, "" , true); |
1986 | InstructionDesc[OpImageSparseSampleDrefImplicitLod].operands.push(OperandVariableIds, "" , true); |
1987 | |
1988 | InstructionDesc[OpImageSparseSampleDrefExplicitLod].operands.push(OperandId, "'Sampled Image'" ); |
1989 | InstructionDesc[OpImageSparseSampleDrefExplicitLod].operands.push(OperandId, "'Coordinate'" ); |
1990 | InstructionDesc[OpImageSparseSampleDrefExplicitLod].operands.push(OperandId, "'D~ref~'" ); |
1991 | InstructionDesc[OpImageSparseSampleDrefExplicitLod].operands.push(OperandImageOperands, "" , true); |
1992 | InstructionDesc[OpImageSparseSampleDrefExplicitLod].operands.push(OperandVariableIds, "" , true); |
1993 | |
1994 | InstructionDesc[OpImageSparseSampleProjImplicitLod].operands.push(OperandId, "'Sampled Image'" ); |
1995 | InstructionDesc[OpImageSparseSampleProjImplicitLod].operands.push(OperandId, "'Coordinate'" ); |
1996 | InstructionDesc[OpImageSparseSampleProjImplicitLod].operands.push(OperandImageOperands, "" , true); |
1997 | InstructionDesc[OpImageSparseSampleProjImplicitLod].operands.push(OperandVariableIds, "" , true); |
1998 | |
1999 | InstructionDesc[OpImageSparseSampleProjExplicitLod].operands.push(OperandId, "'Sampled Image'" ); |
2000 | InstructionDesc[OpImageSparseSampleProjExplicitLod].operands.push(OperandId, "'Coordinate'" ); |
2001 | InstructionDesc[OpImageSparseSampleProjExplicitLod].operands.push(OperandImageOperands, "" , true); |
2002 | InstructionDesc[OpImageSparseSampleProjExplicitLod].operands.push(OperandVariableIds, "" , true); |
2003 | |
2004 | InstructionDesc[OpImageSparseSampleProjDrefImplicitLod].operands.push(OperandId, "'Sampled Image'" ); |
2005 | InstructionDesc[OpImageSparseSampleProjDrefImplicitLod].operands.push(OperandId, "'Coordinate'" ); |
2006 | InstructionDesc[OpImageSparseSampleProjDrefImplicitLod].operands.push(OperandId, "'D~ref~'" ); |
2007 | InstructionDesc[OpImageSparseSampleProjDrefImplicitLod].operands.push(OperandImageOperands, "" , true); |
2008 | InstructionDesc[OpImageSparseSampleProjDrefImplicitLod].operands.push(OperandVariableIds, "" , true); |
2009 | |
2010 | InstructionDesc[OpImageSparseSampleProjDrefExplicitLod].operands.push(OperandId, "'Sampled Image'" ); |
2011 | InstructionDesc[OpImageSparseSampleProjDrefExplicitLod].operands.push(OperandId, "'Coordinate'" ); |
2012 | InstructionDesc[OpImageSparseSampleProjDrefExplicitLod].operands.push(OperandId, "'D~ref~'" ); |
2013 | InstructionDesc[OpImageSparseSampleProjDrefExplicitLod].operands.push(OperandImageOperands, "" , true); |
2014 | InstructionDesc[OpImageSparseSampleProjDrefExplicitLod].operands.push(OperandVariableIds, "" , true); |
2015 | |
2016 | InstructionDesc[OpImageSparseFetch].operands.push(OperandId, "'Image'" ); |
2017 | InstructionDesc[OpImageSparseFetch].operands.push(OperandId, "'Coordinate'" ); |
2018 | InstructionDesc[OpImageSparseFetch].operands.push(OperandImageOperands, "" , true); |
2019 | InstructionDesc[OpImageSparseFetch].operands.push(OperandVariableIds, "" , true); |
2020 | |
2021 | InstructionDesc[OpImageSparseGather].operands.push(OperandId, "'Sampled Image'" ); |
2022 | InstructionDesc[OpImageSparseGather].operands.push(OperandId, "'Coordinate'" ); |
2023 | InstructionDesc[OpImageSparseGather].operands.push(OperandId, "'Component'" ); |
2024 | InstructionDesc[OpImageSparseGather].operands.push(OperandImageOperands, "" , true); |
2025 | InstructionDesc[OpImageSparseGather].operands.push(OperandVariableIds, "" , true); |
2026 | |
2027 | InstructionDesc[OpImageSparseDrefGather].operands.push(OperandId, "'Sampled Image'" ); |
2028 | InstructionDesc[OpImageSparseDrefGather].operands.push(OperandId, "'Coordinate'" ); |
2029 | InstructionDesc[OpImageSparseDrefGather].operands.push(OperandId, "'D~ref~'" ); |
2030 | InstructionDesc[OpImageSparseDrefGather].operands.push(OperandImageOperands, "" , true); |
2031 | InstructionDesc[OpImageSparseDrefGather].operands.push(OperandVariableIds, "" , true); |
2032 | |
2033 | InstructionDesc[OpImageSparseRead].operands.push(OperandId, "'Image'" ); |
2034 | InstructionDesc[OpImageSparseRead].operands.push(OperandId, "'Coordinate'" ); |
2035 | InstructionDesc[OpImageSparseRead].operands.push(OperandImageOperands, "" , true); |
2036 | InstructionDesc[OpImageSparseRead].operands.push(OperandVariableIds, "" , true); |
2037 | |
2038 | InstructionDesc[OpImageSparseTexelsResident].operands.push(OperandId, "'Resident Code'" ); |
2039 | |
2040 | InstructionDesc[OpImageQuerySizeLod].operands.push(OperandId, "'Image'" ); |
2041 | InstructionDesc[OpImageQuerySizeLod].operands.push(OperandId, "'Level of Detail'" ); |
2042 | |
2043 | InstructionDesc[OpImageQuerySize].operands.push(OperandId, "'Image'" ); |
2044 | |
2045 | InstructionDesc[OpImageQueryLod].operands.push(OperandId, "'Image'" ); |
2046 | InstructionDesc[OpImageQueryLod].operands.push(OperandId, "'Coordinate'" ); |
2047 | |
2048 | InstructionDesc[OpImageQueryLevels].operands.push(OperandId, "'Image'" ); |
2049 | |
2050 | InstructionDesc[OpImageQuerySamples].operands.push(OperandId, "'Image'" ); |
2051 | |
2052 | InstructionDesc[OpImageQueryFormat].operands.push(OperandId, "'Image'" ); |
2053 | |
2054 | InstructionDesc[OpImageQueryOrder].operands.push(OperandId, "'Image'" ); |
2055 | |
2056 | InstructionDesc[OpAccessChain].operands.push(OperandId, "'Base'" ); |
2057 | InstructionDesc[OpAccessChain].operands.push(OperandVariableIds, "'Indexes'" ); |
2058 | |
2059 | InstructionDesc[OpInBoundsAccessChain].operands.push(OperandId, "'Base'" ); |
2060 | InstructionDesc[OpInBoundsAccessChain].operands.push(OperandVariableIds, "'Indexes'" ); |
2061 | |
2062 | InstructionDesc[OpPtrAccessChain].operands.push(OperandId, "'Base'" ); |
2063 | InstructionDesc[OpPtrAccessChain].operands.push(OperandId, "'Element'" ); |
2064 | InstructionDesc[OpPtrAccessChain].operands.push(OperandVariableIds, "'Indexes'" ); |
2065 | |
2066 | InstructionDesc[OpInBoundsPtrAccessChain].operands.push(OperandId, "'Base'" ); |
2067 | InstructionDesc[OpInBoundsPtrAccessChain].operands.push(OperandId, "'Element'" ); |
2068 | InstructionDesc[OpInBoundsPtrAccessChain].operands.push(OperandVariableIds, "'Indexes'" ); |
2069 | |
2070 | InstructionDesc[OpSNegate].operands.push(OperandId, "'Operand'" ); |
2071 | |
2072 | InstructionDesc[OpFNegate].operands.push(OperandId, "'Operand'" ); |
2073 | |
2074 | InstructionDesc[OpNot].operands.push(OperandId, "'Operand'" ); |
2075 | |
2076 | InstructionDesc[OpAny].operands.push(OperandId, "'Vector'" ); |
2077 | |
2078 | InstructionDesc[OpAll].operands.push(OperandId, "'Vector'" ); |
2079 | |
2080 | InstructionDesc[OpConvertFToU].operands.push(OperandId, "'Float Value'" ); |
2081 | |
2082 | InstructionDesc[OpConvertFToS].operands.push(OperandId, "'Float Value'" ); |
2083 | |
2084 | InstructionDesc[OpConvertSToF].operands.push(OperandId, "'Signed Value'" ); |
2085 | |
2086 | InstructionDesc[OpConvertUToF].operands.push(OperandId, "'Unsigned Value'" ); |
2087 | |
2088 | InstructionDesc[OpUConvert].operands.push(OperandId, "'Unsigned Value'" ); |
2089 | |
2090 | InstructionDesc[OpSConvert].operands.push(OperandId, "'Signed Value'" ); |
2091 | |
2092 | InstructionDesc[OpFConvert].operands.push(OperandId, "'Float Value'" ); |
2093 | |
2094 | InstructionDesc[OpSatConvertSToU].operands.push(OperandId, "'Signed Value'" ); |
2095 | |
2096 | InstructionDesc[OpSatConvertUToS].operands.push(OperandId, "'Unsigned Value'" ); |
2097 | |
2098 | InstructionDesc[OpConvertPtrToU].operands.push(OperandId, "'Pointer'" ); |
2099 | |
2100 | InstructionDesc[OpConvertUToPtr].operands.push(OperandId, "'Integer Value'" ); |
2101 | |
2102 | InstructionDesc[OpPtrCastToGeneric].operands.push(OperandId, "'Pointer'" ); |
2103 | |
2104 | InstructionDesc[OpGenericCastToPtr].operands.push(OperandId, "'Pointer'" ); |
2105 | |
2106 | InstructionDesc[OpGenericCastToPtrExplicit].operands.push(OperandId, "'Pointer'" ); |
2107 | InstructionDesc[OpGenericCastToPtrExplicit].operands.push(OperandStorage, "'Storage'" ); |
2108 | |
2109 | InstructionDesc[OpGenericPtrMemSemantics].operands.push(OperandId, "'Pointer'" ); |
2110 | |
2111 | InstructionDesc[OpBitcast].operands.push(OperandId, "'Operand'" ); |
2112 | |
2113 | InstructionDesc[OpQuantizeToF16].operands.push(OperandId, "'Value'" ); |
2114 | |
2115 | InstructionDesc[OpTranspose].operands.push(OperandId, "'Matrix'" ); |
2116 | |
2117 | InstructionDesc[OpCopyLogical].operands.push(OperandId, "'Operand'" ); |
2118 | |
2119 | InstructionDesc[OpIsNan].operands.push(OperandId, "'x'" ); |
2120 | |
2121 | InstructionDesc[OpIsInf].operands.push(OperandId, "'x'" ); |
2122 | |
2123 | InstructionDesc[OpIsFinite].operands.push(OperandId, "'x'" ); |
2124 | |
2125 | InstructionDesc[OpIsNormal].operands.push(OperandId, "'x'" ); |
2126 | |
2127 | InstructionDesc[OpSignBitSet].operands.push(OperandId, "'x'" ); |
2128 | |
2129 | InstructionDesc[OpLessOrGreater].operands.push(OperandId, "'x'" ); |
2130 | InstructionDesc[OpLessOrGreater].operands.push(OperandId, "'y'" ); |
2131 | |
2132 | InstructionDesc[OpOrdered].operands.push(OperandId, "'x'" ); |
2133 | InstructionDesc[OpOrdered].operands.push(OperandId, "'y'" ); |
2134 | |
2135 | InstructionDesc[OpUnordered].operands.push(OperandId, "'x'" ); |
2136 | InstructionDesc[OpUnordered].operands.push(OperandId, "'y'" ); |
2137 | |
2138 | InstructionDesc[OpArrayLength].operands.push(OperandId, "'Structure'" ); |
2139 | InstructionDesc[OpArrayLength].operands.push(OperandLiteralNumber, "'Array member'" ); |
2140 | |
2141 | InstructionDesc[OpIAdd].operands.push(OperandId, "'Operand 1'" ); |
2142 | InstructionDesc[OpIAdd].operands.push(OperandId, "'Operand 2'" ); |
2143 | |
2144 | InstructionDesc[OpFAdd].operands.push(OperandId, "'Operand 1'" ); |
2145 | InstructionDesc[OpFAdd].operands.push(OperandId, "'Operand 2'" ); |
2146 | |
2147 | InstructionDesc[OpISub].operands.push(OperandId, "'Operand 1'" ); |
2148 | InstructionDesc[OpISub].operands.push(OperandId, "'Operand 2'" ); |
2149 | |
2150 | InstructionDesc[OpFSub].operands.push(OperandId, "'Operand 1'" ); |
2151 | InstructionDesc[OpFSub].operands.push(OperandId, "'Operand 2'" ); |
2152 | |
2153 | InstructionDesc[OpIMul].operands.push(OperandId, "'Operand 1'" ); |
2154 | InstructionDesc[OpIMul].operands.push(OperandId, "'Operand 2'" ); |
2155 | |
2156 | InstructionDesc[OpFMul].operands.push(OperandId, "'Operand 1'" ); |
2157 | InstructionDesc[OpFMul].operands.push(OperandId, "'Operand 2'" ); |
2158 | |
2159 | InstructionDesc[OpUDiv].operands.push(OperandId, "'Operand 1'" ); |
2160 | InstructionDesc[OpUDiv].operands.push(OperandId, "'Operand 2'" ); |
2161 | |
2162 | InstructionDesc[OpSDiv].operands.push(OperandId, "'Operand 1'" ); |
2163 | InstructionDesc[OpSDiv].operands.push(OperandId, "'Operand 2'" ); |
2164 | |
2165 | InstructionDesc[OpFDiv].operands.push(OperandId, "'Operand 1'" ); |
2166 | InstructionDesc[OpFDiv].operands.push(OperandId, "'Operand 2'" ); |
2167 | |
2168 | InstructionDesc[OpUMod].operands.push(OperandId, "'Operand 1'" ); |
2169 | InstructionDesc[OpUMod].operands.push(OperandId, "'Operand 2'" ); |
2170 | |
2171 | InstructionDesc[OpSRem].operands.push(OperandId, "'Operand 1'" ); |
2172 | InstructionDesc[OpSRem].operands.push(OperandId, "'Operand 2'" ); |
2173 | |
2174 | InstructionDesc[OpSMod].operands.push(OperandId, "'Operand 1'" ); |
2175 | InstructionDesc[OpSMod].operands.push(OperandId, "'Operand 2'" ); |
2176 | |
2177 | InstructionDesc[OpFRem].operands.push(OperandId, "'Operand 1'" ); |
2178 | InstructionDesc[OpFRem].operands.push(OperandId, "'Operand 2'" ); |
2179 | |
2180 | InstructionDesc[OpFMod].operands.push(OperandId, "'Operand 1'" ); |
2181 | InstructionDesc[OpFMod].operands.push(OperandId, "'Operand 2'" ); |
2182 | |
2183 | InstructionDesc[OpVectorTimesScalar].operands.push(OperandId, "'Vector'" ); |
2184 | InstructionDesc[OpVectorTimesScalar].operands.push(OperandId, "'Scalar'" ); |
2185 | |
2186 | InstructionDesc[OpMatrixTimesScalar].operands.push(OperandId, "'Matrix'" ); |
2187 | InstructionDesc[OpMatrixTimesScalar].operands.push(OperandId, "'Scalar'" ); |
2188 | |
2189 | InstructionDesc[OpVectorTimesMatrix].operands.push(OperandId, "'Vector'" ); |
2190 | InstructionDesc[OpVectorTimesMatrix].operands.push(OperandId, "'Matrix'" ); |
2191 | |
2192 | InstructionDesc[OpMatrixTimesVector].operands.push(OperandId, "'Matrix'" ); |
2193 | InstructionDesc[OpMatrixTimesVector].operands.push(OperandId, "'Vector'" ); |
2194 | |
2195 | InstructionDesc[OpMatrixTimesMatrix].operands.push(OperandId, "'LeftMatrix'" ); |
2196 | InstructionDesc[OpMatrixTimesMatrix].operands.push(OperandId, "'RightMatrix'" ); |
2197 | |
2198 | InstructionDesc[OpOuterProduct].operands.push(OperandId, "'Vector 1'" ); |
2199 | InstructionDesc[OpOuterProduct].operands.push(OperandId, "'Vector 2'" ); |
2200 | |
2201 | InstructionDesc[OpDot].operands.push(OperandId, "'Vector 1'" ); |
2202 | InstructionDesc[OpDot].operands.push(OperandId, "'Vector 2'" ); |
2203 | |
2204 | InstructionDesc[OpIAddCarry].operands.push(OperandId, "'Operand 1'" ); |
2205 | InstructionDesc[OpIAddCarry].operands.push(OperandId, "'Operand 2'" ); |
2206 | |
2207 | InstructionDesc[OpISubBorrow].operands.push(OperandId, "'Operand 1'" ); |
2208 | InstructionDesc[OpISubBorrow].operands.push(OperandId, "'Operand 2'" ); |
2209 | |
2210 | InstructionDesc[OpUMulExtended].operands.push(OperandId, "'Operand 1'" ); |
2211 | InstructionDesc[OpUMulExtended].operands.push(OperandId, "'Operand 2'" ); |
2212 | |
2213 | InstructionDesc[OpSMulExtended].operands.push(OperandId, "'Operand 1'" ); |
2214 | InstructionDesc[OpSMulExtended].operands.push(OperandId, "'Operand 2'" ); |
2215 | |
2216 | InstructionDesc[OpShiftRightLogical].operands.push(OperandId, "'Base'" ); |
2217 | InstructionDesc[OpShiftRightLogical].operands.push(OperandId, "'Shift'" ); |
2218 | |
2219 | InstructionDesc[OpShiftRightArithmetic].operands.push(OperandId, "'Base'" ); |
2220 | InstructionDesc[OpShiftRightArithmetic].operands.push(OperandId, "'Shift'" ); |
2221 | |
2222 | InstructionDesc[OpShiftLeftLogical].operands.push(OperandId, "'Base'" ); |
2223 | InstructionDesc[OpShiftLeftLogical].operands.push(OperandId, "'Shift'" ); |
2224 | |
2225 | InstructionDesc[OpLogicalOr].operands.push(OperandId, "'Operand 1'" ); |
2226 | InstructionDesc[OpLogicalOr].operands.push(OperandId, "'Operand 2'" ); |
2227 | |
2228 | InstructionDesc[OpLogicalAnd].operands.push(OperandId, "'Operand 1'" ); |
2229 | InstructionDesc[OpLogicalAnd].operands.push(OperandId, "'Operand 2'" ); |
2230 | |
2231 | InstructionDesc[OpLogicalEqual].operands.push(OperandId, "'Operand 1'" ); |
2232 | InstructionDesc[OpLogicalEqual].operands.push(OperandId, "'Operand 2'" ); |
2233 | |
2234 | InstructionDesc[OpLogicalNotEqual].operands.push(OperandId, "'Operand 1'" ); |
2235 | InstructionDesc[OpLogicalNotEqual].operands.push(OperandId, "'Operand 2'" ); |
2236 | |
2237 | InstructionDesc[OpLogicalNot].operands.push(OperandId, "'Operand'" ); |
2238 | |
2239 | InstructionDesc[OpBitwiseOr].operands.push(OperandId, "'Operand 1'" ); |
2240 | InstructionDesc[OpBitwiseOr].operands.push(OperandId, "'Operand 2'" ); |
2241 | |
2242 | InstructionDesc[OpBitwiseXor].operands.push(OperandId, "'Operand 1'" ); |
2243 | InstructionDesc[OpBitwiseXor].operands.push(OperandId, "'Operand 2'" ); |
2244 | |
2245 | InstructionDesc[OpBitwiseAnd].operands.push(OperandId, "'Operand 1'" ); |
2246 | InstructionDesc[OpBitwiseAnd].operands.push(OperandId, "'Operand 2'" ); |
2247 | |
2248 | InstructionDesc[OpBitFieldInsert].operands.push(OperandId, "'Base'" ); |
2249 | InstructionDesc[OpBitFieldInsert].operands.push(OperandId, "'Insert'" ); |
2250 | InstructionDesc[OpBitFieldInsert].operands.push(OperandId, "'Offset'" ); |
2251 | InstructionDesc[OpBitFieldInsert].operands.push(OperandId, "'Count'" ); |
2252 | |
2253 | InstructionDesc[OpBitFieldSExtract].operands.push(OperandId, "'Base'" ); |
2254 | InstructionDesc[OpBitFieldSExtract].operands.push(OperandId, "'Offset'" ); |
2255 | InstructionDesc[OpBitFieldSExtract].operands.push(OperandId, "'Count'" ); |
2256 | |
2257 | InstructionDesc[OpBitFieldUExtract].operands.push(OperandId, "'Base'" ); |
2258 | InstructionDesc[OpBitFieldUExtract].operands.push(OperandId, "'Offset'" ); |
2259 | InstructionDesc[OpBitFieldUExtract].operands.push(OperandId, "'Count'" ); |
2260 | |
2261 | InstructionDesc[OpBitReverse].operands.push(OperandId, "'Base'" ); |
2262 | |
2263 | InstructionDesc[OpBitCount].operands.push(OperandId, "'Base'" ); |
2264 | |
2265 | InstructionDesc[OpSelect].operands.push(OperandId, "'Condition'" ); |
2266 | InstructionDesc[OpSelect].operands.push(OperandId, "'Object 1'" ); |
2267 | InstructionDesc[OpSelect].operands.push(OperandId, "'Object 2'" ); |
2268 | |
2269 | InstructionDesc[OpIEqual].operands.push(OperandId, "'Operand 1'" ); |
2270 | InstructionDesc[OpIEqual].operands.push(OperandId, "'Operand 2'" ); |
2271 | |
2272 | InstructionDesc[OpFOrdEqual].operands.push(OperandId, "'Operand 1'" ); |
2273 | InstructionDesc[OpFOrdEqual].operands.push(OperandId, "'Operand 2'" ); |
2274 | |
2275 | InstructionDesc[OpFUnordEqual].operands.push(OperandId, "'Operand 1'" ); |
2276 | InstructionDesc[OpFUnordEqual].operands.push(OperandId, "'Operand 2'" ); |
2277 | |
2278 | InstructionDesc[OpINotEqual].operands.push(OperandId, "'Operand 1'" ); |
2279 | InstructionDesc[OpINotEqual].operands.push(OperandId, "'Operand 2'" ); |
2280 | |
2281 | InstructionDesc[OpFOrdNotEqual].operands.push(OperandId, "'Operand 1'" ); |
2282 | InstructionDesc[OpFOrdNotEqual].operands.push(OperandId, "'Operand 2'" ); |
2283 | |
2284 | InstructionDesc[OpFUnordNotEqual].operands.push(OperandId, "'Operand 1'" ); |
2285 | InstructionDesc[OpFUnordNotEqual].operands.push(OperandId, "'Operand 2'" ); |
2286 | |
2287 | InstructionDesc[OpULessThan].operands.push(OperandId, "'Operand 1'" ); |
2288 | InstructionDesc[OpULessThan].operands.push(OperandId, "'Operand 2'" ); |
2289 | |
2290 | InstructionDesc[OpSLessThan].operands.push(OperandId, "'Operand 1'" ); |
2291 | InstructionDesc[OpSLessThan].operands.push(OperandId, "'Operand 2'" ); |
2292 | |
2293 | InstructionDesc[OpFOrdLessThan].operands.push(OperandId, "'Operand 1'" ); |
2294 | InstructionDesc[OpFOrdLessThan].operands.push(OperandId, "'Operand 2'" ); |
2295 | |
2296 | InstructionDesc[OpFUnordLessThan].operands.push(OperandId, "'Operand 1'" ); |
2297 | InstructionDesc[OpFUnordLessThan].operands.push(OperandId, "'Operand 2'" ); |
2298 | |
2299 | InstructionDesc[OpUGreaterThan].operands.push(OperandId, "'Operand 1'" ); |
2300 | InstructionDesc[OpUGreaterThan].operands.push(OperandId, "'Operand 2'" ); |
2301 | |
2302 | InstructionDesc[OpSGreaterThan].operands.push(OperandId, "'Operand 1'" ); |
2303 | InstructionDesc[OpSGreaterThan].operands.push(OperandId, "'Operand 2'" ); |
2304 | |
2305 | InstructionDesc[OpFOrdGreaterThan].operands.push(OperandId, "'Operand 1'" ); |
2306 | InstructionDesc[OpFOrdGreaterThan].operands.push(OperandId, "'Operand 2'" ); |
2307 | |
2308 | InstructionDesc[OpFUnordGreaterThan].operands.push(OperandId, "'Operand 1'" ); |
2309 | InstructionDesc[OpFUnordGreaterThan].operands.push(OperandId, "'Operand 2'" ); |
2310 | |
2311 | InstructionDesc[OpULessThanEqual].operands.push(OperandId, "'Operand 1'" ); |
2312 | InstructionDesc[OpULessThanEqual].operands.push(OperandId, "'Operand 2'" ); |
2313 | |
2314 | InstructionDesc[OpSLessThanEqual].operands.push(OperandId, "'Operand 1'" ); |
2315 | InstructionDesc[OpSLessThanEqual].operands.push(OperandId, "'Operand 2'" ); |
2316 | |
2317 | InstructionDesc[OpFOrdLessThanEqual].operands.push(OperandId, "'Operand 1'" ); |
2318 | InstructionDesc[OpFOrdLessThanEqual].operands.push(OperandId, "'Operand 2'" ); |
2319 | |
2320 | InstructionDesc[OpFUnordLessThanEqual].operands.push(OperandId, "'Operand 1'" ); |
2321 | InstructionDesc[OpFUnordLessThanEqual].operands.push(OperandId, "'Operand 2'" ); |
2322 | |
2323 | InstructionDesc[OpUGreaterThanEqual].operands.push(OperandId, "'Operand 1'" ); |
2324 | InstructionDesc[OpUGreaterThanEqual].operands.push(OperandId, "'Operand 2'" ); |
2325 | |
2326 | InstructionDesc[OpSGreaterThanEqual].operands.push(OperandId, "'Operand 1'" ); |
2327 | InstructionDesc[OpSGreaterThanEqual].operands.push(OperandId, "'Operand 2'" ); |
2328 | |
2329 | InstructionDesc[OpFOrdGreaterThanEqual].operands.push(OperandId, "'Operand 1'" ); |
2330 | InstructionDesc[OpFOrdGreaterThanEqual].operands.push(OperandId, "'Operand 2'" ); |
2331 | |
2332 | InstructionDesc[OpFUnordGreaterThanEqual].operands.push(OperandId, "'Operand 1'" ); |
2333 | InstructionDesc[OpFUnordGreaterThanEqual].operands.push(OperandId, "'Operand 2'" ); |
2334 | |
2335 | InstructionDesc[OpDPdx].operands.push(OperandId, "'P'" ); |
2336 | |
2337 | InstructionDesc[OpDPdy].operands.push(OperandId, "'P'" ); |
2338 | |
2339 | InstructionDesc[OpFwidth].operands.push(OperandId, "'P'" ); |
2340 | |
2341 | InstructionDesc[OpDPdxFine].operands.push(OperandId, "'P'" ); |
2342 | |
2343 | InstructionDesc[OpDPdyFine].operands.push(OperandId, "'P'" ); |
2344 | |
2345 | InstructionDesc[OpFwidthFine].operands.push(OperandId, "'P'" ); |
2346 | |
2347 | InstructionDesc[OpDPdxCoarse].operands.push(OperandId, "'P'" ); |
2348 | |
2349 | InstructionDesc[OpDPdyCoarse].operands.push(OperandId, "'P'" ); |
2350 | |
2351 | InstructionDesc[OpFwidthCoarse].operands.push(OperandId, "'P'" ); |
2352 | |
2353 | InstructionDesc[OpEmitStreamVertex].operands.push(OperandId, "'Stream'" ); |
2354 | |
2355 | InstructionDesc[OpEndStreamPrimitive].operands.push(OperandId, "'Stream'" ); |
2356 | |
2357 | InstructionDesc[OpControlBarrier].operands.push(OperandScope, "'Execution'" ); |
2358 | InstructionDesc[OpControlBarrier].operands.push(OperandScope, "'Memory'" ); |
2359 | InstructionDesc[OpControlBarrier].operands.push(OperandMemorySemantics, "'Semantics'" ); |
2360 | |
2361 | InstructionDesc[OpMemoryBarrier].operands.push(OperandScope, "'Memory'" ); |
2362 | InstructionDesc[OpMemoryBarrier].operands.push(OperandMemorySemantics, "'Semantics'" ); |
2363 | |
2364 | InstructionDesc[OpImageTexelPointer].operands.push(OperandId, "'Image'" ); |
2365 | InstructionDesc[OpImageTexelPointer].operands.push(OperandId, "'Coordinate'" ); |
2366 | InstructionDesc[OpImageTexelPointer].operands.push(OperandId, "'Sample'" ); |
2367 | |
2368 | InstructionDesc[OpAtomicLoad].operands.push(OperandId, "'Pointer'" ); |
2369 | InstructionDesc[OpAtomicLoad].operands.push(OperandScope, "'Scope'" ); |
2370 | InstructionDesc[OpAtomicLoad].operands.push(OperandMemorySemantics, "'Semantics'" ); |
2371 | |
2372 | InstructionDesc[OpAtomicStore].operands.push(OperandId, "'Pointer'" ); |
2373 | InstructionDesc[OpAtomicStore].operands.push(OperandScope, "'Scope'" ); |
2374 | InstructionDesc[OpAtomicStore].operands.push(OperandMemorySemantics, "'Semantics'" ); |
2375 | InstructionDesc[OpAtomicStore].operands.push(OperandId, "'Value'" ); |
2376 | |
2377 | InstructionDesc[OpAtomicExchange].operands.push(OperandId, "'Pointer'" ); |
2378 | InstructionDesc[OpAtomicExchange].operands.push(OperandScope, "'Scope'" ); |
2379 | InstructionDesc[OpAtomicExchange].operands.push(OperandMemorySemantics, "'Semantics'" ); |
2380 | InstructionDesc[OpAtomicExchange].operands.push(OperandId, "'Value'" ); |
2381 | |
2382 | InstructionDesc[OpAtomicCompareExchange].operands.push(OperandId, "'Pointer'" ); |
2383 | InstructionDesc[OpAtomicCompareExchange].operands.push(OperandScope, "'Scope'" ); |
2384 | InstructionDesc[OpAtomicCompareExchange].operands.push(OperandMemorySemantics, "'Equal'" ); |
2385 | InstructionDesc[OpAtomicCompareExchange].operands.push(OperandMemorySemantics, "'Unequal'" ); |
2386 | InstructionDesc[OpAtomicCompareExchange].operands.push(OperandId, "'Value'" ); |
2387 | InstructionDesc[OpAtomicCompareExchange].operands.push(OperandId, "'Comparator'" ); |
2388 | |
2389 | InstructionDesc[OpAtomicCompareExchangeWeak].operands.push(OperandId, "'Pointer'" ); |
2390 | InstructionDesc[OpAtomicCompareExchangeWeak].operands.push(OperandScope, "'Scope'" ); |
2391 | InstructionDesc[OpAtomicCompareExchangeWeak].operands.push(OperandMemorySemantics, "'Equal'" ); |
2392 | InstructionDesc[OpAtomicCompareExchangeWeak].operands.push(OperandMemorySemantics, "'Unequal'" ); |
2393 | InstructionDesc[OpAtomicCompareExchangeWeak].operands.push(OperandId, "'Value'" ); |
2394 | InstructionDesc[OpAtomicCompareExchangeWeak].operands.push(OperandId, "'Comparator'" ); |
2395 | |
2396 | InstructionDesc[OpAtomicIIncrement].operands.push(OperandId, "'Pointer'" ); |
2397 | InstructionDesc[OpAtomicIIncrement].operands.push(OperandScope, "'Scope'" ); |
2398 | InstructionDesc[OpAtomicIIncrement].operands.push(OperandMemorySemantics, "'Semantics'" ); |
2399 | |
2400 | InstructionDesc[OpAtomicIDecrement].operands.push(OperandId, "'Pointer'" ); |
2401 | InstructionDesc[OpAtomicIDecrement].operands.push(OperandScope, "'Scope'" ); |
2402 | InstructionDesc[OpAtomicIDecrement].operands.push(OperandMemorySemantics, "'Semantics'" ); |
2403 | |
2404 | InstructionDesc[OpAtomicIAdd].operands.push(OperandId, "'Pointer'" ); |
2405 | InstructionDesc[OpAtomicIAdd].operands.push(OperandScope, "'Scope'" ); |
2406 | InstructionDesc[OpAtomicIAdd].operands.push(OperandMemorySemantics, "'Semantics'" ); |
2407 | InstructionDesc[OpAtomicIAdd].operands.push(OperandId, "'Value'" ); |
2408 | |
2409 | InstructionDesc[OpAtomicFAddEXT].operands.push(OperandId, "'Pointer'" ); |
2410 | InstructionDesc[OpAtomicFAddEXT].operands.push(OperandScope, "'Scope'" ); |
2411 | InstructionDesc[OpAtomicFAddEXT].operands.push(OperandMemorySemantics, "'Semantics'" ); |
2412 | InstructionDesc[OpAtomicFAddEXT].operands.push(OperandId, "'Value'" ); |
2413 | |
2414 | InstructionDesc[OpAtomicISub].operands.push(OperandId, "'Pointer'" ); |
2415 | InstructionDesc[OpAtomicISub].operands.push(OperandScope, "'Scope'" ); |
2416 | InstructionDesc[OpAtomicISub].operands.push(OperandMemorySemantics, "'Semantics'" ); |
2417 | InstructionDesc[OpAtomicISub].operands.push(OperandId, "'Value'" ); |
2418 | |
2419 | InstructionDesc[OpAtomicUMin].operands.push(OperandId, "'Pointer'" ); |
2420 | InstructionDesc[OpAtomicUMin].operands.push(OperandScope, "'Scope'" ); |
2421 | InstructionDesc[OpAtomicUMin].operands.push(OperandMemorySemantics, "'Semantics'" ); |
2422 | InstructionDesc[OpAtomicUMin].operands.push(OperandId, "'Value'" ); |
2423 | |
2424 | InstructionDesc[OpAtomicUMax].operands.push(OperandId, "'Pointer'" ); |
2425 | InstructionDesc[OpAtomicUMax].operands.push(OperandScope, "'Scope'" ); |
2426 | InstructionDesc[OpAtomicUMax].operands.push(OperandMemorySemantics, "'Semantics'" ); |
2427 | InstructionDesc[OpAtomicUMax].operands.push(OperandId, "'Value'" ); |
2428 | |
2429 | InstructionDesc[OpAtomicSMin].operands.push(OperandId, "'Pointer'" ); |
2430 | InstructionDesc[OpAtomicSMin].operands.push(OperandScope, "'Scope'" ); |
2431 | InstructionDesc[OpAtomicSMin].operands.push(OperandMemorySemantics, "'Semantics'" ); |
2432 | InstructionDesc[OpAtomicSMin].operands.push(OperandId, "'Value'" ); |
2433 | |
2434 | InstructionDesc[OpAtomicSMax].operands.push(OperandId, "'Pointer'" ); |
2435 | InstructionDesc[OpAtomicSMax].operands.push(OperandScope, "'Scope'" ); |
2436 | InstructionDesc[OpAtomicSMax].operands.push(OperandMemorySemantics, "'Semantics'" ); |
2437 | InstructionDesc[OpAtomicSMax].operands.push(OperandId, "'Value'" ); |
2438 | |
2439 | InstructionDesc[OpAtomicFMinEXT].operands.push(OperandId, "'Pointer'" ); |
2440 | InstructionDesc[OpAtomicFMinEXT].operands.push(OperandScope, "'Scope'" ); |
2441 | InstructionDesc[OpAtomicFMinEXT].operands.push(OperandMemorySemantics, "'Semantics'" ); |
2442 | InstructionDesc[OpAtomicFMinEXT].operands.push(OperandId, "'Value'" ); |
2443 | |
2444 | InstructionDesc[OpAtomicFMaxEXT].operands.push(OperandId, "'Pointer'" ); |
2445 | InstructionDesc[OpAtomicFMaxEXT].operands.push(OperandScope, "'Scope'" ); |
2446 | InstructionDesc[OpAtomicFMaxEXT].operands.push(OperandMemorySemantics, "'Semantics'" ); |
2447 | InstructionDesc[OpAtomicFMaxEXT].operands.push(OperandId, "'Value'" ); |
2448 | |
2449 | InstructionDesc[OpAtomicAnd].operands.push(OperandId, "'Pointer'" ); |
2450 | InstructionDesc[OpAtomicAnd].operands.push(OperandScope, "'Scope'" ); |
2451 | InstructionDesc[OpAtomicAnd].operands.push(OperandMemorySemantics, "'Semantics'" ); |
2452 | InstructionDesc[OpAtomicAnd].operands.push(OperandId, "'Value'" ); |
2453 | |
2454 | InstructionDesc[OpAtomicOr].operands.push(OperandId, "'Pointer'" ); |
2455 | InstructionDesc[OpAtomicOr].operands.push(OperandScope, "'Scope'" ); |
2456 | InstructionDesc[OpAtomicOr].operands.push(OperandMemorySemantics, "'Semantics'" ); |
2457 | InstructionDesc[OpAtomicOr].operands.push(OperandId, "'Value'" ); |
2458 | |
2459 | InstructionDesc[OpAtomicXor].operands.push(OperandId, "'Pointer'" ); |
2460 | InstructionDesc[OpAtomicXor].operands.push(OperandScope, "'Scope'" ); |
2461 | InstructionDesc[OpAtomicXor].operands.push(OperandMemorySemantics, "'Semantics'" ); |
2462 | InstructionDesc[OpAtomicXor].operands.push(OperandId, "'Value'" ); |
2463 | |
2464 | InstructionDesc[OpAtomicFlagTestAndSet].operands.push(OperandId, "'Pointer'" ); |
2465 | InstructionDesc[OpAtomicFlagTestAndSet].operands.push(OperandScope, "'Scope'" ); |
2466 | InstructionDesc[OpAtomicFlagTestAndSet].operands.push(OperandMemorySemantics, "'Semantics'" ); |
2467 | |
2468 | InstructionDesc[OpAtomicFlagClear].operands.push(OperandId, "'Pointer'" ); |
2469 | InstructionDesc[OpAtomicFlagClear].operands.push(OperandScope, "'Scope'" ); |
2470 | InstructionDesc[OpAtomicFlagClear].operands.push(OperandMemorySemantics, "'Semantics'" ); |
2471 | |
2472 | InstructionDesc[OpLoopMerge].operands.push(OperandId, "'Merge Block'" ); |
2473 | InstructionDesc[OpLoopMerge].operands.push(OperandId, "'Continue Target'" ); |
2474 | InstructionDesc[OpLoopMerge].operands.push(OperandLoop, "" ); |
2475 | InstructionDesc[OpLoopMerge].operands.push(OperandOptionalLiteral, "" ); |
2476 | |
2477 | InstructionDesc[OpSelectionMerge].operands.push(OperandId, "'Merge Block'" ); |
2478 | InstructionDesc[OpSelectionMerge].operands.push(OperandSelect, "" ); |
2479 | |
2480 | InstructionDesc[OpBranch].operands.push(OperandId, "'Target Label'" ); |
2481 | |
2482 | InstructionDesc[OpBranchConditional].operands.push(OperandId, "'Condition'" ); |
2483 | InstructionDesc[OpBranchConditional].operands.push(OperandId, "'True Label'" ); |
2484 | InstructionDesc[OpBranchConditional].operands.push(OperandId, "'False Label'" ); |
2485 | InstructionDesc[OpBranchConditional].operands.push(OperandVariableLiterals, "'Branch weights'" ); |
2486 | |
2487 | InstructionDesc[OpSwitch].operands.push(OperandId, "'Selector'" ); |
2488 | InstructionDesc[OpSwitch].operands.push(OperandId, "'Default'" ); |
2489 | InstructionDesc[OpSwitch].operands.push(OperandVariableLiteralId, "'Target'" ); |
2490 | |
2491 | |
2492 | InstructionDesc[OpReturnValue].operands.push(OperandId, "'Value'" ); |
2493 | |
2494 | InstructionDesc[OpLifetimeStart].operands.push(OperandId, "'Pointer'" ); |
2495 | InstructionDesc[OpLifetimeStart].operands.push(OperandLiteralNumber, "'Size'" ); |
2496 | |
2497 | InstructionDesc[OpLifetimeStop].operands.push(OperandId, "'Pointer'" ); |
2498 | InstructionDesc[OpLifetimeStop].operands.push(OperandLiteralNumber, "'Size'" ); |
2499 | |
2500 | InstructionDesc[OpGroupAsyncCopy].operands.push(OperandScope, "'Execution'" ); |
2501 | InstructionDesc[OpGroupAsyncCopy].operands.push(OperandId, "'Destination'" ); |
2502 | InstructionDesc[OpGroupAsyncCopy].operands.push(OperandId, "'Source'" ); |
2503 | InstructionDesc[OpGroupAsyncCopy].operands.push(OperandId, "'Num Elements'" ); |
2504 | InstructionDesc[OpGroupAsyncCopy].operands.push(OperandId, "'Stride'" ); |
2505 | InstructionDesc[OpGroupAsyncCopy].operands.push(OperandId, "'Event'" ); |
2506 | |
2507 | InstructionDesc[OpGroupWaitEvents].operands.push(OperandScope, "'Execution'" ); |
2508 | InstructionDesc[OpGroupWaitEvents].operands.push(OperandId, "'Num Events'" ); |
2509 | InstructionDesc[OpGroupWaitEvents].operands.push(OperandId, "'Events List'" ); |
2510 | |
2511 | InstructionDesc[OpGroupAll].operands.push(OperandScope, "'Execution'" ); |
2512 | InstructionDesc[OpGroupAll].operands.push(OperandId, "'Predicate'" ); |
2513 | |
2514 | InstructionDesc[OpGroupAny].operands.push(OperandScope, "'Execution'" ); |
2515 | InstructionDesc[OpGroupAny].operands.push(OperandId, "'Predicate'" ); |
2516 | |
2517 | InstructionDesc[OpGroupBroadcast].operands.push(OperandScope, "'Execution'" ); |
2518 | InstructionDesc[OpGroupBroadcast].operands.push(OperandId, "'Value'" ); |
2519 | InstructionDesc[OpGroupBroadcast].operands.push(OperandId, "'LocalId'" ); |
2520 | |
2521 | InstructionDesc[OpGroupIAdd].operands.push(OperandScope, "'Execution'" ); |
2522 | InstructionDesc[OpGroupIAdd].operands.push(OperandGroupOperation, "'Operation'" ); |
2523 | InstructionDesc[OpGroupIAdd].operands.push(OperandId, "'X'" ); |
2524 | |
2525 | InstructionDesc[OpGroupFAdd].operands.push(OperandScope, "'Execution'" ); |
2526 | InstructionDesc[OpGroupFAdd].operands.push(OperandGroupOperation, "'Operation'" ); |
2527 | InstructionDesc[OpGroupFAdd].operands.push(OperandId, "'X'" ); |
2528 | |
2529 | InstructionDesc[OpGroupUMin].operands.push(OperandScope, "'Execution'" ); |
2530 | InstructionDesc[OpGroupUMin].operands.push(OperandGroupOperation, "'Operation'" ); |
2531 | InstructionDesc[OpGroupUMin].operands.push(OperandId, "'X'" ); |
2532 | |
2533 | InstructionDesc[OpGroupSMin].operands.push(OperandScope, "'Execution'" ); |
2534 | InstructionDesc[OpGroupSMin].operands.push(OperandGroupOperation, "'Operation'" ); |
2535 | InstructionDesc[OpGroupSMin].operands.push(OperandId, "X" ); |
2536 | |
2537 | InstructionDesc[OpGroupFMin].operands.push(OperandScope, "'Execution'" ); |
2538 | InstructionDesc[OpGroupFMin].operands.push(OperandGroupOperation, "'Operation'" ); |
2539 | InstructionDesc[OpGroupFMin].operands.push(OperandId, "X" ); |
2540 | |
2541 | InstructionDesc[OpGroupUMax].operands.push(OperandScope, "'Execution'" ); |
2542 | InstructionDesc[OpGroupUMax].operands.push(OperandGroupOperation, "'Operation'" ); |
2543 | InstructionDesc[OpGroupUMax].operands.push(OperandId, "X" ); |
2544 | |
2545 | InstructionDesc[OpGroupSMax].operands.push(OperandScope, "'Execution'" ); |
2546 | InstructionDesc[OpGroupSMax].operands.push(OperandGroupOperation, "'Operation'" ); |
2547 | InstructionDesc[OpGroupSMax].operands.push(OperandId, "X" ); |
2548 | |
2549 | InstructionDesc[OpGroupFMax].operands.push(OperandScope, "'Execution'" ); |
2550 | InstructionDesc[OpGroupFMax].operands.push(OperandGroupOperation, "'Operation'" ); |
2551 | InstructionDesc[OpGroupFMax].operands.push(OperandId, "X" ); |
2552 | |
2553 | InstructionDesc[OpReadPipe].operands.push(OperandId, "'Pipe'" ); |
2554 | InstructionDesc[OpReadPipe].operands.push(OperandId, "'Pointer'" ); |
2555 | InstructionDesc[OpReadPipe].operands.push(OperandId, "'Packet Size'" ); |
2556 | InstructionDesc[OpReadPipe].operands.push(OperandId, "'Packet Alignment'" ); |
2557 | |
2558 | InstructionDesc[OpWritePipe].operands.push(OperandId, "'Pipe'" ); |
2559 | InstructionDesc[OpWritePipe].operands.push(OperandId, "'Pointer'" ); |
2560 | InstructionDesc[OpWritePipe].operands.push(OperandId, "'Packet Size'" ); |
2561 | InstructionDesc[OpWritePipe].operands.push(OperandId, "'Packet Alignment'" ); |
2562 | |
2563 | InstructionDesc[OpReservedReadPipe].operands.push(OperandId, "'Pipe'" ); |
2564 | InstructionDesc[OpReservedReadPipe].operands.push(OperandId, "'Reserve Id'" ); |
2565 | InstructionDesc[OpReservedReadPipe].operands.push(OperandId, "'Index'" ); |
2566 | InstructionDesc[OpReservedReadPipe].operands.push(OperandId, "'Pointer'" ); |
2567 | InstructionDesc[OpReservedReadPipe].operands.push(OperandId, "'Packet Size'" ); |
2568 | InstructionDesc[OpReservedReadPipe].operands.push(OperandId, "'Packet Alignment'" ); |
2569 | |
2570 | InstructionDesc[OpReservedWritePipe].operands.push(OperandId, "'Pipe'" ); |
2571 | InstructionDesc[OpReservedWritePipe].operands.push(OperandId, "'Reserve Id'" ); |
2572 | InstructionDesc[OpReservedWritePipe].operands.push(OperandId, "'Index'" ); |
2573 | InstructionDesc[OpReservedWritePipe].operands.push(OperandId, "'Pointer'" ); |
2574 | InstructionDesc[OpReservedWritePipe].operands.push(OperandId, "'Packet Size'" ); |
2575 | InstructionDesc[OpReservedWritePipe].operands.push(OperandId, "'Packet Alignment'" ); |
2576 | |
2577 | InstructionDesc[OpReserveReadPipePackets].operands.push(OperandId, "'Pipe'" ); |
2578 | InstructionDesc[OpReserveReadPipePackets].operands.push(OperandId, "'Num Packets'" ); |
2579 | InstructionDesc[OpReserveReadPipePackets].operands.push(OperandId, "'Packet Size'" ); |
2580 | InstructionDesc[OpReserveReadPipePackets].operands.push(OperandId, "'Packet Alignment'" ); |
2581 | |
2582 | InstructionDesc[OpReserveWritePipePackets].operands.push(OperandId, "'Pipe'" ); |
2583 | InstructionDesc[OpReserveWritePipePackets].operands.push(OperandId, "'Num Packets'" ); |
2584 | InstructionDesc[OpReserveWritePipePackets].operands.push(OperandId, "'Packet Size'" ); |
2585 | InstructionDesc[OpReserveWritePipePackets].operands.push(OperandId, "'Packet Alignment'" ); |
2586 | |
2587 | InstructionDesc[OpCommitReadPipe].operands.push(OperandId, "'Pipe'" ); |
2588 | InstructionDesc[OpCommitReadPipe].operands.push(OperandId, "'Reserve Id'" ); |
2589 | InstructionDesc[OpCommitReadPipe].operands.push(OperandId, "'Packet Size'" ); |
2590 | InstructionDesc[OpCommitReadPipe].operands.push(OperandId, "'Packet Alignment'" ); |
2591 | |
2592 | InstructionDesc[OpCommitWritePipe].operands.push(OperandId, "'Pipe'" ); |
2593 | InstructionDesc[OpCommitWritePipe].operands.push(OperandId, "'Reserve Id'" ); |
2594 | InstructionDesc[OpCommitWritePipe].operands.push(OperandId, "'Packet Size'" ); |
2595 | InstructionDesc[OpCommitWritePipe].operands.push(OperandId, "'Packet Alignment'" ); |
2596 | |
2597 | InstructionDesc[OpIsValidReserveId].operands.push(OperandId, "'Reserve Id'" ); |
2598 | |
2599 | InstructionDesc[OpGetNumPipePackets].operands.push(OperandId, "'Pipe'" ); |
2600 | InstructionDesc[OpGetNumPipePackets].operands.push(OperandId, "'Packet Size'" ); |
2601 | InstructionDesc[OpGetNumPipePackets].operands.push(OperandId, "'Packet Alignment'" ); |
2602 | |
2603 | InstructionDesc[OpGetMaxPipePackets].operands.push(OperandId, "'Pipe'" ); |
2604 | InstructionDesc[OpGetMaxPipePackets].operands.push(OperandId, "'Packet Size'" ); |
2605 | InstructionDesc[OpGetMaxPipePackets].operands.push(OperandId, "'Packet Alignment'" ); |
2606 | |
2607 | InstructionDesc[OpGroupReserveReadPipePackets].operands.push(OperandScope, "'Execution'" ); |
2608 | InstructionDesc[OpGroupReserveReadPipePackets].operands.push(OperandId, "'Pipe'" ); |
2609 | InstructionDesc[OpGroupReserveReadPipePackets].operands.push(OperandId, "'Num Packets'" ); |
2610 | InstructionDesc[OpGroupReserveReadPipePackets].operands.push(OperandId, "'Packet Size'" ); |
2611 | InstructionDesc[OpGroupReserveReadPipePackets].operands.push(OperandId, "'Packet Alignment'" ); |
2612 | |
2613 | InstructionDesc[OpGroupReserveWritePipePackets].operands.push(OperandScope, "'Execution'" ); |
2614 | InstructionDesc[OpGroupReserveWritePipePackets].operands.push(OperandId, "'Pipe'" ); |
2615 | InstructionDesc[OpGroupReserveWritePipePackets].operands.push(OperandId, "'Num Packets'" ); |
2616 | InstructionDesc[OpGroupReserveWritePipePackets].operands.push(OperandId, "'Packet Size'" ); |
2617 | InstructionDesc[OpGroupReserveWritePipePackets].operands.push(OperandId, "'Packet Alignment'" ); |
2618 | |
2619 | InstructionDesc[OpGroupCommitReadPipe].operands.push(OperandScope, "'Execution'" ); |
2620 | InstructionDesc[OpGroupCommitReadPipe].operands.push(OperandId, "'Pipe'" ); |
2621 | InstructionDesc[OpGroupCommitReadPipe].operands.push(OperandId, "'Reserve Id'" ); |
2622 | InstructionDesc[OpGroupCommitReadPipe].operands.push(OperandId, "'Packet Size'" ); |
2623 | InstructionDesc[OpGroupCommitReadPipe].operands.push(OperandId, "'Packet Alignment'" ); |
2624 | |
2625 | InstructionDesc[OpGroupCommitWritePipe].operands.push(OperandScope, "'Execution'" ); |
2626 | InstructionDesc[OpGroupCommitWritePipe].operands.push(OperandId, "'Pipe'" ); |
2627 | InstructionDesc[OpGroupCommitWritePipe].operands.push(OperandId, "'Reserve Id'" ); |
2628 | InstructionDesc[OpGroupCommitWritePipe].operands.push(OperandId, "'Packet Size'" ); |
2629 | InstructionDesc[OpGroupCommitWritePipe].operands.push(OperandId, "'Packet Alignment'" ); |
2630 | |
2631 | InstructionDesc[OpBuildNDRange].operands.push(OperandId, "'GlobalWorkSize'" ); |
2632 | InstructionDesc[OpBuildNDRange].operands.push(OperandId, "'LocalWorkSize'" ); |
2633 | InstructionDesc[OpBuildNDRange].operands.push(OperandId, "'GlobalWorkOffset'" ); |
2634 | |
2635 | InstructionDesc[OpCaptureEventProfilingInfo].operands.push(OperandId, "'Event'" ); |
2636 | InstructionDesc[OpCaptureEventProfilingInfo].operands.push(OperandId, "'Profiling Info'" ); |
2637 | InstructionDesc[OpCaptureEventProfilingInfo].operands.push(OperandId, "'Value'" ); |
2638 | |
2639 | InstructionDesc[OpSetUserEventStatus].operands.push(OperandId, "'Event'" ); |
2640 | InstructionDesc[OpSetUserEventStatus].operands.push(OperandId, "'Status'" ); |
2641 | |
2642 | InstructionDesc[OpIsValidEvent].operands.push(OperandId, "'Event'" ); |
2643 | |
2644 | InstructionDesc[OpRetainEvent].operands.push(OperandId, "'Event'" ); |
2645 | |
2646 | InstructionDesc[OpReleaseEvent].operands.push(OperandId, "'Event'" ); |
2647 | |
2648 | InstructionDesc[OpGetKernelWorkGroupSize].operands.push(OperandId, "'Invoke'" ); |
2649 | InstructionDesc[OpGetKernelWorkGroupSize].operands.push(OperandId, "'Param'" ); |
2650 | InstructionDesc[OpGetKernelWorkGroupSize].operands.push(OperandId, "'Param Size'" ); |
2651 | InstructionDesc[OpGetKernelWorkGroupSize].operands.push(OperandId, "'Param Align'" ); |
2652 | |
2653 | InstructionDesc[OpGetKernelPreferredWorkGroupSizeMultiple].operands.push(OperandId, "'Invoke'" ); |
2654 | InstructionDesc[OpGetKernelPreferredWorkGroupSizeMultiple].operands.push(OperandId, "'Param'" ); |
2655 | InstructionDesc[OpGetKernelPreferredWorkGroupSizeMultiple].operands.push(OperandId, "'Param Size'" ); |
2656 | InstructionDesc[OpGetKernelPreferredWorkGroupSizeMultiple].operands.push(OperandId, "'Param Align'" ); |
2657 | |
2658 | InstructionDesc[OpGetKernelNDrangeSubGroupCount].operands.push(OperandId, "'ND Range'" ); |
2659 | InstructionDesc[OpGetKernelNDrangeSubGroupCount].operands.push(OperandId, "'Invoke'" ); |
2660 | InstructionDesc[OpGetKernelNDrangeSubGroupCount].operands.push(OperandId, "'Param'" ); |
2661 | InstructionDesc[OpGetKernelNDrangeSubGroupCount].operands.push(OperandId, "'Param Size'" ); |
2662 | InstructionDesc[OpGetKernelNDrangeSubGroupCount].operands.push(OperandId, "'Param Align'" ); |
2663 | |
2664 | InstructionDesc[OpGetKernelNDrangeMaxSubGroupSize].operands.push(OperandId, "'ND Range'" ); |
2665 | InstructionDesc[OpGetKernelNDrangeMaxSubGroupSize].operands.push(OperandId, "'Invoke'" ); |
2666 | InstructionDesc[OpGetKernelNDrangeMaxSubGroupSize].operands.push(OperandId, "'Param'" ); |
2667 | InstructionDesc[OpGetKernelNDrangeMaxSubGroupSize].operands.push(OperandId, "'Param Size'" ); |
2668 | InstructionDesc[OpGetKernelNDrangeMaxSubGroupSize].operands.push(OperandId, "'Param Align'" ); |
2669 | |
2670 | InstructionDesc[OpEnqueueKernel].operands.push(OperandId, "'Queue'" ); |
2671 | InstructionDesc[OpEnqueueKernel].operands.push(OperandId, "'Flags'" ); |
2672 | InstructionDesc[OpEnqueueKernel].operands.push(OperandId, "'ND Range'" ); |
2673 | InstructionDesc[OpEnqueueKernel].operands.push(OperandId, "'Num Events'" ); |
2674 | InstructionDesc[OpEnqueueKernel].operands.push(OperandId, "'Wait Events'" ); |
2675 | InstructionDesc[OpEnqueueKernel].operands.push(OperandId, "'Ret Event'" ); |
2676 | InstructionDesc[OpEnqueueKernel].operands.push(OperandId, "'Invoke'" ); |
2677 | InstructionDesc[OpEnqueueKernel].operands.push(OperandId, "'Param'" ); |
2678 | InstructionDesc[OpEnqueueKernel].operands.push(OperandId, "'Param Size'" ); |
2679 | InstructionDesc[OpEnqueueKernel].operands.push(OperandId, "'Param Align'" ); |
2680 | InstructionDesc[OpEnqueueKernel].operands.push(OperandVariableIds, "'Local Size'" ); |
2681 | |
2682 | InstructionDesc[OpEnqueueMarker].operands.push(OperandId, "'Queue'" ); |
2683 | InstructionDesc[OpEnqueueMarker].operands.push(OperandId, "'Num Events'" ); |
2684 | InstructionDesc[OpEnqueueMarker].operands.push(OperandId, "'Wait Events'" ); |
2685 | InstructionDesc[OpEnqueueMarker].operands.push(OperandId, "'Ret Event'" ); |
2686 | |
2687 | InstructionDesc[OpGroupNonUniformElect].operands.push(OperandScope, "'Execution'" ); |
2688 | |
2689 | InstructionDesc[OpGroupNonUniformAll].operands.push(OperandScope, "'Execution'" ); |
2690 | InstructionDesc[OpGroupNonUniformAll].operands.push(OperandId, "X" ); |
2691 | |
2692 | InstructionDesc[OpGroupNonUniformAny].operands.push(OperandScope, "'Execution'" ); |
2693 | InstructionDesc[OpGroupNonUniformAny].operands.push(OperandId, "X" ); |
2694 | |
2695 | InstructionDesc[OpGroupNonUniformAllEqual].operands.push(OperandScope, "'Execution'" ); |
2696 | InstructionDesc[OpGroupNonUniformAllEqual].operands.push(OperandId, "X" ); |
2697 | |
2698 | InstructionDesc[OpGroupNonUniformBroadcast].operands.push(OperandScope, "'Execution'" ); |
2699 | InstructionDesc[OpGroupNonUniformBroadcast].operands.push(OperandId, "X" ); |
2700 | InstructionDesc[OpGroupNonUniformBroadcast].operands.push(OperandId, "ID" ); |
2701 | |
2702 | InstructionDesc[OpGroupNonUniformBroadcastFirst].operands.push(OperandScope, "'Execution'" ); |
2703 | InstructionDesc[OpGroupNonUniformBroadcastFirst].operands.push(OperandId, "X" ); |
2704 | |
2705 | InstructionDesc[OpGroupNonUniformBallot].operands.push(OperandScope, "'Execution'" ); |
2706 | InstructionDesc[OpGroupNonUniformBallot].operands.push(OperandId, "X" ); |
2707 | |
2708 | InstructionDesc[OpGroupNonUniformInverseBallot].operands.push(OperandScope, "'Execution'" ); |
2709 | InstructionDesc[OpGroupNonUniformInverseBallot].operands.push(OperandId, "X" ); |
2710 | |
2711 | InstructionDesc[OpGroupNonUniformBallotBitExtract].operands.push(OperandScope, "'Execution'" ); |
2712 | InstructionDesc[OpGroupNonUniformBallotBitExtract].operands.push(OperandId, "X" ); |
2713 | InstructionDesc[OpGroupNonUniformBallotBitExtract].operands.push(OperandId, "Bit" ); |
2714 | |
2715 | InstructionDesc[OpGroupNonUniformBallotBitCount].operands.push(OperandScope, "'Execution'" ); |
2716 | InstructionDesc[OpGroupNonUniformBallotBitCount].operands.push(OperandGroupOperation, "'Operation'" ); |
2717 | InstructionDesc[OpGroupNonUniformBallotBitCount].operands.push(OperandId, "X" ); |
2718 | |
2719 | InstructionDesc[OpGroupNonUniformBallotFindLSB].operands.push(OperandScope, "'Execution'" ); |
2720 | InstructionDesc[OpGroupNonUniformBallotFindLSB].operands.push(OperandId, "X" ); |
2721 | |
2722 | InstructionDesc[OpGroupNonUniformBallotFindMSB].operands.push(OperandScope, "'Execution'" ); |
2723 | InstructionDesc[OpGroupNonUniformBallotFindMSB].operands.push(OperandId, "X" ); |
2724 | |
2725 | InstructionDesc[OpGroupNonUniformShuffle].operands.push(OperandScope, "'Execution'" ); |
2726 | InstructionDesc[OpGroupNonUniformShuffle].operands.push(OperandId, "X" ); |
2727 | InstructionDesc[OpGroupNonUniformShuffle].operands.push(OperandId, "'Id'" ); |
2728 | |
2729 | InstructionDesc[OpGroupNonUniformShuffleXor].operands.push(OperandScope, "'Execution'" ); |
2730 | InstructionDesc[OpGroupNonUniformShuffleXor].operands.push(OperandId, "X" ); |
2731 | InstructionDesc[OpGroupNonUniformShuffleXor].operands.push(OperandId, "Mask" ); |
2732 | |
2733 | InstructionDesc[OpGroupNonUniformShuffleUp].operands.push(OperandScope, "'Execution'" ); |
2734 | InstructionDesc[OpGroupNonUniformShuffleUp].operands.push(OperandId, "X" ); |
2735 | InstructionDesc[OpGroupNonUniformShuffleUp].operands.push(OperandId, "Offset" ); |
2736 | |
2737 | InstructionDesc[OpGroupNonUniformShuffleDown].operands.push(OperandScope, "'Execution'" ); |
2738 | InstructionDesc[OpGroupNonUniformShuffleDown].operands.push(OperandId, "X" ); |
2739 | InstructionDesc[OpGroupNonUniformShuffleDown].operands.push(OperandId, "Offset" ); |
2740 | |
2741 | InstructionDesc[OpGroupNonUniformIAdd].operands.push(OperandScope, "'Execution'" ); |
2742 | InstructionDesc[OpGroupNonUniformIAdd].operands.push(OperandGroupOperation, "'Operation'" ); |
2743 | InstructionDesc[OpGroupNonUniformIAdd].operands.push(OperandId, "X" ); |
2744 | InstructionDesc[OpGroupNonUniformIAdd].operands.push(OperandId, "'ClusterSize'" , true); |
2745 | |
2746 | InstructionDesc[OpGroupNonUniformFAdd].operands.push(OperandScope, "'Execution'" ); |
2747 | InstructionDesc[OpGroupNonUniformFAdd].operands.push(OperandGroupOperation, "'Operation'" ); |
2748 | InstructionDesc[OpGroupNonUniformFAdd].operands.push(OperandId, "X" ); |
2749 | InstructionDesc[OpGroupNonUniformFAdd].operands.push(OperandId, "'ClusterSize'" , true); |
2750 | |
2751 | InstructionDesc[OpGroupNonUniformIMul].operands.push(OperandScope, "'Execution'" ); |
2752 | InstructionDesc[OpGroupNonUniformIMul].operands.push(OperandGroupOperation, "'Operation'" ); |
2753 | InstructionDesc[OpGroupNonUniformIMul].operands.push(OperandId, "X" ); |
2754 | InstructionDesc[OpGroupNonUniformIMul].operands.push(OperandId, "'ClusterSize'" , true); |
2755 | |
2756 | InstructionDesc[OpGroupNonUniformFMul].operands.push(OperandScope, "'Execution'" ); |
2757 | InstructionDesc[OpGroupNonUniformFMul].operands.push(OperandGroupOperation, "'Operation'" ); |
2758 | InstructionDesc[OpGroupNonUniformFMul].operands.push(OperandId, "X" ); |
2759 | InstructionDesc[OpGroupNonUniformFMul].operands.push(OperandId, "'ClusterSize'" , true); |
2760 | |
2761 | InstructionDesc[OpGroupNonUniformSMin].operands.push(OperandScope, "'Execution'" ); |
2762 | InstructionDesc[OpGroupNonUniformSMin].operands.push(OperandGroupOperation, "'Operation'" ); |
2763 | InstructionDesc[OpGroupNonUniformSMin].operands.push(OperandId, "X" ); |
2764 | InstructionDesc[OpGroupNonUniformSMin].operands.push(OperandId, "'ClusterSize'" , true); |
2765 | |
2766 | InstructionDesc[OpGroupNonUniformUMin].operands.push(OperandScope, "'Execution'" ); |
2767 | InstructionDesc[OpGroupNonUniformUMin].operands.push(OperandGroupOperation, "'Operation'" ); |
2768 | InstructionDesc[OpGroupNonUniformUMin].operands.push(OperandId, "X" ); |
2769 | InstructionDesc[OpGroupNonUniformUMin].operands.push(OperandId, "'ClusterSize'" , true); |
2770 | |
2771 | InstructionDesc[OpGroupNonUniformFMin].operands.push(OperandScope, "'Execution'" ); |
2772 | InstructionDesc[OpGroupNonUniformFMin].operands.push(OperandGroupOperation, "'Operation'" ); |
2773 | InstructionDesc[OpGroupNonUniformFMin].operands.push(OperandId, "X" ); |
2774 | InstructionDesc[OpGroupNonUniformFMin].operands.push(OperandId, "'ClusterSize'" , true); |
2775 | |
2776 | InstructionDesc[OpGroupNonUniformSMax].operands.push(OperandScope, "'Execution'" ); |
2777 | InstructionDesc[OpGroupNonUniformSMax].operands.push(OperandGroupOperation, "'Operation'" ); |
2778 | InstructionDesc[OpGroupNonUniformSMax].operands.push(OperandId, "X" ); |
2779 | InstructionDesc[OpGroupNonUniformSMax].operands.push(OperandId, "'ClusterSize'" , true); |
2780 | |
2781 | InstructionDesc[OpGroupNonUniformUMax].operands.push(OperandScope, "'Execution'" ); |
2782 | InstructionDesc[OpGroupNonUniformUMax].operands.push(OperandGroupOperation, "'Operation'" ); |
2783 | InstructionDesc[OpGroupNonUniformUMax].operands.push(OperandId, "X" ); |
2784 | InstructionDesc[OpGroupNonUniformUMax].operands.push(OperandId, "'ClusterSize'" , true); |
2785 | |
2786 | InstructionDesc[OpGroupNonUniformFMax].operands.push(OperandScope, "'Execution'" ); |
2787 | InstructionDesc[OpGroupNonUniformFMax].operands.push(OperandGroupOperation, "'Operation'" ); |
2788 | InstructionDesc[OpGroupNonUniformFMax].operands.push(OperandId, "X" ); |
2789 | InstructionDesc[OpGroupNonUniformFMax].operands.push(OperandId, "'ClusterSize'" , true); |
2790 | |
2791 | InstructionDesc[OpGroupNonUniformBitwiseAnd].operands.push(OperandScope, "'Execution'" ); |
2792 | InstructionDesc[OpGroupNonUniformBitwiseAnd].operands.push(OperandGroupOperation, "'Operation'" ); |
2793 | InstructionDesc[OpGroupNonUniformBitwiseAnd].operands.push(OperandId, "X" ); |
2794 | InstructionDesc[OpGroupNonUniformBitwiseAnd].operands.push(OperandId, "'ClusterSize'" , true); |
2795 | |
2796 | InstructionDesc[OpGroupNonUniformBitwiseOr].operands.push(OperandScope, "'Execution'" ); |
2797 | InstructionDesc[OpGroupNonUniformBitwiseOr].operands.push(OperandGroupOperation, "'Operation'" ); |
2798 | InstructionDesc[OpGroupNonUniformBitwiseOr].operands.push(OperandId, "X" ); |
2799 | InstructionDesc[OpGroupNonUniformBitwiseOr].operands.push(OperandId, "'ClusterSize'" , true); |
2800 | |
2801 | InstructionDesc[OpGroupNonUniformBitwiseXor].operands.push(OperandScope, "'Execution'" ); |
2802 | InstructionDesc[OpGroupNonUniformBitwiseXor].operands.push(OperandGroupOperation, "'Operation'" ); |
2803 | InstructionDesc[OpGroupNonUniformBitwiseXor].operands.push(OperandId, "X" ); |
2804 | InstructionDesc[OpGroupNonUniformBitwiseXor].operands.push(OperandId, "'ClusterSize'" , true); |
2805 | |
2806 | InstructionDesc[OpGroupNonUniformLogicalAnd].operands.push(OperandScope, "'Execution'" ); |
2807 | InstructionDesc[OpGroupNonUniformLogicalAnd].operands.push(OperandGroupOperation, "'Operation'" ); |
2808 | InstructionDesc[OpGroupNonUniformLogicalAnd].operands.push(OperandId, "X" ); |
2809 | InstructionDesc[OpGroupNonUniformLogicalAnd].operands.push(OperandId, "'ClusterSize'" , true); |
2810 | |
2811 | InstructionDesc[OpGroupNonUniformLogicalOr].operands.push(OperandScope, "'Execution'" ); |
2812 | InstructionDesc[OpGroupNonUniformLogicalOr].operands.push(OperandGroupOperation, "'Operation'" ); |
2813 | InstructionDesc[OpGroupNonUniformLogicalOr].operands.push(OperandId, "X" ); |
2814 | InstructionDesc[OpGroupNonUniformLogicalOr].operands.push(OperandId, "'ClusterSize'" , true); |
2815 | |
2816 | InstructionDesc[OpGroupNonUniformLogicalXor].operands.push(OperandScope, "'Execution'" ); |
2817 | InstructionDesc[OpGroupNonUniformLogicalXor].operands.push(OperandGroupOperation, "'Operation'" ); |
2818 | InstructionDesc[OpGroupNonUniformLogicalXor].operands.push(OperandId, "X" ); |
2819 | InstructionDesc[OpGroupNonUniformLogicalXor].operands.push(OperandId, "'ClusterSize'" , true); |
2820 | |
2821 | InstructionDesc[OpGroupNonUniformQuadBroadcast].operands.push(OperandScope, "'Execution'" ); |
2822 | InstructionDesc[OpGroupNonUniformQuadBroadcast].operands.push(OperandId, "X" ); |
2823 | InstructionDesc[OpGroupNonUniformQuadBroadcast].operands.push(OperandId, "'Id'" ); |
2824 | |
2825 | InstructionDesc[OpGroupNonUniformQuadSwap].operands.push(OperandScope, "'Execution'" ); |
2826 | InstructionDesc[OpGroupNonUniformQuadSwap].operands.push(OperandId, "X" ); |
2827 | InstructionDesc[OpGroupNonUniformQuadSwap].operands.push(OperandId, "'Direction'" ); |
2828 | |
2829 | InstructionDesc[OpSubgroupBallotKHR].operands.push(OperandId, "'Predicate'" ); |
2830 | |
2831 | InstructionDesc[OpSubgroupFirstInvocationKHR].operands.push(OperandId, "'Value'" ); |
2832 | |
2833 | InstructionDesc[OpSubgroupAnyKHR].operands.push(OperandScope, "'Execution'" ); |
2834 | InstructionDesc[OpSubgroupAnyKHR].operands.push(OperandId, "'Predicate'" ); |
2835 | |
2836 | InstructionDesc[OpSubgroupAllKHR].operands.push(OperandScope, "'Execution'" ); |
2837 | InstructionDesc[OpSubgroupAllKHR].operands.push(OperandId, "'Predicate'" ); |
2838 | |
2839 | InstructionDesc[OpSubgroupAllEqualKHR].operands.push(OperandScope, "'Execution'" ); |
2840 | InstructionDesc[OpSubgroupAllEqualKHR].operands.push(OperandId, "'Predicate'" ); |
2841 | |
2842 | InstructionDesc[OpSubgroupReadInvocationKHR].operands.push(OperandId, "'Value'" ); |
2843 | InstructionDesc[OpSubgroupReadInvocationKHR].operands.push(OperandId, "'Index'" ); |
2844 | |
2845 | InstructionDesc[OpModuleProcessed].operands.push(OperandLiteralString, "'process'" ); |
2846 | |
2847 | InstructionDesc[OpGroupIAddNonUniformAMD].operands.push(OperandScope, "'Execution'" ); |
2848 | InstructionDesc[OpGroupIAddNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'" ); |
2849 | InstructionDesc[OpGroupIAddNonUniformAMD].operands.push(OperandId, "'X'" ); |
2850 | |
2851 | InstructionDesc[OpGroupFAddNonUniformAMD].operands.push(OperandScope, "'Execution'" ); |
2852 | InstructionDesc[OpGroupFAddNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'" ); |
2853 | InstructionDesc[OpGroupFAddNonUniformAMD].operands.push(OperandId, "'X'" ); |
2854 | |
2855 | InstructionDesc[OpGroupUMinNonUniformAMD].operands.push(OperandScope, "'Execution'" ); |
2856 | InstructionDesc[OpGroupUMinNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'" ); |
2857 | InstructionDesc[OpGroupUMinNonUniformAMD].operands.push(OperandId, "'X'" ); |
2858 | |
2859 | InstructionDesc[OpGroupSMinNonUniformAMD].operands.push(OperandScope, "'Execution'" ); |
2860 | InstructionDesc[OpGroupSMinNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'" ); |
2861 | InstructionDesc[OpGroupSMinNonUniformAMD].operands.push(OperandId, "X" ); |
2862 | |
2863 | InstructionDesc[OpGroupFMinNonUniformAMD].operands.push(OperandScope, "'Execution'" ); |
2864 | InstructionDesc[OpGroupFMinNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'" ); |
2865 | InstructionDesc[OpGroupFMinNonUniformAMD].operands.push(OperandId, "X" ); |
2866 | |
2867 | InstructionDesc[OpGroupUMaxNonUniformAMD].operands.push(OperandScope, "'Execution'" ); |
2868 | InstructionDesc[OpGroupUMaxNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'" ); |
2869 | InstructionDesc[OpGroupUMaxNonUniformAMD].operands.push(OperandId, "X" ); |
2870 | |
2871 | InstructionDesc[OpGroupSMaxNonUniformAMD].operands.push(OperandScope, "'Execution'" ); |
2872 | InstructionDesc[OpGroupSMaxNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'" ); |
2873 | InstructionDesc[OpGroupSMaxNonUniformAMD].operands.push(OperandId, "X" ); |
2874 | |
2875 | InstructionDesc[OpGroupFMaxNonUniformAMD].operands.push(OperandScope, "'Execution'" ); |
2876 | InstructionDesc[OpGroupFMaxNonUniformAMD].operands.push(OperandGroupOperation, "'Operation'" ); |
2877 | InstructionDesc[OpGroupFMaxNonUniformAMD].operands.push(OperandId, "X" ); |
2878 | |
2879 | InstructionDesc[OpFragmentMaskFetchAMD].operands.push(OperandId, "'Image'" ); |
2880 | InstructionDesc[OpFragmentMaskFetchAMD].operands.push(OperandId, "'Coordinate'" ); |
2881 | |
2882 | InstructionDesc[OpFragmentFetchAMD].operands.push(OperandId, "'Image'" ); |
2883 | InstructionDesc[OpFragmentFetchAMD].operands.push(OperandId, "'Coordinate'" ); |
2884 | InstructionDesc[OpFragmentFetchAMD].operands.push(OperandId, "'Fragment Index'" ); |
2885 | |
2886 | InstructionDesc[OpGroupNonUniformPartitionNV].operands.push(OperandId, "X" ); |
2887 | |
2888 | InstructionDesc[OpTypeAccelerationStructureKHR].setResultAndType(true, false); |
2889 | |
2890 | InstructionDesc[OpTraceNV].operands.push(OperandId, "'Acceleration Structure'" ); |
2891 | InstructionDesc[OpTraceNV].operands.push(OperandId, "'Ray Flags'" ); |
2892 | InstructionDesc[OpTraceNV].operands.push(OperandId, "'Cull Mask'" ); |
2893 | InstructionDesc[OpTraceNV].operands.push(OperandId, "'SBT Record Offset'" ); |
2894 | InstructionDesc[OpTraceNV].operands.push(OperandId, "'SBT Record Stride'" ); |
2895 | InstructionDesc[OpTraceNV].operands.push(OperandId, "'Miss Index'" ); |
2896 | InstructionDesc[OpTraceNV].operands.push(OperandId, "'Ray Origin'" ); |
2897 | InstructionDesc[OpTraceNV].operands.push(OperandId, "'TMin'" ); |
2898 | InstructionDesc[OpTraceNV].operands.push(OperandId, "'Ray Direction'" ); |
2899 | InstructionDesc[OpTraceNV].operands.push(OperandId, "'TMax'" ); |
2900 | InstructionDesc[OpTraceNV].operands.push(OperandId, "'Payload'" ); |
2901 | InstructionDesc[OpTraceNV].setResultAndType(false, false); |
2902 | |
2903 | InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'Acceleration Structure'" ); |
2904 | InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'Ray Flags'" ); |
2905 | InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'Cull Mask'" ); |
2906 | InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'SBT Record Offset'" ); |
2907 | InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'SBT Record Stride'" ); |
2908 | InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'Miss Index'" ); |
2909 | InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'Ray Origin'" ); |
2910 | InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'TMin'" ); |
2911 | InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'Ray Direction'" ); |
2912 | InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'TMax'" ); |
2913 | InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'Time'" ); |
2914 | InstructionDesc[OpTraceRayMotionNV].operands.push(OperandId, "'Payload'" ); |
2915 | InstructionDesc[OpTraceRayMotionNV].setResultAndType(false, false); |
2916 | |
2917 | InstructionDesc[OpTraceRayKHR].operands.push(OperandId, "'Acceleration Structure'" ); |
2918 | InstructionDesc[OpTraceRayKHR].operands.push(OperandId, "'Ray Flags'" ); |
2919 | InstructionDesc[OpTraceRayKHR].operands.push(OperandId, "'Cull Mask'" ); |
2920 | InstructionDesc[OpTraceRayKHR].operands.push(OperandId, "'SBT Record Offset'" ); |
2921 | InstructionDesc[OpTraceRayKHR].operands.push(OperandId, "'SBT Record Stride'" ); |
2922 | InstructionDesc[OpTraceRayKHR].operands.push(OperandId, "'Miss Index'" ); |
2923 | InstructionDesc[OpTraceRayKHR].operands.push(OperandId, "'Ray Origin'" ); |
2924 | InstructionDesc[OpTraceRayKHR].operands.push(OperandId, "'TMin'" ); |
2925 | InstructionDesc[OpTraceRayKHR].operands.push(OperandId, "'Ray Direction'" ); |
2926 | InstructionDesc[OpTraceRayKHR].operands.push(OperandId, "'TMax'" ); |
2927 | InstructionDesc[OpTraceRayKHR].operands.push(OperandId, "'Payload'" ); |
2928 | InstructionDesc[OpTraceRayKHR].setResultAndType(false, false); |
2929 | |
2930 | InstructionDesc[OpReportIntersectionKHR].operands.push(OperandId, "'Hit Parameter'" ); |
2931 | InstructionDesc[OpReportIntersectionKHR].operands.push(OperandId, "'Hit Kind'" ); |
2932 | |
2933 | InstructionDesc[OpIgnoreIntersectionNV].setResultAndType(false, false); |
2934 | |
2935 | InstructionDesc[OpIgnoreIntersectionKHR].setResultAndType(false, false); |
2936 | |
2937 | InstructionDesc[OpTerminateRayNV].setResultAndType(false, false); |
2938 | |
2939 | InstructionDesc[OpTerminateRayKHR].setResultAndType(false, false); |
2940 | |
2941 | InstructionDesc[OpExecuteCallableNV].operands.push(OperandId, "SBT Record Index" ); |
2942 | InstructionDesc[OpExecuteCallableNV].operands.push(OperandId, "CallableData ID" ); |
2943 | InstructionDesc[OpExecuteCallableNV].setResultAndType(false, false); |
2944 | |
2945 | InstructionDesc[OpExecuteCallableKHR].operands.push(OperandId, "SBT Record Index" ); |
2946 | InstructionDesc[OpExecuteCallableKHR].operands.push(OperandId, "CallableData" ); |
2947 | InstructionDesc[OpExecuteCallableKHR].setResultAndType(false, false); |
2948 | |
2949 | InstructionDesc[OpConvertUToAccelerationStructureKHR].operands.push(OperandId, "Value" ); |
2950 | InstructionDesc[OpConvertUToAccelerationStructureKHR].setResultAndType(true, true); |
2951 | |
2952 | // Ray Query |
2953 | InstructionDesc[OpTypeAccelerationStructureKHR].setResultAndType(true, false); |
2954 | InstructionDesc[OpTypeRayQueryKHR].setResultAndType(true, false); |
2955 | |
2956 | InstructionDesc[OpRayQueryInitializeKHR].operands.push(OperandId, "'RayQuery'" ); |
2957 | InstructionDesc[OpRayQueryInitializeKHR].operands.push(OperandId, "'AccelerationS'" ); |
2958 | InstructionDesc[OpRayQueryInitializeKHR].operands.push(OperandId, "'RayFlags'" ); |
2959 | InstructionDesc[OpRayQueryInitializeKHR].operands.push(OperandId, "'CullMask'" ); |
2960 | InstructionDesc[OpRayQueryInitializeKHR].operands.push(OperandId, "'Origin'" ); |
2961 | InstructionDesc[OpRayQueryInitializeKHR].operands.push(OperandId, "'Tmin'" ); |
2962 | InstructionDesc[OpRayQueryInitializeKHR].operands.push(OperandId, "'Direction'" ); |
2963 | InstructionDesc[OpRayQueryInitializeKHR].operands.push(OperandId, "'Tmax'" ); |
2964 | InstructionDesc[OpRayQueryInitializeKHR].setResultAndType(false, false); |
2965 | |
2966 | InstructionDesc[OpRayQueryTerminateKHR].operands.push(OperandId, "'RayQuery'" ); |
2967 | InstructionDesc[OpRayQueryTerminateKHR].setResultAndType(false, false); |
2968 | |
2969 | InstructionDesc[OpRayQueryGenerateIntersectionKHR].operands.push(OperandId, "'RayQuery'" ); |
2970 | InstructionDesc[OpRayQueryGenerateIntersectionKHR].operands.push(OperandId, "'THit'" ); |
2971 | InstructionDesc[OpRayQueryGenerateIntersectionKHR].setResultAndType(false, false); |
2972 | |
2973 | InstructionDesc[OpRayQueryConfirmIntersectionKHR].operands.push(OperandId, "'RayQuery'" ); |
2974 | InstructionDesc[OpRayQueryConfirmIntersectionKHR].setResultAndType(false, false); |
2975 | |
2976 | InstructionDesc[OpRayQueryProceedKHR].operands.push(OperandId, "'RayQuery'" ); |
2977 | InstructionDesc[OpRayQueryProceedKHR].setResultAndType(true, true); |
2978 | |
2979 | InstructionDesc[OpRayQueryGetIntersectionTypeKHR].operands.push(OperandId, "'RayQuery'" ); |
2980 | InstructionDesc[OpRayQueryGetIntersectionTypeKHR].operands.push(OperandId, "'Committed'" ); |
2981 | InstructionDesc[OpRayQueryGetIntersectionTypeKHR].setResultAndType(true, true); |
2982 | |
2983 | InstructionDesc[OpRayQueryGetRayTMinKHR].operands.push(OperandId, "'RayQuery'" ); |
2984 | InstructionDesc[OpRayQueryGetRayTMinKHR].setResultAndType(true, true); |
2985 | |
2986 | InstructionDesc[OpRayQueryGetRayFlagsKHR].operands.push(OperandId, "'RayQuery'" ); |
2987 | InstructionDesc[OpRayQueryGetRayFlagsKHR].setResultAndType(true, true); |
2988 | |
2989 | InstructionDesc[OpRayQueryGetIntersectionTKHR].operands.push(OperandId, "'RayQuery'" ); |
2990 | InstructionDesc[OpRayQueryGetIntersectionTKHR].operands.push(OperandId, "'Committed'" ); |
2991 | InstructionDesc[OpRayQueryGetIntersectionTKHR].setResultAndType(true, true); |
2992 | |
2993 | InstructionDesc[OpRayQueryGetIntersectionInstanceCustomIndexKHR].operands.push(OperandId, "'RayQuery'" ); |
2994 | InstructionDesc[OpRayQueryGetIntersectionInstanceCustomIndexKHR].operands.push(OperandId, "'Committed'" ); |
2995 | InstructionDesc[OpRayQueryGetIntersectionInstanceCustomIndexKHR].setResultAndType(true, true); |
2996 | |
2997 | InstructionDesc[OpRayQueryGetIntersectionInstanceIdKHR].operands.push(OperandId, "'RayQuery'" ); |
2998 | InstructionDesc[OpRayQueryGetIntersectionInstanceIdKHR].operands.push(OperandId, "'Committed'" ); |
2999 | InstructionDesc[OpRayQueryGetIntersectionInstanceIdKHR].setResultAndType(true, true); |
3000 | |
3001 | InstructionDesc[OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR].operands.push(OperandId, "'RayQuery'" ); |
3002 | InstructionDesc[OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR].operands.push(OperandId, "'Committed'" ); |
3003 | InstructionDesc[OpRayQueryGetIntersectionInstanceShaderBindingTableRecordOffsetKHR].setResultAndType(true, true); |
3004 | |
3005 | InstructionDesc[OpRayQueryGetIntersectionGeometryIndexKHR].operands.push(OperandId, "'RayQuery'" ); |
3006 | InstructionDesc[OpRayQueryGetIntersectionGeometryIndexKHR].operands.push(OperandId, "'Committed'" ); |
3007 | InstructionDesc[OpRayQueryGetIntersectionGeometryIndexKHR].setResultAndType(true, true); |
3008 | |
3009 | InstructionDesc[OpRayQueryGetIntersectionPrimitiveIndexKHR].operands.push(OperandId, "'RayQuery'" ); |
3010 | InstructionDesc[OpRayQueryGetIntersectionPrimitiveIndexKHR].operands.push(OperandId, "'Committed'" ); |
3011 | InstructionDesc[OpRayQueryGetIntersectionPrimitiveIndexKHR].setResultAndType(true, true); |
3012 | |
3013 | InstructionDesc[OpRayQueryGetIntersectionBarycentricsKHR].operands.push(OperandId, "'RayQuery'" ); |
3014 | InstructionDesc[OpRayQueryGetIntersectionBarycentricsKHR].operands.push(OperandId, "'Committed'" ); |
3015 | InstructionDesc[OpRayQueryGetIntersectionBarycentricsKHR].setResultAndType(true, true); |
3016 | |
3017 | InstructionDesc[OpRayQueryGetIntersectionFrontFaceKHR].operands.push(OperandId, "'RayQuery'" ); |
3018 | InstructionDesc[OpRayQueryGetIntersectionFrontFaceKHR].operands.push(OperandId, "'Committed'" ); |
3019 | InstructionDesc[OpRayQueryGetIntersectionFrontFaceKHR].setResultAndType(true, true); |
3020 | |
3021 | InstructionDesc[OpRayQueryGetIntersectionCandidateAABBOpaqueKHR].operands.push(OperandId, "'RayQuery'" ); |
3022 | InstructionDesc[OpRayQueryGetIntersectionCandidateAABBOpaqueKHR].setResultAndType(true, true); |
3023 | |
3024 | InstructionDesc[OpRayQueryGetIntersectionObjectRayDirectionKHR].operands.push(OperandId, "'RayQuery'" ); |
3025 | InstructionDesc[OpRayQueryGetIntersectionObjectRayDirectionKHR].operands.push(OperandId, "'Committed'" ); |
3026 | InstructionDesc[OpRayQueryGetIntersectionObjectRayDirectionKHR].setResultAndType(true, true); |
3027 | |
3028 | InstructionDesc[OpRayQueryGetIntersectionObjectRayOriginKHR].operands.push(OperandId, "'RayQuery'" ); |
3029 | InstructionDesc[OpRayQueryGetIntersectionObjectRayOriginKHR].operands.push(OperandId, "'Committed'" ); |
3030 | InstructionDesc[OpRayQueryGetIntersectionObjectRayOriginKHR].setResultAndType(true, true); |
3031 | |
3032 | InstructionDesc[OpRayQueryGetWorldRayDirectionKHR].operands.push(OperandId, "'RayQuery'" ); |
3033 | InstructionDesc[OpRayQueryGetWorldRayDirectionKHR].setResultAndType(true, true); |
3034 | |
3035 | InstructionDesc[OpRayQueryGetWorldRayOriginKHR].operands.push(OperandId, "'RayQuery'" ); |
3036 | InstructionDesc[OpRayQueryGetWorldRayOriginKHR].setResultAndType(true, true); |
3037 | |
3038 | InstructionDesc[OpRayQueryGetIntersectionObjectToWorldKHR].operands.push(OperandId, "'RayQuery'" ); |
3039 | InstructionDesc[OpRayQueryGetIntersectionObjectToWorldKHR].operands.push(OperandId, "'Committed'" ); |
3040 | InstructionDesc[OpRayQueryGetIntersectionObjectToWorldKHR].setResultAndType(true, true); |
3041 | |
3042 | InstructionDesc[OpRayQueryGetIntersectionWorldToObjectKHR].operands.push(OperandId, "'RayQuery'" ); |
3043 | InstructionDesc[OpRayQueryGetIntersectionWorldToObjectKHR].operands.push(OperandId, "'Committed'" ); |
3044 | InstructionDesc[OpRayQueryGetIntersectionWorldToObjectKHR].setResultAndType(true, true); |
3045 | |
3046 | InstructionDesc[OpRayQueryGetIntersectionTriangleVertexPositionsKHR].operands.push(OperandId, "'RayQuery'" ); |
3047 | InstructionDesc[OpRayQueryGetIntersectionTriangleVertexPositionsKHR].operands.push(OperandId, "'Committed'" ); |
3048 | InstructionDesc[OpRayQueryGetIntersectionWorldToObjectKHR].setResultAndType(true, true); |
3049 | |
3050 | InstructionDesc[OpImageSampleFootprintNV].operands.push(OperandId, "'Sampled Image'" ); |
3051 | InstructionDesc[OpImageSampleFootprintNV].operands.push(OperandId, "'Coordinate'" ); |
3052 | InstructionDesc[OpImageSampleFootprintNV].operands.push(OperandId, "'Granularity'" ); |
3053 | InstructionDesc[OpImageSampleFootprintNV].operands.push(OperandId, "'Coarse'" ); |
3054 | InstructionDesc[OpImageSampleFootprintNV].operands.push(OperandImageOperands, "" , true); |
3055 | InstructionDesc[OpImageSampleFootprintNV].operands.push(OperandVariableIds, "" , true); |
3056 | |
3057 | InstructionDesc[OpWritePackedPrimitiveIndices4x8NV].operands.push(OperandId, "'Index Offset'" ); |
3058 | InstructionDesc[OpWritePackedPrimitiveIndices4x8NV].operands.push(OperandId, "'Packed Indices'" ); |
3059 | |
3060 | InstructionDesc[OpEmitMeshTasksEXT].operands.push(OperandId, "'groupCountX'" ); |
3061 | InstructionDesc[OpEmitMeshTasksEXT].operands.push(OperandId, "'groupCountY'" ); |
3062 | InstructionDesc[OpEmitMeshTasksEXT].operands.push(OperandId, "'groupCountZ'" ); |
3063 | InstructionDesc[OpEmitMeshTasksEXT].operands.push(OperandId, "'Payload'" ); |
3064 | InstructionDesc[OpEmitMeshTasksEXT].setResultAndType(false, false); |
3065 | |
3066 | InstructionDesc[OpSetMeshOutputsEXT].operands.push(OperandId, "'vertexCount'" ); |
3067 | InstructionDesc[OpSetMeshOutputsEXT].operands.push(OperandId, "'primitiveCount'" ); |
3068 | InstructionDesc[OpSetMeshOutputsEXT].setResultAndType(false, false); |
3069 | |
3070 | |
3071 | InstructionDesc[OpTypeCooperativeMatrixNV].operands.push(OperandId, "'Component Type'" ); |
3072 | InstructionDesc[OpTypeCooperativeMatrixNV].operands.push(OperandId, "'Scope'" ); |
3073 | InstructionDesc[OpTypeCooperativeMatrixNV].operands.push(OperandId, "'Rows'" ); |
3074 | InstructionDesc[OpTypeCooperativeMatrixNV].operands.push(OperandId, "'Columns'" ); |
3075 | |
3076 | InstructionDesc[OpCooperativeMatrixLoadNV].operands.push(OperandId, "'Pointer'" ); |
3077 | InstructionDesc[OpCooperativeMatrixLoadNV].operands.push(OperandId, "'Stride'" ); |
3078 | InstructionDesc[OpCooperativeMatrixLoadNV].operands.push(OperandId, "'Column Major'" ); |
3079 | InstructionDesc[OpCooperativeMatrixLoadNV].operands.push(OperandMemoryAccess, "'Memory Access'" ); |
3080 | InstructionDesc[OpCooperativeMatrixLoadNV].operands.push(OperandLiteralNumber, "" , true); |
3081 | InstructionDesc[OpCooperativeMatrixLoadNV].operands.push(OperandId, "" , true); |
3082 | |
3083 | InstructionDesc[OpCooperativeMatrixStoreNV].operands.push(OperandId, "'Pointer'" ); |
3084 | InstructionDesc[OpCooperativeMatrixStoreNV].operands.push(OperandId, "'Object'" ); |
3085 | InstructionDesc[OpCooperativeMatrixStoreNV].operands.push(OperandId, "'Stride'" ); |
3086 | InstructionDesc[OpCooperativeMatrixStoreNV].operands.push(OperandId, "'Column Major'" ); |
3087 | InstructionDesc[OpCooperativeMatrixStoreNV].operands.push(OperandMemoryAccess, "'Memory Access'" ); |
3088 | InstructionDesc[OpCooperativeMatrixStoreNV].operands.push(OperandLiteralNumber, "" , true); |
3089 | InstructionDesc[OpCooperativeMatrixStoreNV].operands.push(OperandId, "" , true); |
3090 | |
3091 | InstructionDesc[OpCooperativeMatrixMulAddNV].operands.push(OperandId, "'A'" ); |
3092 | InstructionDesc[OpCooperativeMatrixMulAddNV].operands.push(OperandId, "'B'" ); |
3093 | InstructionDesc[OpCooperativeMatrixMulAddNV].operands.push(OperandId, "'C'" ); |
3094 | |
3095 | InstructionDesc[OpCooperativeMatrixLengthNV].operands.push(OperandId, "'Type'" ); |
3096 | |
3097 | InstructionDesc[OpDemoteToHelperInvocationEXT].setResultAndType(false, false); |
3098 | |
3099 | InstructionDesc[OpReadClockKHR].operands.push(OperandScope, "'Scope'" ); |
3100 | |
3101 | InstructionDesc[OpTypeHitObjectNV].setResultAndType(true, false); |
3102 | |
3103 | InstructionDesc[OpHitObjectGetShaderRecordBufferHandleNV].operands.push(OperandId, "'HitObject'" ); |
3104 | InstructionDesc[OpHitObjectGetShaderRecordBufferHandleNV].setResultAndType(true, true); |
3105 | |
3106 | InstructionDesc[OpReorderThreadWithHintNV].operands.push(OperandId, "'Hint'" ); |
3107 | InstructionDesc[OpReorderThreadWithHintNV].operands.push(OperandId, "'Bits'" ); |
3108 | InstructionDesc[OpReorderThreadWithHintNV].setResultAndType(false, false); |
3109 | |
3110 | InstructionDesc[OpReorderThreadWithHitObjectNV].operands.push(OperandId, "'HitObject'" ); |
3111 | InstructionDesc[OpReorderThreadWithHitObjectNV].operands.push(OperandId, "'Hint'" ); |
3112 | InstructionDesc[OpReorderThreadWithHitObjectNV].operands.push(OperandId, "'Bits'" ); |
3113 | InstructionDesc[OpReorderThreadWithHitObjectNV].setResultAndType(false, false); |
3114 | |
3115 | InstructionDesc[OpHitObjectGetCurrentTimeNV].operands.push(OperandId, "'HitObject'" ); |
3116 | InstructionDesc[OpHitObjectGetCurrentTimeNV].setResultAndType(true, true); |
3117 | |
3118 | InstructionDesc[OpHitObjectGetHitKindNV].operands.push(OperandId, "'HitObject'" ); |
3119 | InstructionDesc[OpHitObjectGetHitKindNV].setResultAndType(true, true); |
3120 | |
3121 | InstructionDesc[OpHitObjectGetPrimitiveIndexNV].operands.push(OperandId, "'HitObject'" ); |
3122 | InstructionDesc[OpHitObjectGetPrimitiveIndexNV].setResultAndType(true, true); |
3123 | |
3124 | InstructionDesc[OpHitObjectGetGeometryIndexNV].operands.push(OperandId, "'HitObject'" ); |
3125 | InstructionDesc[OpHitObjectGetGeometryIndexNV].setResultAndType(true, true); |
3126 | |
3127 | InstructionDesc[OpHitObjectGetInstanceIdNV].operands.push(OperandId, "'HitObject'" ); |
3128 | InstructionDesc[OpHitObjectGetInstanceIdNV].setResultAndType(true, true); |
3129 | |
3130 | InstructionDesc[OpHitObjectGetInstanceCustomIndexNV].operands.push(OperandId, "'HitObject'" ); |
3131 | InstructionDesc[OpHitObjectGetInstanceCustomIndexNV].setResultAndType(true, true); |
3132 | |
3133 | InstructionDesc[OpHitObjectGetObjectRayDirectionNV].operands.push(OperandId, "'HitObject'" ); |
3134 | InstructionDesc[OpHitObjectGetObjectRayDirectionNV].setResultAndType(true, true); |
3135 | |
3136 | InstructionDesc[OpHitObjectGetObjectRayOriginNV].operands.push(OperandId, "'HitObject'" ); |
3137 | InstructionDesc[OpHitObjectGetObjectRayOriginNV].setResultAndType(true, true); |
3138 | |
3139 | InstructionDesc[OpHitObjectGetWorldRayDirectionNV].operands.push(OperandId, "'HitObject'" ); |
3140 | InstructionDesc[OpHitObjectGetWorldRayDirectionNV].setResultAndType(true, true); |
3141 | |
3142 | InstructionDesc[OpHitObjectGetWorldRayOriginNV].operands.push(OperandId, "'HitObject'" ); |
3143 | InstructionDesc[OpHitObjectGetWorldRayOriginNV].setResultAndType(true, true); |
3144 | |
3145 | InstructionDesc[OpHitObjectGetWorldToObjectNV].operands.push(OperandId, "'HitObject'" ); |
3146 | InstructionDesc[OpHitObjectGetWorldToObjectNV].setResultAndType(true, true); |
3147 | |
3148 | InstructionDesc[OpHitObjectGetObjectToWorldNV].operands.push(OperandId, "'HitObject'" ); |
3149 | InstructionDesc[OpHitObjectGetObjectToWorldNV].setResultAndType(true, true); |
3150 | |
3151 | InstructionDesc[OpHitObjectGetRayTMaxNV].operands.push(OperandId, "'HitObject'" ); |
3152 | InstructionDesc[OpHitObjectGetRayTMaxNV].setResultAndType(true, true); |
3153 | |
3154 | InstructionDesc[OpHitObjectGetRayTMinNV].operands.push(OperandId, "'HitObject'" ); |
3155 | InstructionDesc[OpHitObjectGetRayTMinNV].setResultAndType(true, true); |
3156 | |
3157 | InstructionDesc[OpHitObjectGetShaderBindingTableRecordIndexNV].operands.push(OperandId, "'HitObject'" ); |
3158 | InstructionDesc[OpHitObjectGetShaderBindingTableRecordIndexNV].setResultAndType(true, true); |
3159 | |
3160 | InstructionDesc[OpHitObjectIsEmptyNV].operands.push(OperandId, "'HitObject'" ); |
3161 | InstructionDesc[OpHitObjectIsEmptyNV].setResultAndType(true, true); |
3162 | |
3163 | InstructionDesc[OpHitObjectIsHitNV].operands.push(OperandId, "'HitObject'" ); |
3164 | InstructionDesc[OpHitObjectIsHitNV].setResultAndType(true, true); |
3165 | |
3166 | InstructionDesc[OpHitObjectIsMissNV].operands.push(OperandId, "'HitObject'" ); |
3167 | InstructionDesc[OpHitObjectIsMissNV].setResultAndType(true, true); |
3168 | |
3169 | InstructionDesc[OpHitObjectGetAttributesNV].operands.push(OperandId, "'HitObject'" ); |
3170 | InstructionDesc[OpHitObjectGetAttributesNV].operands.push(OperandId, "'HitObjectAttribute'" ); |
3171 | InstructionDesc[OpHitObjectGetAttributesNV].setResultAndType(false, false); |
3172 | |
3173 | InstructionDesc[OpHitObjectExecuteShaderNV].operands.push(OperandId, "'HitObject'" ); |
3174 | InstructionDesc[OpHitObjectExecuteShaderNV].operands.push(OperandId, "'Payload'" ); |
3175 | InstructionDesc[OpHitObjectExecuteShaderNV].setResultAndType(false, false); |
3176 | |
3177 | InstructionDesc[OpHitObjectRecordHitNV].operands.push(OperandId, "'HitObject'" ); |
3178 | InstructionDesc[OpHitObjectRecordHitNV].operands.push(OperandId, "'Acceleration Structure'" ); |
3179 | InstructionDesc[OpHitObjectRecordHitNV].operands.push(OperandId, "'InstanceId'" ); |
3180 | InstructionDesc[OpHitObjectRecordHitNV].operands.push(OperandId, "'PrimitiveId'" ); |
3181 | InstructionDesc[OpHitObjectRecordHitNV].operands.push(OperandId, "'GeometryIndex'" ); |
3182 | InstructionDesc[OpHitObjectRecordHitNV].operands.push(OperandId, "'HitKind'" ); |
3183 | InstructionDesc[OpHitObjectRecordHitNV].operands.push(OperandId, "'SBT Record Offset'" ); |
3184 | InstructionDesc[OpHitObjectRecordHitNV].operands.push(OperandId, "'SBT Record Stride'" ); |
3185 | InstructionDesc[OpHitObjectRecordHitNV].operands.push(OperandId, "'Origin'" ); |
3186 | InstructionDesc[OpHitObjectRecordHitNV].operands.push(OperandId, "'TMin'" ); |
3187 | InstructionDesc[OpHitObjectRecordHitNV].operands.push(OperandId, "'Direction'" ); |
3188 | InstructionDesc[OpHitObjectRecordHitNV].operands.push(OperandId, "'TMax'" ); |
3189 | InstructionDesc[OpHitObjectRecordHitNV].operands.push(OperandId, "'HitObject Attribute'" ); |
3190 | InstructionDesc[OpHitObjectRecordHitNV].setResultAndType(false, false); |
3191 | |
3192 | InstructionDesc[OpHitObjectRecordHitMotionNV].operands.push(OperandId, "'HitObject'" ); |
3193 | InstructionDesc[OpHitObjectRecordHitMotionNV].operands.push(OperandId, "'Acceleration Structure'" ); |
3194 | InstructionDesc[OpHitObjectRecordHitMotionNV].operands.push(OperandId, "'InstanceId'" ); |
3195 | InstructionDesc[OpHitObjectRecordHitMotionNV].operands.push(OperandId, "'PrimitiveId'" ); |
3196 | InstructionDesc[OpHitObjectRecordHitMotionNV].operands.push(OperandId, "'GeometryIndex'" ); |
3197 | InstructionDesc[OpHitObjectRecordHitMotionNV].operands.push(OperandId, "'HitKind'" ); |
3198 | InstructionDesc[OpHitObjectRecordHitMotionNV].operands.push(OperandId, "'SBT Record Offset'" ); |
3199 | InstructionDesc[OpHitObjectRecordHitMotionNV].operands.push(OperandId, "'SBT Record Stride'" ); |
3200 | InstructionDesc[OpHitObjectRecordHitMotionNV].operands.push(OperandId, "'Origin'" ); |
3201 | InstructionDesc[OpHitObjectRecordHitMotionNV].operands.push(OperandId, "'TMin'" ); |
3202 | InstructionDesc[OpHitObjectRecordHitMotionNV].operands.push(OperandId, "'Direction'" ); |
3203 | InstructionDesc[OpHitObjectRecordHitMotionNV].operands.push(OperandId, "'TMax'" ); |
3204 | InstructionDesc[OpHitObjectRecordHitMotionNV].operands.push(OperandId, "'Current Time'" ); |
3205 | InstructionDesc[OpHitObjectRecordHitMotionNV].operands.push(OperandId, "'HitObject Attribute'" ); |
3206 | InstructionDesc[OpHitObjectRecordHitMotionNV].setResultAndType(false, false); |
3207 | |
3208 | InstructionDesc[OpHitObjectRecordHitWithIndexNV].operands.push(OperandId, "'HitObject'" ); |
3209 | InstructionDesc[OpHitObjectRecordHitWithIndexNV].operands.push(OperandId, "'Acceleration Structure'" ); |
3210 | InstructionDesc[OpHitObjectRecordHitWithIndexNV].operands.push(OperandId, "'InstanceId'" ); |
3211 | InstructionDesc[OpHitObjectRecordHitWithIndexNV].operands.push(OperandId, "'PrimitiveId'" ); |
3212 | InstructionDesc[OpHitObjectRecordHitWithIndexNV].operands.push(OperandId, "'GeometryIndex'" ); |
3213 | InstructionDesc[OpHitObjectRecordHitWithIndexNV].operands.push(OperandId, "'HitKind'" ); |
3214 | InstructionDesc[OpHitObjectRecordHitWithIndexNV].operands.push(OperandId, "'SBT Record Index'" ); |
3215 | InstructionDesc[OpHitObjectRecordHitWithIndexNV].operands.push(OperandId, "'Origin'" ); |
3216 | InstructionDesc[OpHitObjectRecordHitWithIndexNV].operands.push(OperandId, "'TMin'" ); |
3217 | InstructionDesc[OpHitObjectRecordHitWithIndexNV].operands.push(OperandId, "'Direction'" ); |
3218 | InstructionDesc[OpHitObjectRecordHitWithIndexNV].operands.push(OperandId, "'TMax'" ); |
3219 | InstructionDesc[OpHitObjectRecordHitWithIndexNV].operands.push(OperandId, "'HitObject Attribute'" ); |
3220 | InstructionDesc[OpHitObjectRecordHitWithIndexNV].setResultAndType(false, false); |
3221 | |
3222 | InstructionDesc[OpHitObjectRecordHitWithIndexMotionNV].operands.push(OperandId, "'HitObject'" ); |
3223 | InstructionDesc[OpHitObjectRecordHitWithIndexMotionNV].operands.push(OperandId, "'Acceleration Structure'" ); |
3224 | InstructionDesc[OpHitObjectRecordHitWithIndexMotionNV].operands.push(OperandId, "'InstanceId'" ); |
3225 | InstructionDesc[OpHitObjectRecordHitWithIndexMotionNV].operands.push(OperandId, "'PrimitiveId'" ); |
3226 | InstructionDesc[OpHitObjectRecordHitWithIndexMotionNV].operands.push(OperandId, "'GeometryIndex'" ); |
3227 | InstructionDesc[OpHitObjectRecordHitWithIndexMotionNV].operands.push(OperandId, "'HitKind'" ); |
3228 | InstructionDesc[OpHitObjectRecordHitWithIndexMotionNV].operands.push(OperandId, "'SBT Record Index'" ); |
3229 | InstructionDesc[OpHitObjectRecordHitWithIndexMotionNV].operands.push(OperandId, "'Origin'" ); |
3230 | InstructionDesc[OpHitObjectRecordHitWithIndexMotionNV].operands.push(OperandId, "'TMin'" ); |
3231 | InstructionDesc[OpHitObjectRecordHitWithIndexMotionNV].operands.push(OperandId, "'Direction'" ); |
3232 | InstructionDesc[OpHitObjectRecordHitWithIndexMotionNV].operands.push(OperandId, "'TMax'" ); |
3233 | InstructionDesc[OpHitObjectRecordHitWithIndexMotionNV].operands.push(OperandId, "'Current Time'" ); |
3234 | InstructionDesc[OpHitObjectRecordHitWithIndexMotionNV].operands.push(OperandId, "'HitObject Attribute'" ); |
3235 | InstructionDesc[OpHitObjectRecordHitWithIndexMotionNV].setResultAndType(false, false); |
3236 | |
3237 | InstructionDesc[OpHitObjectRecordMissNV].operands.push(OperandId, "'HitObject'" ); |
3238 | InstructionDesc[OpHitObjectRecordMissNV].operands.push(OperandId, "'SBT Index'" ); |
3239 | InstructionDesc[OpHitObjectRecordMissNV].operands.push(OperandId, "'Origin'" ); |
3240 | InstructionDesc[OpHitObjectRecordMissNV].operands.push(OperandId, "'TMin'" ); |
3241 | InstructionDesc[OpHitObjectRecordMissNV].operands.push(OperandId, "'Direction'" ); |
3242 | InstructionDesc[OpHitObjectRecordMissNV].operands.push(OperandId, "'TMax'" ); |
3243 | InstructionDesc[OpHitObjectRecordMissNV].setResultAndType(false, false); |
3244 | |
3245 | InstructionDesc[OpHitObjectRecordMissMotionNV].operands.push(OperandId, "'HitObject'" ); |
3246 | InstructionDesc[OpHitObjectRecordMissMotionNV].operands.push(OperandId, "'SBT Index'" ); |
3247 | InstructionDesc[OpHitObjectRecordMissMotionNV].operands.push(OperandId, "'Origin'" ); |
3248 | InstructionDesc[OpHitObjectRecordMissMotionNV].operands.push(OperandId, "'TMin'" ); |
3249 | InstructionDesc[OpHitObjectRecordMissMotionNV].operands.push(OperandId, "'Direction'" ); |
3250 | InstructionDesc[OpHitObjectRecordMissMotionNV].operands.push(OperandId, "'TMax'" ); |
3251 | InstructionDesc[OpHitObjectRecordMissMotionNV].operands.push(OperandId, "'Current Time'" ); |
3252 | InstructionDesc[OpHitObjectRecordMissMotionNV].setResultAndType(false, false); |
3253 | |
3254 | InstructionDesc[OpHitObjectRecordEmptyNV].operands.push(OperandId, "'HitObject'" ); |
3255 | InstructionDesc[OpHitObjectRecordEmptyNV].setResultAndType(false, false); |
3256 | |
3257 | InstructionDesc[OpHitObjectTraceRayNV].operands.push(OperandId, "'HitObject'" ); |
3258 | InstructionDesc[OpHitObjectTraceRayNV].operands.push(OperandId, "'Acceleration Structure'" ); |
3259 | InstructionDesc[OpHitObjectTraceRayNV].operands.push(OperandId, "'RayFlags'" ); |
3260 | InstructionDesc[OpHitObjectTraceRayNV].operands.push(OperandId, "'Cullmask'" ); |
3261 | InstructionDesc[OpHitObjectTraceRayNV].operands.push(OperandId, "'SBT Record Offset'" ); |
3262 | InstructionDesc[OpHitObjectTraceRayNV].operands.push(OperandId, "'SBT Record Stride'" ); |
3263 | InstructionDesc[OpHitObjectTraceRayNV].operands.push(OperandId, "'Miss Index'" ); |
3264 | InstructionDesc[OpHitObjectTraceRayNV].operands.push(OperandId, "'Origin'" ); |
3265 | InstructionDesc[OpHitObjectTraceRayNV].operands.push(OperandId, "'TMin'" ); |
3266 | InstructionDesc[OpHitObjectTraceRayNV].operands.push(OperandId, "'Direction'" ); |
3267 | InstructionDesc[OpHitObjectTraceRayNV].operands.push(OperandId, "'TMax'" ); |
3268 | InstructionDesc[OpHitObjectTraceRayNV].operands.push(OperandId, "'Payload'" ); |
3269 | InstructionDesc[OpHitObjectTraceRayNV].setResultAndType(false, false); |
3270 | |
3271 | InstructionDesc[OpHitObjectTraceRayMotionNV].operands.push(OperandId, "'HitObject'" ); |
3272 | InstructionDesc[OpHitObjectTraceRayMotionNV].operands.push(OperandId, "'Acceleration Structure'" ); |
3273 | InstructionDesc[OpHitObjectTraceRayMotionNV].operands.push(OperandId, "'RayFlags'" ); |
3274 | InstructionDesc[OpHitObjectTraceRayMotionNV].operands.push(OperandId, "'Cullmask'" ); |
3275 | InstructionDesc[OpHitObjectTraceRayMotionNV].operands.push(OperandId, "'SBT Record Offset'" ); |
3276 | InstructionDesc[OpHitObjectTraceRayMotionNV].operands.push(OperandId, "'SBT Record Stride'" ); |
3277 | InstructionDesc[OpHitObjectTraceRayMotionNV].operands.push(OperandId, "'Miss Index'" ); |
3278 | InstructionDesc[OpHitObjectTraceRayMotionNV].operands.push(OperandId, "'Origin'" ); |
3279 | InstructionDesc[OpHitObjectTraceRayMotionNV].operands.push(OperandId, "'TMin'" ); |
3280 | InstructionDesc[OpHitObjectTraceRayMotionNV].operands.push(OperandId, "'Direction'" ); |
3281 | InstructionDesc[OpHitObjectTraceRayMotionNV].operands.push(OperandId, "'TMax'" ); |
3282 | InstructionDesc[OpHitObjectTraceRayMotionNV].operands.push(OperandId, "'Time'" ); |
3283 | InstructionDesc[OpHitObjectTraceRayMotionNV].operands.push(OperandId, "'Payload'" ); |
3284 | InstructionDesc[OpHitObjectTraceRayMotionNV].setResultAndType(false, false); |
3285 | |
3286 | InstructionDesc[OpColorAttachmentReadEXT].operands.push(OperandId, "'Attachment'" ); |
3287 | InstructionDesc[OpColorAttachmentReadEXT].operands.push(OperandId, "'Sample'" , true); |
3288 | InstructionDesc[OpStencilAttachmentReadEXT].operands.push(OperandId, "'Sample'" , true); |
3289 | InstructionDesc[OpDepthAttachmentReadEXT].operands.push(OperandId, "'Sample'" , true); |
3290 | } |
3291 | |
3292 | }; // end spv namespace |
3293 | |