Page MenuHomePhabricator

SPIR-V Support
Updated 318 Days AgoPublic

NOTE: As of 1 Februari 2018

Currently supported version: bits and pieces of 1.0

Opcode Categories Status

  • Miscellaneous: 2/2
  • Debug: 0/8
  • Annotation: 3/5
  • Extension: 3/3
  • Mode-Setting: 4/4
  • Type-Declaration: 12/21 (1 shader)
  • Constant-Creation: 5/11
  • Memory: 7/12 (1 shader)
  • Function: 4/4
  • Image: 0/35 (19 shader, 4 reserved)
  • Convert: 11/16
  • Composite: 3/8
  • Arithmetic: 19/27
  • Bit: 7/12
  • Relational and Logical: 27/38
  • Derivative: 0/9 (9 shader)
  • Control-Flow: 7/13 (1 shader)
  • Atomic: 13/18
  • Primitive: 0/4 (4 shader)
  • Barrier: 2/2
  • Group: 0/16
  • Device-Side Enqueue: 0/14
  • Pipe: 0/15

Opcodes Status

Miscellaneous Instructions

  • OpNop
  • OpUndef

Debug Instructions

  • OpSourceContinued
  • OpSource
  • OpSourceExtension
  • OpName
  • OpMemberName
  • OpString
  • OpLine
  • OpNoLine

Annotation Instructions

  • OpDecorate
  • OpMemberDecorate
  • OpDecoration Group
  • OpGroupDecorate
  • OpGroupMemberDecorate

Extension Instructions

  • OpExtension
  • OpExtInstImport
  • OpExtInst

Mode-Setting Instructions

  • OpMemoryModel
  • OpEntryPoint
  • OpExecutionMode
  • OpCapability

Type-Declaration Instructions

  • OpTypeVoid
  • OpTypeBool
  • OpTypeInt
  • OpTypeFloat
  • OpTypeVector
  • OpTypeMatrix
  • OpTypeImage
  • OpTypeSampler
  • OpTypeSampledImage
  • OpTypeArray
  • OpTypeRuntimeArray (shader)
  • OpTypeStruct
  • OpTypeOpaque
  • OpTypePointer
  • OpTypeFunction
  • OpTypeEvent
  • OpTypeDeviceEvent
  • OpTypeReserveId
  • OpTypeQueue
  • OpTypePipe
  • OpTypeForwardPointer

Constant-Creation Instructions

  • OpConstantTrue
  • OpConstantFalse
  • OpConstant
  • OpConstantComposite
  • OpConstantSampler
  • OpConstantNull
  • OpSpecConstantTrue
  • OpSpecConstantFalse
  • OpSpecConstant
  • OpSpecConstantComposite
  • OpSpecConstantOp

Memory Instructions

  • OpVariable
  • OpImageTexelPointer
  • OpLoad
  • OpStore
  • OpCopyMemory
  • OpCopyMemorySized
  • OpAccessChain
  • OpInBoundsAccessChain
  • OpPtrAccessChain
  • OpArrayLength (shader)
  • OpGenericPtrMemSemantics
  • OpInBoundsPtrAccessChain

Function Instructions

  • OpFunction
  • OpFunctionParameter
  • OpFunctionEnd
  • OpFunctionCall

Image Instructions

  • OpSampledImage
  • OpImageSampleImplicitLod (shader)
  • OpImageSampleExplicitLod
  • OpImageSampleDrefImplicitLod (shader)
  • OpImageSampleDrefExplicitLod (shader)
  • OpImageSampleProjImplicitLod (shader)
  • OpImageSampleProjExplicitLod (shader)
  • OpImageSampleProjDrefImplicitLod (shader)
  • OpImageSampleProjDrefExplicitLod (shader)
  • OpImageFetch
  • OpImageGather (shader)
  • OpImageDrefGather (shader)
  • OpImageRead
  • OpImageWrite
  • OpImage
  • OpImageQueryFormat
  • OpImageQueryOrder
  • OpImageQuerySizeLod (shader)
  • OpImageQuerySize
  • OpImageQueryLod
  • OpImageQueryLevels
  • OpImageQuerySamples
  • OpImageSparseSampleImplicitLod (shader)
  • OpImageSparseSampleExplicitLod (shader)
  • OpImageSparseSampleDrefImplicitLod (shader)
  • OpImageSparseSampleDrefExplicitLod (shader)
  • OpImageSparseSampleProjImplicitLod (reserved)
  • OpImageSparseSampleProjExplicitLod (reserved)
  • OpImageSparseSampleProjDrefImplicitLod (reserved)
  • OpImageSparseSampleProjDrefExplicitLod (reserved)
  • OpImageSparseFetch (shader)
  • OpImageSparseGather (shader)
  • OpImageSparseDrefGather (shader)
  • OpImageSparseTexelsResident (shader)
  • OpImageSparseRead (shader)

Conversion Instructions

  • OpConvertFToU
  • OpConvertFToS
  • OpConvertSToF
  • OpCOnvertUToF
  • OpUConvert
  • OpSConvert
  • OpFConvert
  • OpQuantizeToF16
  • OpConvertPtrToU
  • OpSatConvertSToU
  • OpSatConvertUToS
  • OpConvertUToPtr
  • OpPtrCastToGeneric
  • OpGenericCastToPtr
  • OpGenericCastToPtrExplicit
  • OpBitcast

Composite Instructions

  • OpVectorExtractDynamic
  • OpVectorInsertDynamic
  • OpVectorShuffle
  • OpCompositeConstruct
  • OpCompositeExtract
  • OpCompositeInsert
  • OpCopyObject
  • OpTranspose

Arithmetic Instructions

  • OpSNegate
  • OpFNegate
  • OpIAdd
  • OpFAdd
  • OpISub
  • OpFSub
  • OpIMul
  • OpFMul
  • OpUDiv
  • OpSDiv
  • OpFDiv
  • OpUMod
  • OpSRem
  • OpSMod
  • OpFRem
  • OpFMod
  • OpVectorTimesScalar
  • OpMatrixTimesScalar
  • OpVectorTimesMatrix
  • OpMatrixTimesVector
  • OpMatrixTimesMatrix
  • OpOuterProduct
  • OpDot
  • OpIAddCarry
  • OpISubBorrow
  • OpUMulExtended
  • OpSMulExtended

Bit Instructions

  • OpShiftRightLogical
  • OpShiftRightArithmetic
  • OpShiftLeftLogical
  • OpBitwiseOr
  • OpBitwiseXor
  • OpBitwiseAnd
  • OpNot
  • OpBitFieldInsert
  • OpBitFieldSExtract
  • OpBitFieldUExtract
  • OpBitReverse
  • OpBitCount

Relational and Logical Instructions

  • OpAny
  • OpAll
  • OpIsNan
  • OpIsInf
  • OpIsFinite
  • OpIsNormal
  • OpSignBitSet
  • OpLessOrGreater
  • OpOrdered
  • OpUnordered
  • OpLogicalEqual
  • OpLogicalNotEqual
  • OpLogicalOr
  • OpLogicalAnd
  • OpLogicalNot
  • OpSelect
  • OpIEqual
  • OpINotEqual
  • OpUGreaterThan
  • OpSGreaterThan
  • OpUGreaterThanEqual
  • OpSGreaterThanEqual
  • OpULessThan
  • OpSLessThan
  • OpULessThanEqual
  • OpSLessThanEqual
  • OpFOrdEqual
  • OpFUnordEqual
  • OpFOrdNotEqual
  • OpFUnordNotEqual
  • OpFOrdLessThan
  • OpFUnordLessThan
  • OpFOrdGreaterThan
  • OpFUnordGreaterThan
  • OpFOrdLessThanEqual
  • OpFUnordLessThanEqual
  • OpFOrdGreaterThanEqual
  • OpFUnordGreaterThanEqual

Derivative Instructions

  • OpDPdx (shader)
  • OpDPdy (shader)
  • OpFwidth (shader)
  • OpDPdxFine (shader)
  • OpDPdyFine (shader)
  • OpFwidthFine (shader)
  • OpDPdxCoarse (shader)
  • OpDPdyCoarse (shader)
  • OpFwidthCoarse (shader)

Control-Flow Instructions

  • OpPhi
  • OpLoopMerge
  • OpSelectionMerge
  • OpLabel
  • OpBranch
  • OpBranchConditional
  • OpSwitch
  • OpKill (shader)
  • OpReturn
  • OpReturnValue
  • OpUnreachable
  • OpLifetimeStart
  • OpLifetimeStop

Atomic Instructions

  • OpAtomicLoad
  • OpAtomicStore
  • OpAtomicExchange
  • OpAtomicCompareExchange
  • OpAtomicCompareExchangeWeak
  • OpAtomicIIncrement
  • OpAtomicIDecrement
  • OpAtomicIAdd
  • OpAtomicISub
  • OpAtomicSMin
  • OpAtomicUMin
  • OpAtomicSMax
  • OpAtomicUMax
  • OpAtomicAnd
  • OpAtomicOr
  • OpAtomicXor
  • OpAtomicFlagTestAndSet
  • OpAtomicFlagClear

Primitive Instructions

  • OpEmitVertex (shader)
  • OpEndPrimitive (shader)
  • OpEmitStreamVertex (shader)
  • OpEndStreamPrimitive (shader)

Barrier Instructions

  • OpControlBarrier
  • OpMemoryBarrier

Group Instructions

  • OpGroupAsyncCopy
  • OpGroupWaitEvents
  • OpGroupAll
  • OpGroupAny
  • OpGroupBroadcast
  • OpGroupIAdd
  • OpGroupFAdd
  • OpGroupFMin
  • OpGroupUMin
  • OpGroupSMin
  • OpGroupFMax
  • OpGroupUMax
  • OpGroupSMax
  • OpSubgroupBallotKHR
  • OpSubgroupFirstInvocationKHR
  • OpSubgroupReadInvocationKHR

Device-Side Enqueue Instructions

  • OpEnqueueMarker
  • OpEnqueueKernel
  • OpGetKernelNDrangeSubGroupCount
  • OpGetKernelNDrangeMaxSubGroupSize
  • OpGetKernelWorkGroupSize
  • OpGetKernelPrefferedWorkGroupSizeMultiple
  • OpRetainEvent
  • OpReleaseEvent
  • OpCreateUserEvent
  • OpIsValidEvent
  • OpSetUserEventStatus
  • OpCaptureEventProfilingInfo
  • OpGetDefaultQueue
  • OpBuildNDRange

Pipe Instructions

  • OpReadPipe
  • OpWritePipe
  • OpReservedReadPipe
  • OpReservedWritePipe
  • OpReserveReadPipePackets
  • OpReserveWritePipePackets
  • OpCommitReadPipe
  • OpCommitWritePipe
  • OpIsValidReserveId
  • OpGetNumPipePackets
  • OpGetMaxPipePackets
  • OpGroupReserveReadPipePackets
  • OpGroupReserveWritePipePackets
  • OpGroupCommitReadPipe
  • OpGroupCommitWritePipe
Last Author
pmoreau
Last Edited
Feb 1 2018, 11:53 PM

Event Timeline

pmoreau created this document.Jun 28 2017, 9:28 PM
pmoreau edited the content of this document. (Show Details)
pmoreau added a project: Mesa.
pmoreau edited the content of this document. (Show Details)Jun 28 2017, 9:44 PM
pmoreau edited the content of this document. (Show Details)Jun 28 2017, 9:57 PM
pmoreau edited the content of this document. (Show Details)Jun 28 2017, 10:07 PM
pmoreau edited the content of this document. (Show Details)Jun 29 2017, 12:05 AM
pmoreau edited the content of this document. (Show Details)Jun 29 2017, 12:08 AM
pmoreau edited the content of this document. (Show Details)Jul 3 2017, 10:58 PM
pmoreau edited the content of this document. (Show Details)
pmoreau edited the content of this document. (Show Details)Jul 3 2017, 11:00 PM
pmoreau edited the content of this document. (Show Details)Jul 3 2017, 11:04 PM
pmoreau edited the content of this document. (Show Details)Nov 6 2017, 1:38 AM
pmoreau edited the content of this document. (Show Details)Dec 3 2017, 5:32 PM
pmoreau edited the content of this document. (Show Details)Dec 6 2017, 11:03 PM
pmoreau edited the content of this document. (Show Details)Feb 1 2018, 11:53 PM