mirror of
https://git.naxdy.org/Mirror/Ryujinx.git
synced 2025-01-05 23:43:04 +00:00
1121 lines
29 KiB
C#
1121 lines
29 KiB
C#
|
namespace Ryujinx.Graphics.Gal.Shader.SPIRV
|
||
|
{
|
||
|
public class BinaryForm
|
||
|
{
|
||
|
public const uint MagicNumber = 0x07230203;
|
||
|
|
||
|
public const uint VersionNumber = 0x00010000;
|
||
|
|
||
|
// I don't think Khronos would give us an Id
|
||
|
public const uint GeneratorMagicNumber = 0;
|
||
|
}
|
||
|
|
||
|
// https://github.com/KhronosGroup/SPIRV-Headers/blob/master/include/spirv/unified1/spirv.h
|
||
|
public enum SourceLanguage
|
||
|
{
|
||
|
Unknown = 0,
|
||
|
ESSL = 1,
|
||
|
GLSL = 2,
|
||
|
OpenCL_C = 3,
|
||
|
OpenCL_CPP = 4,
|
||
|
HLSL = 5,
|
||
|
Max = 0x7fffffff,
|
||
|
}
|
||
|
|
||
|
public enum ExecutionModel
|
||
|
{
|
||
|
Vertex = 0,
|
||
|
TessellationControl = 1,
|
||
|
TessellationEvaluation = 2,
|
||
|
Geometry = 3,
|
||
|
Fragment = 4,
|
||
|
GLCompute = 5,
|
||
|
Kernel = 6,
|
||
|
Max = 0x7fffffff,
|
||
|
}
|
||
|
|
||
|
public enum AddressingModel
|
||
|
{
|
||
|
Logical = 0,
|
||
|
Physical32 = 1,
|
||
|
Physical64 = 2,
|
||
|
Max = 0x7fffffff,
|
||
|
}
|
||
|
|
||
|
public enum MemoryModel
|
||
|
{
|
||
|
Simple = 0,
|
||
|
GLSL450 = 1,
|
||
|
OpenCL = 2,
|
||
|
Max = 0x7fffffff,
|
||
|
}
|
||
|
|
||
|
public enum ExecutionMode
|
||
|
{
|
||
|
Invocations = 0,
|
||
|
SpacingEqual = 1,
|
||
|
SpacingFractionalEven = 2,
|
||
|
SpacingFractionalOdd = 3,
|
||
|
VertexOrderCw = 4,
|
||
|
VertexOrderCcw = 5,
|
||
|
PixelCenterInteger = 6,
|
||
|
OriginUpperLeft = 7,
|
||
|
OriginLowerLeft = 8,
|
||
|
EarlyFragmentTests = 9,
|
||
|
PointMode = 10,
|
||
|
Xfb = 11,
|
||
|
DepthReplacing = 12,
|
||
|
DepthGreater = 14,
|
||
|
DepthLess = 15,
|
||
|
DepthUnchanged = 16,
|
||
|
LocalSize = 17,
|
||
|
LocalSizeHint = 18,
|
||
|
InputPoints = 19,
|
||
|
InputLines = 20,
|
||
|
InputLinesAdjacency = 21,
|
||
|
Triangles = 22,
|
||
|
InputTrianglesAdjacency = 23,
|
||
|
Quads = 24,
|
||
|
Isolines = 25,
|
||
|
OutputVertices = 26,
|
||
|
OutputPoints = 27,
|
||
|
OutputLineStrip = 28,
|
||
|
OutputTriangleStrip = 29,
|
||
|
VecTypeHint = 30,
|
||
|
ContractionOff = 31,
|
||
|
Initializer = 33,
|
||
|
Finalizer = 34,
|
||
|
SubgroupSize = 35,
|
||
|
SubgroupsPerWorkgroup = 36,
|
||
|
SubgroupsPerWorkgroupId = 37,
|
||
|
LocalSizeId = 38,
|
||
|
LocalSizeHintId = 39,
|
||
|
PostDepthCoverage = 4446,
|
||
|
StencilRefReplacingEXT = 5027,
|
||
|
Max = 0x7fffffff,
|
||
|
}
|
||
|
|
||
|
public enum StorageClass
|
||
|
{
|
||
|
UniformConstant = 0,
|
||
|
Input = 1,
|
||
|
Uniform = 2,
|
||
|
Output = 3,
|
||
|
Workgroup = 4,
|
||
|
CrossWorkgroup = 5,
|
||
|
Private = 6,
|
||
|
Function = 7,
|
||
|
Generic = 8,
|
||
|
PushConstant = 9,
|
||
|
AtomicCounter = 10,
|
||
|
Image = 11,
|
||
|
StorageBuffer = 12,
|
||
|
Max = 0x7fffffff,
|
||
|
}
|
||
|
|
||
|
public enum Dim
|
||
|
{
|
||
|
Dim1D = 0,
|
||
|
Dim2D = 1,
|
||
|
Dim3D = 2,
|
||
|
Cube = 3,
|
||
|
Rect = 4,
|
||
|
Buffer = 5,
|
||
|
SubpassData = 6,
|
||
|
Max = 0x7fffffff,
|
||
|
}
|
||
|
|
||
|
public enum SamplerAddressingMode
|
||
|
{
|
||
|
None = 0,
|
||
|
ClampToEdge = 1,
|
||
|
Clamp = 2,
|
||
|
Repeat = 3,
|
||
|
RepeatMirrored = 4,
|
||
|
Max = 0x7fffffff,
|
||
|
}
|
||
|
|
||
|
public enum SamplerFilterMode
|
||
|
{
|
||
|
Nearest = 0,
|
||
|
Linear = 1,
|
||
|
Max = 0x7fffffff,
|
||
|
}
|
||
|
|
||
|
public enum ImageFormat
|
||
|
{
|
||
|
Unknown = 0,
|
||
|
Rgba32f = 1,
|
||
|
Rgba16f = 2,
|
||
|
R32f = 3,
|
||
|
Rgba8 = 4,
|
||
|
Rgba8Snorm = 5,
|
||
|
Rg32f = 6,
|
||
|
Rg16f = 7,
|
||
|
R11fG11fB10f = 8,
|
||
|
R16f = 9,
|
||
|
Rgba16 = 10,
|
||
|
Rgb10A2 = 11,
|
||
|
Rg16 = 12,
|
||
|
Rg8 = 13,
|
||
|
R16 = 14,
|
||
|
R8 = 15,
|
||
|
Rgba16Snorm = 16,
|
||
|
Rg16Snorm = 17,
|
||
|
Rg8Snorm = 18,
|
||
|
R16Snorm = 19,
|
||
|
R8Snorm = 20,
|
||
|
Rgba32i = 21,
|
||
|
Rgba16i = 22,
|
||
|
Rgba8i = 23,
|
||
|
R32i = 24,
|
||
|
Rg32i = 25,
|
||
|
Rg16i = 26,
|
||
|
Rg8i = 27,
|
||
|
R16i = 28,
|
||
|
R8i = 29,
|
||
|
Rgba32ui = 30,
|
||
|
Rgba16ui = 31,
|
||
|
Rgba8ui = 32,
|
||
|
R32ui = 33,
|
||
|
Rgb10a2ui = 34,
|
||
|
Rg32ui = 35,
|
||
|
Rg16ui = 36,
|
||
|
Rg8ui = 37,
|
||
|
R16ui = 38,
|
||
|
R8ui = 39,
|
||
|
Max = 0x7fffffff,
|
||
|
}
|
||
|
|
||
|
public enum ImageChannelOrder
|
||
|
{
|
||
|
R = 0,
|
||
|
A = 1,
|
||
|
RG = 2,
|
||
|
RA = 3,
|
||
|
RGB = 4,
|
||
|
RGBA = 5,
|
||
|
BGRA = 6,
|
||
|
ARGB = 7,
|
||
|
Intensity = 8,
|
||
|
Luminance = 9,
|
||
|
Rx = 10,
|
||
|
RGx = 11,
|
||
|
RGBx = 12,
|
||
|
Depth = 13,
|
||
|
DepthStencil = 14,
|
||
|
sRGB = 15,
|
||
|
sRGBx = 16,
|
||
|
sRGBA = 17,
|
||
|
sBGRA = 18,
|
||
|
ABGR = 19,
|
||
|
Max = 0x7fffffff,
|
||
|
}
|
||
|
|
||
|
public enum ImageChannelDataType
|
||
|
{
|
||
|
SnormInt8 = 0,
|
||
|
SnormInt16 = 1,
|
||
|
UnormInt8 = 2,
|
||
|
UnormInt16 = 3,
|
||
|
UnormShort565 = 4,
|
||
|
UnormShort555 = 5,
|
||
|
UnormInt101010 = 6,
|
||
|
SignedInt8 = 7,
|
||
|
SignedInt16 = 8,
|
||
|
SignedInt32 = 9,
|
||
|
UnsignedInt8 = 10,
|
||
|
UnsignedInt16 = 11,
|
||
|
UnsignedInt32 = 12,
|
||
|
HalfFloat = 13,
|
||
|
Float = 14,
|
||
|
UnormInt24 = 15,
|
||
|
UnormInt101010_2 = 16,
|
||
|
Max = 0x7fffffff,
|
||
|
}
|
||
|
|
||
|
public enum ImageOperandsShift
|
||
|
{
|
||
|
BiasShift = 0,
|
||
|
LodShift = 1,
|
||
|
GradShift = 2,
|
||
|
ConstOffsetShift = 3,
|
||
|
OffsetShift = 4,
|
||
|
ConstOffsetsShift = 5,
|
||
|
SampleShift = 6,
|
||
|
MinLodShift = 7,
|
||
|
Max = 0x7fffffff,
|
||
|
}
|
||
|
|
||
|
public enum ImageOperands
|
||
|
{
|
||
|
None = 0,
|
||
|
Bias = 0x00000001,
|
||
|
Lod = 0x00000002,
|
||
|
Grad = 0x00000004,
|
||
|
ConstOffset = 0x00000008,
|
||
|
Offset = 0x00000010,
|
||
|
ConstOffsets = 0x00000020,
|
||
|
Sample = 0x00000040,
|
||
|
MinLod = 0x00000080,
|
||
|
}
|
||
|
|
||
|
public enum FPFastMathMode
|
||
|
{
|
||
|
None = 0,
|
||
|
NotNaN = 0x00000001,
|
||
|
NotInf = 0x00000002,
|
||
|
NSZ = 0x00000004,
|
||
|
AllowRecip = 0x00000008,
|
||
|
Fast = 0x00000010,
|
||
|
}
|
||
|
|
||
|
public enum FPRoundingMode
|
||
|
{
|
||
|
RTE = 0,
|
||
|
RTZ = 1,
|
||
|
RTP = 2,
|
||
|
RTN = 3,
|
||
|
Max = 0x7fffffff,
|
||
|
}
|
||
|
|
||
|
public enum LinkageType
|
||
|
{
|
||
|
Export = 0,
|
||
|
Import = 1,
|
||
|
Max = 0x7fffffff,
|
||
|
}
|
||
|
|
||
|
public enum AccessQualifier
|
||
|
{
|
||
|
ReadOnly = 0,
|
||
|
WriteOnly = 1,
|
||
|
ReadWrite = 2,
|
||
|
Max = 0x7fffffff,
|
||
|
}
|
||
|
|
||
|
public enum FunctionParameterAttribute
|
||
|
{
|
||
|
Zext = 0,
|
||
|
Sext = 1,
|
||
|
ByVal = 2,
|
||
|
Sret = 3,
|
||
|
NoAlias = 4,
|
||
|
NoCapture = 5,
|
||
|
NoWrite = 6,
|
||
|
NoReadWrite = 7,
|
||
|
Max = 0x7fffffff,
|
||
|
}
|
||
|
|
||
|
public enum Decoration
|
||
|
{
|
||
|
RelaxedPrecision = 0,
|
||
|
SpecId = 1,
|
||
|
Block = 2,
|
||
|
BufferBlock = 3,
|
||
|
RowMajor = 4,
|
||
|
ColMajor = 5,
|
||
|
ArrayStride = 6,
|
||
|
MatrixStride = 7,
|
||
|
GLSLShared = 8,
|
||
|
GLSLPacked = 9,
|
||
|
CPacked = 10,
|
||
|
BuiltIn = 11,
|
||
|
NoPerspective = 13,
|
||
|
Flat = 14,
|
||
|
Patch = 15,
|
||
|
Centroid = 16,
|
||
|
Sample = 17,
|
||
|
Invariant = 18,
|
||
|
Restrict = 19,
|
||
|
Aliased = 20,
|
||
|
Volatile = 21,
|
||
|
Constant = 22,
|
||
|
Coherent = 23,
|
||
|
NonWritable = 24,
|
||
|
NonReadable = 25,
|
||
|
Uniform = 26,
|
||
|
SaturatedConversion = 28,
|
||
|
Stream = 29,
|
||
|
Location = 30,
|
||
|
Component = 31,
|
||
|
Index = 32,
|
||
|
Binding = 33,
|
||
|
DescriptorSet = 34,
|
||
|
Offset = 35,
|
||
|
XfbBuffer = 36,
|
||
|
XfbStride = 37,
|
||
|
FuncParamAttr = 38,
|
||
|
FPRoundingMode = 39,
|
||
|
FPFastMathMode = 40,
|
||
|
LinkageAttributes = 41,
|
||
|
NoContraction = 42,
|
||
|
InputAttachmentIndex = 43,
|
||
|
Alignment = 44,
|
||
|
MaxByteOffset = 45,
|
||
|
AlignmentId = 46,
|
||
|
MaxByteOffsetId = 47,
|
||
|
ExplicitInterpAMD = 4999,
|
||
|
OverrideCoverageNV = 5248,
|
||
|
PassthroughNV = 5250,
|
||
|
ViewportRelativeNV = 5252,
|
||
|
SecondaryViewportRelativeNV = 5256,
|
||
|
NonUniformEXT = 5300,
|
||
|
HlslCounterBufferGOOGLE = 5634,
|
||
|
HlslSemanticGOOGLE = 5635,
|
||
|
Max = 0x7fffffff,
|
||
|
}
|
||
|
|
||
|
public enum BuiltIn
|
||
|
{
|
||
|
Position = 0,
|
||
|
PointSize = 1,
|
||
|
ClipDistance = 3,
|
||
|
CullDistance = 4,
|
||
|
VertexId = 5,
|
||
|
InstanceId = 6,
|
||
|
PrimitiveId = 7,
|
||
|
InvocationId = 8,
|
||
|
Layer = 9,
|
||
|
ViewportIndex = 10,
|
||
|
TessLevelOuter = 11,
|
||
|
TessLevelInner = 12,
|
||
|
TessCoord = 13,
|
||
|
PatchVertices = 14,
|
||
|
FragCoord = 15,
|
||
|
PointCoord = 16,
|
||
|
FrontFacing = 17,
|
||
|
SampleId = 18,
|
||
|
SamplePosition = 19,
|
||
|
SampleMask = 20,
|
||
|
FragDepth = 22,
|
||
|
HelperInvocation = 23,
|
||
|
NumWorkgroups = 24,
|
||
|
WorkgroupSize = 25,
|
||
|
WorkgroupId = 26,
|
||
|
LocalInvocationId = 27,
|
||
|
GlobalInvocationId = 28,
|
||
|
LocalInvocationIndex = 29,
|
||
|
WorkDim = 30,
|
||
|
GlobalSize = 31,
|
||
|
EnqueuedWorkgroupSize = 32,
|
||
|
GlobalOffset = 33,
|
||
|
GlobalLinearId = 34,
|
||
|
SubgroupSize = 36,
|
||
|
SubgroupMaxSize = 37,
|
||
|
NumSubgroups = 38,
|
||
|
NumEnqueuedSubgroups = 39,
|
||
|
SubgroupId = 40,
|
||
|
SubgroupLocalInvocationId = 41,
|
||
|
VertexIndex = 42,
|
||
|
InstanceIndex = 43,
|
||
|
SubgroupEqMask = 4416,
|
||
|
SubgroupEqMaskKHR = 4416,
|
||
|
SubgroupGeMask = 4417,
|
||
|
SubgroupGeMaskKHR = 4417,
|
||
|
SubgroupGtMask = 4418,
|
||
|
SubgroupGtMaskKHR = 4418,
|
||
|
SubgroupLeMask = 4419,
|
||
|
SubgroupLeMaskKHR = 4419,
|
||
|
SubgroupLtMask = 4420,
|
||
|
SubgroupLtMaskKHR = 4420,
|
||
|
BaseVertex = 4424,
|
||
|
BaseInstance = 4425,
|
||
|
DrawIndex = 4426,
|
||
|
DeviceIndex = 4438,
|
||
|
ViewIndex = 4440,
|
||
|
BaryCoordNoPerspAMD = 4992,
|
||
|
BaryCoordNoPerspCentroidAMD = 4993,
|
||
|
BaryCoordNoPerspSampleAMD = 4994,
|
||
|
BaryCoordSmoothAMD = 4995,
|
||
|
BaryCoordSmoothCentroidAMD = 4996,
|
||
|
BaryCoordSmoothSampleAMD = 4997,
|
||
|
BaryCoordPullModelAMD = 4998,
|
||
|
FragStencilRefEXT = 5014,
|
||
|
ViewportMaskNV = 5253,
|
||
|
SecondaryPositionNV = 5257,
|
||
|
SecondaryViewportMaskNV = 5258,
|
||
|
PositionPerViewNV = 5261,
|
||
|
ViewportMaskPerViewNV = 5262,
|
||
|
FullyCoveredEXT = 5264,
|
||
|
Max = 0x7fffffff,
|
||
|
}
|
||
|
|
||
|
public enum SelectionControl
|
||
|
{
|
||
|
None = 0,
|
||
|
Flatten = 0x00000001,
|
||
|
DontFlatten = 0x00000002,
|
||
|
}
|
||
|
|
||
|
public enum LoopControl
|
||
|
{
|
||
|
None = 0,
|
||
|
Unroll = 0x00000001,
|
||
|
DontUnroll = 0x00000002,
|
||
|
DependencyInfinite = 0x00000004,
|
||
|
DependencyLength = 0x00000008,
|
||
|
}
|
||
|
|
||
|
public enum FunctionControl
|
||
|
{
|
||
|
None = 0,
|
||
|
Inline = 0x00000001,
|
||
|
DontInline = 0x00000002,
|
||
|
Pure = 0x00000004,
|
||
|
Const = 0x00000008,
|
||
|
}
|
||
|
|
||
|
public enum MemorySemantics
|
||
|
{
|
||
|
None = 0,
|
||
|
Acquire = 0x00000002,
|
||
|
Release = 0x00000004,
|
||
|
AcquireRelease = 0x00000008,
|
||
|
SequentiallyConsistent = 0x00000010,
|
||
|
UniformMemory = 0x00000040,
|
||
|
SubgroupMemory = 0x00000080,
|
||
|
WorkgroupMemory = 0x00000100,
|
||
|
CrossWorkgroupMemory = 0x00000200,
|
||
|
AtomicCounterMemory = 0x00000400,
|
||
|
ImageMemory = 0x00000800,
|
||
|
}
|
||
|
|
||
|
public enum MemoryAccess
|
||
|
{
|
||
|
None = 0,
|
||
|
Volatile = 0x00000001,
|
||
|
Aligned = 0x00000002,
|
||
|
Nontemporal = 0x00000004,
|
||
|
}
|
||
|
|
||
|
public enum Scope
|
||
|
{
|
||
|
CrossDevice = 0,
|
||
|
Device = 1,
|
||
|
Workgroup = 2,
|
||
|
Subgroup = 3,
|
||
|
Invocation = 4,
|
||
|
Max = 0x7fffffff,
|
||
|
}
|
||
|
|
||
|
public enum GroupOperation
|
||
|
{
|
||
|
Reduce = 0,
|
||
|
InclusiveScan = 1,
|
||
|
ExclusiveScan = 2,
|
||
|
ClusteredReduce = 3,
|
||
|
PartitionedReduceNV = 6,
|
||
|
PartitionedInclusiveScanNV = 7,
|
||
|
PartitionedExclusiveScanNV = 8,
|
||
|
Max = 0x7fffffff,
|
||
|
}
|
||
|
|
||
|
public enum KernelEnqueueFlags
|
||
|
{
|
||
|
NoWait = 0,
|
||
|
WaitKernel = 1,
|
||
|
WaitWorkGroup = 2,
|
||
|
Max = 0x7fffffff,
|
||
|
}
|
||
|
|
||
|
public enum KernelProfilingInfoShift
|
||
|
{
|
||
|
CmdExecTimeShift = 0,
|
||
|
Max = 0x7fffffff,
|
||
|
}
|
||
|
|
||
|
public enum KernelProfilingInfo
|
||
|
{
|
||
|
None = 0,
|
||
|
CmdExecTime = 0x00000001,
|
||
|
}
|
||
|
|
||
|
public enum Capability
|
||
|
{
|
||
|
Matrix = 0,
|
||
|
Shader = 1,
|
||
|
Geometry = 2,
|
||
|
Tessellation = 3,
|
||
|
Addresses = 4,
|
||
|
Linkage = 5,
|
||
|
Kernel = 6,
|
||
|
Vector16 = 7,
|
||
|
Float16Buffer = 8,
|
||
|
Float16 = 9,
|
||
|
Float64 = 10,
|
||
|
Int64 = 11,
|
||
|
Int64Atomics = 12,
|
||
|
ImageBasic = 13,
|
||
|
ImageReadWrite = 14,
|
||
|
ImageMipmap = 15,
|
||
|
Pipes = 17,
|
||
|
Groups = 18,
|
||
|
DeviceEnqueue = 19,
|
||
|
LiteralSampler = 20,
|
||
|
AtomicStorage = 21,
|
||
|
Int16 = 22,
|
||
|
TessellationPointSize = 23,
|
||
|
GeometryPointSize = 24,
|
||
|
ImageGatherExtended = 25,
|
||
|
StorageImageMultisample = 27,
|
||
|
UniformBufferArrayDynamicIndexing = 28,
|
||
|
SampledImageArrayDynamicIndexing = 29,
|
||
|
StorageBufferArrayDynamicIndexing = 30,
|
||
|
StorageImageArrayDynamicIndexing = 31,
|
||
|
ClipDistance = 32,
|
||
|
CullDistance = 33,
|
||
|
ImageCubeArray = 34,
|
||
|
SampleRateShading = 35,
|
||
|
ImageRect = 36,
|
||
|
SampledRect = 37,
|
||
|
GenericPointer = 38,
|
||
|
Int8 = 39,
|
||
|
InputAttachment = 40,
|
||
|
SparseResidency = 41,
|
||
|
MinLod = 42,
|
||
|
Sampled1D = 43,
|
||
|
Image1D = 44,
|
||
|
SampledCubeArray = 45,
|
||
|
SampledBuffer = 46,
|
||
|
ImageBuffer = 47,
|
||
|
ImageMSArray = 48,
|
||
|
StorageImageExtendedFormats = 49,
|
||
|
ImageQuery = 50,
|
||
|
DerivativeControl = 51,
|
||
|
InterpolationFunction = 52,
|
||
|
TransformFeedback = 53,
|
||
|
GeometryStreams = 54,
|
||
|
StorageImageReadWithoutFormat = 55,
|
||
|
StorageImageWriteWithoutFormat = 56,
|
||
|
MultiViewport = 57,
|
||
|
SubgroupDispatch = 58,
|
||
|
NamedBarrier = 59,
|
||
|
PipeStorage = 60,
|
||
|
GroupNonUniform = 61,
|
||
|
GroupNonUniformVote = 62,
|
||
|
GroupNonUniformArithmetic = 63,
|
||
|
GroupNonUniformBallot = 64,
|
||
|
GroupNonUniformShuffle = 65,
|
||
|
GroupNonUniformShuffleRelative = 66,
|
||
|
GroupNonUniformClustered = 67,
|
||
|
GroupNonUniformQuad = 68,
|
||
|
SubgroupBallotKHR = 4423,
|
||
|
DrawParameters = 4427,
|
||
|
SubgroupVoteKHR = 4431,
|
||
|
StorageBuffer16BitAccess = 4433,
|
||
|
StorageUniformBufferBlock16 = 4433,
|
||
|
StorageUniform16 = 4434,
|
||
|
UniformAndStorageBuffer16BitAccess = 4434,
|
||
|
StoragePushConstant16 = 4435,
|
||
|
StorageInputOutput16 = 4436,
|
||
|
DeviceGroup = 4437,
|
||
|
MultiView = 4439,
|
||
|
VariablePointersStorageBuffer = 4441,
|
||
|
VariablePointers = 4442,
|
||
|
AtomicStorageOps = 4445,
|
||
|
SampleMaskPostDepthCoverage = 4447,
|
||
|
Float16ImageAMD = 5008,
|
||
|
ImageGatherBiasLodAMD = 5009,
|
||
|
FragmentMaskAMD = 5010,
|
||
|
StencilExportEXT = 5013,
|
||
|
ImageReadWriteLodAMD = 5015,
|
||
|
SampleMaskOverrideCoverageNV = 5249,
|
||
|
GeometryShaderPassthroughNV = 5251,
|
||
|
ShaderViewportIndexLayerEXT = 5254,
|
||
|
ShaderViewportIndexLayerNV = 5254,
|
||
|
ShaderViewportMaskNV = 5255,
|
||
|
ShaderStereoViewNV = 5259,
|
||
|
PerViewAttributesNV = 5260,
|
||
|
FragmentFullyCoveredEXT = 5265,
|
||
|
GroupNonUniformPartitionedNV = 5297,
|
||
|
ShaderNonUniformEXT = 5301,
|
||
|
RuntimeDescriptorArrayEXT = 5302,
|
||
|
InputAttachmentArrayDynamicIndexingEXT = 5303,
|
||
|
UniformTexelBufferArrayDynamicIndexingEXT = 5304,
|
||
|
StorageTexelBufferArrayDynamicIndexingEXT = 5305,
|
||
|
UniformBufferArrayNonUniformIndexingEXT = 5306,
|
||
|
SampledImageArrayNonUniformIndexingEXT = 5307,
|
||
|
StorageBufferArrayNonUniformIndexingEXT = 5308,
|
||
|
StorageImageArrayNonUniformIndexingEXT = 5309,
|
||
|
InputAttachmentArrayNonUniformIndexingEXT = 5310,
|
||
|
UniformTexelBufferArrayNonUniformIndexingEXT = 5311,
|
||
|
StorageTexelBufferArrayNonUniformIndexingEXT = 5312,
|
||
|
SubgroupShuffleINTEL = 5568,
|
||
|
SubgroupBufferBlockIOINTEL = 5569,
|
||
|
SubgroupImageBlockIOINTEL = 5570,
|
||
|
Max = 0x7fffffff,
|
||
|
}
|
||
|
|
||
|
public enum Opcode
|
||
|
{
|
||
|
Nop = 0,
|
||
|
Undef = 1,
|
||
|
SourceContinued = 2,
|
||
|
Source = 3,
|
||
|
SourceExtension = 4,
|
||
|
Name = 5,
|
||
|
MemberName = 6,
|
||
|
String = 7,
|
||
|
Line = 8,
|
||
|
Extension = 10,
|
||
|
ExtInstImport = 11,
|
||
|
ExtInst = 12,
|
||
|
MemoryModel = 14,
|
||
|
EntryPoint = 15,
|
||
|
ExecutionMode = 16,
|
||
|
Capability = 17,
|
||
|
TypeVoid = 19,
|
||
|
TypeBool = 20,
|
||
|
TypeInt = 21,
|
||
|
TypeFloat = 22,
|
||
|
TypeVector = 23,
|
||
|
TypeMatrix = 24,
|
||
|
TypeImage = 25,
|
||
|
TypeSampler = 26,
|
||
|
TypeSampledImage = 27,
|
||
|
TypeArray = 28,
|
||
|
TypeRuntimeArray = 29,
|
||
|
TypeStruct = 30,
|
||
|
TypeOpaque = 31,
|
||
|
TypePointer = 32,
|
||
|
TypeFunction = 33,
|
||
|
TypeEvent = 34,
|
||
|
TypeDeviceEvent = 35,
|
||
|
TypeReserveId = 36,
|
||
|
TypeQueue = 37,
|
||
|
TypePipe = 38,
|
||
|
TypeForwardPointer = 39,
|
||
|
ConstantTrue = 41,
|
||
|
ConstantFalse = 42,
|
||
|
Constant = 43,
|
||
|
ConstantComposite = 44,
|
||
|
ConstantSampler = 45,
|
||
|
ConstantNull = 46,
|
||
|
SpecConstantTrue = 48,
|
||
|
SpecConstantFalse = 49,
|
||
|
SpecConstant = 50,
|
||
|
SpecConstantComposite = 51,
|
||
|
SpecConstantOp = 52,
|
||
|
Function = 54,
|
||
|
FunctionParameter = 55,
|
||
|
FunctionEnd = 56,
|
||
|
FunctionCall = 57,
|
||
|
Variable = 59,
|
||
|
ImageTexelPointer = 60,
|
||
|
Load = 61,
|
||
|
Store = 62,
|
||
|
CopyMemory = 63,
|
||
|
CopyMemorySized = 64,
|
||
|
AccessChain = 65,
|
||
|
InBoundsAccessChain = 66,
|
||
|
PtrAccessChain = 67,
|
||
|
ArrayLength = 68,
|
||
|
GenericPtrMemSemantics = 69,
|
||
|
InBoundsPtrAccessChain = 70,
|
||
|
Decorate = 71,
|
||
|
MemberDecorate = 72,
|
||
|
DecorationGroup = 73,
|
||
|
GroupDecorate = 74,
|
||
|
GroupMemberDecorate = 75,
|
||
|
VectorExtractDynamic = 77,
|
||
|
VectorInsertDynamic = 78,
|
||
|
VectorShuffle = 79,
|
||
|
CompositeConstruct = 80,
|
||
|
CompositeExtract = 81,
|
||
|
CompositeInsert = 82,
|
||
|
CopyObject = 83,
|
||
|
Transpose = 84,
|
||
|
SampledImage = 86,
|
||
|
ImageSampleImplicitLod = 87,
|
||
|
ImageSampleExplicitLod = 88,
|
||
|
ImageSampleDrefImplicitLod = 89,
|
||
|
ImageSampleDrefExplicitLod = 90,
|
||
|
ImageSampleProjImplicitLod = 91,
|
||
|
ImageSampleProjExplicitLod = 92,
|
||
|
ImageSampleProjDrefImplicitLod = 93,
|
||
|
ImageSampleProjDrefExplicitLod = 94,
|
||
|
ImageFetch = 95,
|
||
|
ImageGather = 96,
|
||
|
ImageDrefGather = 97,
|
||
|
ImageRead = 98,
|
||
|
ImageWrite = 99,
|
||
|
Image = 100,
|
||
|
ImageQueryFormat = 101,
|
||
|
ImageQueryOrder = 102,
|
||
|
ImageQuerySizeLod = 103,
|
||
|
ImageQuerySize = 104,
|
||
|
ImageQueryLod = 105,
|
||
|
ImageQueryLevels = 106,
|
||
|
ImageQuerySamples = 107,
|
||
|
ConvertFToU = 109,
|
||
|
ConvertFToS = 110,
|
||
|
ConvertSToF = 111,
|
||
|
ConvertUToF = 112,
|
||
|
UConvert = 113,
|
||
|
SConvert = 114,
|
||
|
FConvert = 115,
|
||
|
QuantizeToF16 = 116,
|
||
|
ConvertPtrToU = 117,
|
||
|
SatConvertSToU = 118,
|
||
|
SatConvertUToS = 119,
|
||
|
ConvertUToPtr = 120,
|
||
|
PtrCastToGeneric = 121,
|
||
|
GenericCastToPtr = 122,
|
||
|
GenericCastToPtrExplicit = 123,
|
||
|
Bitcast = 124,
|
||
|
SNegate = 126,
|
||
|
FNegate = 127,
|
||
|
IAdd = 128,
|
||
|
FAdd = 129,
|
||
|
ISub = 130,
|
||
|
FSub = 131,
|
||
|
IMul = 132,
|
||
|
FMul = 133,
|
||
|
UDiv = 134,
|
||
|
SDiv = 135,
|
||
|
FDiv = 136,
|
||
|
UMod = 137,
|
||
|
SRem = 138,
|
||
|
SMod = 139,
|
||
|
FRem = 140,
|
||
|
FMod = 141,
|
||
|
VectorTimesScalar = 142,
|
||
|
MatrixTimesScalar = 143,
|
||
|
VectorTimesMatrix = 144,
|
||
|
MatrixTimesVector = 145,
|
||
|
MatrixTimesMatrix = 146,
|
||
|
OuterProduct = 147,
|
||
|
Dot = 148,
|
||
|
IAddCarry = 149,
|
||
|
ISubBorrow = 150,
|
||
|
UMulExtended = 151,
|
||
|
SMulExtended = 152,
|
||
|
Any = 154,
|
||
|
All = 155,
|
||
|
IsNan = 156,
|
||
|
IsInf = 157,
|
||
|
IsFinite = 158,
|
||
|
IsNormal = 159,
|
||
|
SignBitSet = 160,
|
||
|
LessOrGreater = 161,
|
||
|
Ordered = 162,
|
||
|
Unordered = 163,
|
||
|
LogicalEqual = 164,
|
||
|
LogicalNotEqual = 165,
|
||
|
LogicalOr = 166,
|
||
|
LogicalAnd = 167,
|
||
|
LogicalNot = 168,
|
||
|
Select = 169,
|
||
|
IEqual = 170,
|
||
|
INotEqual = 171,
|
||
|
UGreaterThan = 172,
|
||
|
SGreaterThan = 173,
|
||
|
UGreaterThanEqual = 174,
|
||
|
SGreaterThanEqual = 175,
|
||
|
ULessThan = 176,
|
||
|
SLessThan = 177,
|
||
|
ULessThanEqual = 178,
|
||
|
SLessThanEqual = 179,
|
||
|
FOrdEqual = 180,
|
||
|
FUnordEqual = 181,
|
||
|
FOrdNotEqual = 182,
|
||
|
FUnordNotEqual = 183,
|
||
|
FOrdLessThan = 184,
|
||
|
FUnordLessThan = 185,
|
||
|
FOrdGreaterThan = 186,
|
||
|
FUnordGreaterThan = 187,
|
||
|
FOrdLessThanEqual = 188,
|
||
|
FUnordLessThanEqual = 189,
|
||
|
FOrdGreaterThanEqual = 190,
|
||
|
FUnordGreaterThanEqual = 191,
|
||
|
ShiftRightLogical = 194,
|
||
|
ShiftRightArithmetic = 195,
|
||
|
ShiftLeftLogical = 196,
|
||
|
BitwiseOr = 197,
|
||
|
BitwiseXor = 198,
|
||
|
BitwiseAnd = 199,
|
||
|
Not = 200,
|
||
|
BitFieldInsert = 201,
|
||
|
BitFieldSExtract = 202,
|
||
|
BitFieldUExtract = 203,
|
||
|
BitReverse = 204,
|
||
|
BitCount = 205,
|
||
|
DPdx = 207,
|
||
|
DPdy = 208,
|
||
|
Fwidth = 209,
|
||
|
DPdxFine = 210,
|
||
|
DPdyFine = 211,
|
||
|
FwidthFine = 212,
|
||
|
DPdxCoarse = 213,
|
||
|
DPdyCoarse = 214,
|
||
|
FwidthCoarse = 215,
|
||
|
EmitVertex = 218,
|
||
|
EndPrimitive = 219,
|
||
|
EmitStreamVertex = 220,
|
||
|
EndStreamPrimitive = 221,
|
||
|
ControlBarrier = 224,
|
||
|
MemoryBarrier = 225,
|
||
|
AtomicLoad = 227,
|
||
|
AtomicStore = 228,
|
||
|
AtomicExchange = 229,
|
||
|
AtomicCompareExchange = 230,
|
||
|
AtomicCompareExchangeWeak = 231,
|
||
|
AtomicIIncrement = 232,
|
||
|
AtomicIDecrement = 233,
|
||
|
AtomicIAdd = 234,
|
||
|
AtomicISub = 235,
|
||
|
AtomicSMin = 236,
|
||
|
AtomicUMin = 237,
|
||
|
AtomicSMax = 238,
|
||
|
AtomicUMax = 239,
|
||
|
AtomicAnd = 240,
|
||
|
AtomicOr = 241,
|
||
|
AtomicXor = 242,
|
||
|
Phi = 245,
|
||
|
LoopMerge = 246,
|
||
|
SelectionMerge = 247,
|
||
|
Label = 248,
|
||
|
Branch = 249,
|
||
|
BranchConditional = 250,
|
||
|
Switch = 251,
|
||
|
Kill = 252,
|
||
|
Return = 253,
|
||
|
ReturnValue = 254,
|
||
|
Unreachable = 255,
|
||
|
LifetimeStart = 256,
|
||
|
LifetimeStop = 257,
|
||
|
GroupAsyncCopy = 259,
|
||
|
GroupWaitEvents = 260,
|
||
|
GroupAll = 261,
|
||
|
GroupAny = 262,
|
||
|
GroupBroadcast = 263,
|
||
|
GroupIAdd = 264,
|
||
|
GroupFAdd = 265,
|
||
|
GroupFMin = 266,
|
||
|
GroupUMin = 267,
|
||
|
GroupSMin = 268,
|
||
|
GroupFMax = 269,
|
||
|
GroupUMax = 270,
|
||
|
GroupSMax = 271,
|
||
|
ReadPipe = 274,
|
||
|
WritePipe = 275,
|
||
|
ReservedReadPipe = 276,
|
||
|
ReservedWritePipe = 277,
|
||
|
ReserveReadPipePackets = 278,
|
||
|
ReserveWritePipePackets = 279,
|
||
|
CommitReadPipe = 280,
|
||
|
CommitWritePipe = 281,
|
||
|
IsValidReserveId = 282,
|
||
|
GetNumPipePackets = 283,
|
||
|
GetMaxPipePackets = 284,
|
||
|
GroupReserveReadPipePackets = 285,
|
||
|
GroupReserveWritePipePackets = 286,
|
||
|
GroupCommitReadPipe = 287,
|
||
|
GroupCommitWritePipe = 288,
|
||
|
EnqueueMarker = 291,
|
||
|
EnqueueKernel = 292,
|
||
|
GetKernelNDrangeSubGroupCount = 293,
|
||
|
GetKernelNDrangeMaxSubGroupSize = 294,
|
||
|
GetKernelWorkGroupSize = 295,
|
||
|
GetKernelPreferredWorkGroupSizeMultiple = 296,
|
||
|
RetainEvent = 297,
|
||
|
ReleaseEvent = 298,
|
||
|
CreateUserEvent = 299,
|
||
|
IsValidEvent = 300,
|
||
|
SetUserEventStatus = 301,
|
||
|
CaptureEventProfilingInfo = 302,
|
||
|
GetDefaultQueue = 303,
|
||
|
BuildNDRange = 304,
|
||
|
ImageSparseSampleImplicitLod = 305,
|
||
|
ImageSparseSampleExplicitLod = 306,
|
||
|
ImageSparseSampleDrefImplicitLod = 307,
|
||
|
ImageSparseSampleDrefExplicitLod = 308,
|
||
|
ImageSparseSampleProjImplicitLod = 309,
|
||
|
ImageSparseSampleProjExplicitLod = 310,
|
||
|
ImageSparseSampleProjDrefImplicitLod = 311,
|
||
|
ImageSparseSampleProjDrefExplicitLod = 312,
|
||
|
ImageSparseFetch = 313,
|
||
|
ImageSparseGather = 314,
|
||
|
ImageSparseDrefGather = 315,
|
||
|
ImageSparseTexelsResident = 316,
|
||
|
NoLine = 317,
|
||
|
AtomicFlagTestAndSet = 318,
|
||
|
AtomicFlagClear = 319,
|
||
|
ImageSparseRead = 320,
|
||
|
SizeOf = 321,
|
||
|
TypePipeStorage = 322,
|
||
|
ConstantPipeStorage = 323,
|
||
|
CreatePipeFromPipeStorage = 324,
|
||
|
GetKernelLocalSizeForSubgroupCount = 325,
|
||
|
GetKernelMaxNumSubgroups = 326,
|
||
|
TypeNamedBarrier = 327,
|
||
|
NamedBarrierInitialize = 328,
|
||
|
MemoryNamedBarrier = 329,
|
||
|
ModuleProcessed = 330,
|
||
|
ExecutionModeId = 331,
|
||
|
DecorateId = 332,
|
||
|
GroupNonUniformElect = 333,
|
||
|
GroupNonUniformAll = 334,
|
||
|
GroupNonUniformAny = 335,
|
||
|
GroupNonUniformAllEqual = 336,
|
||
|
GroupNonUniformBroadcast = 337,
|
||
|
GroupNonUniformBroadcastFirst = 338,
|
||
|
GroupNonUniformBallot = 339,
|
||
|
GroupNonUniformInverseBallot = 340,
|
||
|
GroupNonUniformBallotBitExtract = 341,
|
||
|
GroupNonUniformBallotBitCount = 342,
|
||
|
GroupNonUniformBallotFindLSB = 343,
|
||
|
GroupNonUniformBallotFindMSB = 344,
|
||
|
GroupNonUniformShuffle = 345,
|
||
|
GroupNonUniformShuffleXor = 346,
|
||
|
GroupNonUniformShuffleUp = 347,
|
||
|
GroupNonUniformShuffleDown = 348,
|
||
|
GroupNonUniformIAdd = 349,
|
||
|
GroupNonUniformFAdd = 350,
|
||
|
GroupNonUniformIMul = 351,
|
||
|
GroupNonUniformFMul = 352,
|
||
|
GroupNonUniformSMin = 353,
|
||
|
GroupNonUniformUMin = 354,
|
||
|
GroupNonUniformFMin = 355,
|
||
|
GroupNonUniformSMax = 356,
|
||
|
GroupNonUniformUMax = 357,
|
||
|
GroupNonUniformFMax = 358,
|
||
|
GroupNonUniformBitwiseAnd = 359,
|
||
|
GroupNonUniformBitwiseOr = 360,
|
||
|
GroupNonUniformBitwiseXor = 361,
|
||
|
GroupNonUniformLogicalAnd = 362,
|
||
|
GroupNonUniformLogicalOr = 363,
|
||
|
GroupNonUniformLogicalXor = 364,
|
||
|
GroupNonUniformQuadBroadcast = 365,
|
||
|
GroupNonUniformQuadSwap = 366,
|
||
|
SubgroupBallotKHR = 4421,
|
||
|
SubgroupFirstInvocationKHR = 4422,
|
||
|
SubgroupAllKHR = 4428,
|
||
|
SubgroupAnyKHR = 4429,
|
||
|
SubgroupAllEqualKHR = 4430,
|
||
|
SubgroupReadInvocationKHR = 4432,
|
||
|
GroupIAddNonUniformAMD = 5000,
|
||
|
GroupFAddNonUniformAMD = 5001,
|
||
|
GroupFMinNonUniformAMD = 5002,
|
||
|
GroupUMinNonUniformAMD = 5003,
|
||
|
GroupSMinNonUniformAMD = 5004,
|
||
|
GroupFMaxNonUniformAMD = 5005,
|
||
|
GroupUMaxNonUniformAMD = 5006,
|
||
|
GroupSMaxNonUniformAMD = 5007,
|
||
|
FragmentMaskFetchAMD = 5011,
|
||
|
FragmentFetchAMD = 5012,
|
||
|
GroupNonUniformPartitionNV = 5296,
|
||
|
SubgroupShuffleINTEL = 5571,
|
||
|
SubgroupShuffleDownINTEL = 5572,
|
||
|
SubgroupShuffleUpINTEL = 5573,
|
||
|
SubgroupShuffleXorINTEL = 5574,
|
||
|
SubgroupBlockReadINTEL = 5575,
|
||
|
SubgroupBlockWriteINTEL = 5576,
|
||
|
SubgroupImageBlockReadINTEL = 5577,
|
||
|
SubgroupImageBlockWriteINTEL = 5578,
|
||
|
DecorateStringGOOGLE = 5632,
|
||
|
MemberDecorateStringGOOGLE = 5633,
|
||
|
Max = 0x7fffffff,
|
||
|
}
|
||
|
|
||
|
// https://github.com/KhronosGroup/SPIRV-Headers/blob/master/include/spirv/unified1/GLSL.std.450.h
|
||
|
public enum GLSLstd450
|
||
|
{
|
||
|
Bad = 0, // Don't use
|
||
|
|
||
|
Round = 1,
|
||
|
RoundEven = 2,
|
||
|
Trunc = 3,
|
||
|
FAbs = 4,
|
||
|
SAbs = 5,
|
||
|
FSign = 6,
|
||
|
SSign = 7,
|
||
|
Floor = 8,
|
||
|
Ceil = 9,
|
||
|
Fract = 10,
|
||
|
|
||
|
Radians = 11,
|
||
|
Degrees = 12,
|
||
|
Sin = 13,
|
||
|
Cos = 14,
|
||
|
Tan = 15,
|
||
|
Asin = 16,
|
||
|
Acos = 17,
|
||
|
Atan = 18,
|
||
|
Sinh = 19,
|
||
|
Cosh = 20,
|
||
|
Tanh = 21,
|
||
|
Asinh = 22,
|
||
|
Acosh = 23,
|
||
|
Atanh = 24,
|
||
|
Atan2 = 25,
|
||
|
|
||
|
Pow = 26,
|
||
|
Exp = 27,
|
||
|
Log = 28,
|
||
|
Exp2 = 29,
|
||
|
Log2 = 30,
|
||
|
Sqrt = 31,
|
||
|
InverseSqrt = 32,
|
||
|
|
||
|
Determinant = 33,
|
||
|
MatrixInverse = 34,
|
||
|
|
||
|
Modf = 35, // second operand needs an OpVariable to write to
|
||
|
ModfStruct = 36, // no OpVariable operand
|
||
|
FMin = 37,
|
||
|
UMin = 38,
|
||
|
SMin = 39,
|
||
|
FMax = 40,
|
||
|
UMax = 41,
|
||
|
SMax = 42,
|
||
|
FClamp = 43,
|
||
|
UClamp = 44,
|
||
|
SClamp = 45,
|
||
|
FMix = 46,
|
||
|
IMix = 47, // Reserved
|
||
|
Step = 48,
|
||
|
SmoothStep = 49,
|
||
|
|
||
|
Fma = 50,
|
||
|
Frexp = 51, // second operand needs an OpVariable to write to
|
||
|
FrexpStruct = 52, // no OpVariable operand
|
||
|
Ldexp = 53,
|
||
|
|
||
|
PackSnorm4x8 = 54,
|
||
|
PackUnorm4x8 = 55,
|
||
|
PackSnorm2x16 = 56,
|
||
|
PackUnorm2x16 = 57,
|
||
|
PackHalf2x16 = 58,
|
||
|
PackDouble2x32 = 59,
|
||
|
UnpackSnorm2x16 = 60,
|
||
|
UnpackUnorm2x16 = 61,
|
||
|
UnpackHalf2x16 = 62,
|
||
|
UnpackSnorm4x8 = 63,
|
||
|
UnpackUnorm4x8 = 64,
|
||
|
UnpackDouble2x32 = 65,
|
||
|
|
||
|
Length = 66,
|
||
|
Distance = 67,
|
||
|
Cross = 68,
|
||
|
Normalize = 69,
|
||
|
FaceForward = 70,
|
||
|
Reflect = 71,
|
||
|
Refract = 72,
|
||
|
|
||
|
FindILsb = 73,
|
||
|
FindSMsb = 74,
|
||
|
FindUMsb = 75,
|
||
|
|
||
|
InterpolateAtCentroid = 76,
|
||
|
InterpolateAtSample = 77,
|
||
|
InterpolateAtOffset = 78,
|
||
|
|
||
|
NMin = 79,
|
||
|
NMax = 80,
|
||
|
NClamp = 81,
|
||
|
|
||
|
Count
|
||
|
}
|
||
|
}
|