nir/spirv: Add string lookup tables for a couple of SPIR-V enums
Signed-off-by: Jason Ekstrand <jason@jlekstrand.net> Cc: "12.0" <mesa-stable@lists.freedesktop.org>
This commit is contained in:
parent
5a1e56f344
commit
2e46a5d155
|
@ -248,6 +248,8 @@ SPIRV_FILES = \
|
|||
spirv/GLSL.std.450.h \
|
||||
spirv/nir_spirv.h \
|
||||
spirv/spirv.h \
|
||||
spirv/spirv_info.h \
|
||||
spirv/spirv_info.c \
|
||||
spirv/spirv_to_nir.c \
|
||||
spirv/vtn_alu.c \
|
||||
spirv/vtn_cfg.c \
|
||||
|
|
|
@ -0,0 +1,150 @@
|
|||
/*
|
||||
* Copyright © 2016 Intel Corporation
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
* to deal in the Software without restriction, including without limitation
|
||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
* and/or sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice (including the next
|
||||
* paragraph) shall be included in all copies or substantial portions of the
|
||||
* Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
* IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include "spirv_info.h"
|
||||
#include "util/macros.h"
|
||||
|
||||
#define CAPABILITY(cap) [SpvCapability##cap] = #cap
|
||||
static const char * const capability_to_string[] = {
|
||||
CAPABILITY(Matrix),
|
||||
CAPABILITY(Shader),
|
||||
CAPABILITY(Geometry),
|
||||
CAPABILITY(Tessellation),
|
||||
CAPABILITY(Addresses),
|
||||
CAPABILITY(Linkage),
|
||||
CAPABILITY(Kernel),
|
||||
CAPABILITY(Vector16),
|
||||
CAPABILITY(Float16Buffer),
|
||||
CAPABILITY(Float16),
|
||||
CAPABILITY(Float64),
|
||||
CAPABILITY(Int64),
|
||||
CAPABILITY(Int64Atomics),
|
||||
CAPABILITY(ImageBasic),
|
||||
CAPABILITY(ImageReadWrite),
|
||||
CAPABILITY(ImageMipmap),
|
||||
CAPABILITY(Pipes),
|
||||
CAPABILITY(Groups),
|
||||
CAPABILITY(DeviceEnqueue),
|
||||
CAPABILITY(LiteralSampler),
|
||||
CAPABILITY(AtomicStorage),
|
||||
CAPABILITY(Int16),
|
||||
CAPABILITY(TessellationPointSize),
|
||||
CAPABILITY(GeometryPointSize),
|
||||
CAPABILITY(ImageGatherExtended),
|
||||
CAPABILITY(StorageImageMultisample),
|
||||
CAPABILITY(UniformBufferArrayDynamicIndexing),
|
||||
CAPABILITY(SampledImageArrayDynamicIndexing),
|
||||
CAPABILITY(StorageBufferArrayDynamicIndexing),
|
||||
CAPABILITY(StorageImageArrayDynamicIndexing),
|
||||
CAPABILITY(ClipDistance),
|
||||
CAPABILITY(CullDistance),
|
||||
CAPABILITY(ImageCubeArray),
|
||||
CAPABILITY(SampleRateShading),
|
||||
CAPABILITY(ImageRect),
|
||||
CAPABILITY(SampledRect),
|
||||
CAPABILITY(GenericPointer),
|
||||
CAPABILITY(Int8),
|
||||
CAPABILITY(InputAttachment),
|
||||
CAPABILITY(SparseResidency),
|
||||
CAPABILITY(MinLod),
|
||||
CAPABILITY(Sampled1D),
|
||||
CAPABILITY(Image1D),
|
||||
CAPABILITY(SampledCubeArray),
|
||||
CAPABILITY(SampledBuffer),
|
||||
CAPABILITY(ImageBuffer),
|
||||
CAPABILITY(ImageMSArray),
|
||||
CAPABILITY(StorageImageExtendedFormats),
|
||||
CAPABILITY(ImageQuery),
|
||||
CAPABILITY(DerivativeControl),
|
||||
CAPABILITY(InterpolationFunction),
|
||||
CAPABILITY(TransformFeedback),
|
||||
CAPABILITY(GeometryStreams),
|
||||
CAPABILITY(StorageImageReadWithoutFormat),
|
||||
CAPABILITY(StorageImageWriteWithoutFormat),
|
||||
CAPABILITY(MultiViewport),
|
||||
};
|
||||
|
||||
const char *
|
||||
spirv_capability_to_string(SpvCapability cap)
|
||||
{
|
||||
if (cap < ARRAY_SIZE(capability_to_string))
|
||||
return capability_to_string[cap];
|
||||
else
|
||||
return "unknown";
|
||||
}
|
||||
|
||||
#define DECORATION(dec) [SpvDecoration##dec] = #dec
|
||||
static const char * const decoration_to_string[] = {
|
||||
DECORATION(RelaxedPrecision),
|
||||
DECORATION(SpecId),
|
||||
DECORATION(Block),
|
||||
DECORATION(BufferBlock),
|
||||
DECORATION(RowMajor),
|
||||
DECORATION(ColMajor),
|
||||
DECORATION(ArrayStride),
|
||||
DECORATION(MatrixStride),
|
||||
DECORATION(GLSLShared),
|
||||
DECORATION(GLSLPacked),
|
||||
DECORATION(CPacked),
|
||||
DECORATION(BuiltIn),
|
||||
DECORATION(NoPerspective),
|
||||
DECORATION(Flat),
|
||||
DECORATION(Patch),
|
||||
DECORATION(Centroid),
|
||||
DECORATION(Sample),
|
||||
DECORATION(Invariant),
|
||||
DECORATION(Restrict),
|
||||
DECORATION(Aliased),
|
||||
DECORATION(Volatile),
|
||||
DECORATION(Constant),
|
||||
DECORATION(Coherent),
|
||||
DECORATION(NonWritable),
|
||||
DECORATION(NonReadable),
|
||||
DECORATION(Uniform),
|
||||
DECORATION(SaturatedConversion),
|
||||
DECORATION(Stream),
|
||||
DECORATION(Location),
|
||||
DECORATION(Component),
|
||||
DECORATION(Index),
|
||||
DECORATION(Binding),
|
||||
DECORATION(DescriptorSet),
|
||||
DECORATION(Offset),
|
||||
DECORATION(XfbBuffer),
|
||||
DECORATION(XfbStride),
|
||||
DECORATION(FuncParamAttr),
|
||||
DECORATION(FPRoundingMode),
|
||||
DECORATION(FPFastMathMode),
|
||||
DECORATION(LinkageAttributes),
|
||||
DECORATION(NoContraction),
|
||||
DECORATION(InputAttachmentIndex),
|
||||
DECORATION(Alignment),
|
||||
};
|
||||
|
||||
const char *
|
||||
spirv_decoration_to_string(SpvDecoration dec)
|
||||
{
|
||||
if (dec < ARRAY_SIZE(decoration_to_string))
|
||||
return decoration_to_string[dec];
|
||||
else
|
||||
return "unknown";
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
/*
|
||||
* Copyright © 2016 Intel Corporation
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a
|
||||
* copy of this software and associated documentation files (the "Software"),
|
||||
* to deal in the Software without restriction, including without limitation
|
||||
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
* and/or sell copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice (including the next
|
||||
* paragraph) shall be included in all copies or substantial portions of the
|
||||
* Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||
* IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#include "spirv.h"
|
||||
|
||||
const char *spirv_capability_to_string(SpvCapability cap);
|
||||
const char *spirv_decoration_to_string(SpvDecoration dec);
|
Loading…
Reference in New Issue