module Language.SpirV.Capability where
import Data.Word (Word32)
import Language.SpirV.SpirEnum
data Capability =
Matrix
| Shader
| Geometry
| Tessellation
| Addresses
| Linkage
| Kernel
| Vector16
| Float16Buffer
| Float16
| Float64
| Int64
| Int64Atomics
| ImageBasic
| ImageReadWrite
| ImageMipmap
| Pipes
| Groups
| DeviceEnqueue
| LiteralSampler
| AtomicStorage
| Int16
| TessellationPointSize
| GeometryPointSize
| ImageGatherExtended
| StorageImageMultisample
| UniformBufferArrayDynamicIndexing
| SampledImageArrayDynamicIndexing
| StorageBufferArrayDynamicIndexing
| StorageImageArrayDynamicIndexing
| ClipDistance
| CullDistance
| ImageCubeArray
| SampleRateShading
| ImageRect
| SampledRect
| GenericPointer
| Int8
| InputAttachment
| SparseResidency
| MinLod
| Sampled1D
| Image1D
| SampledCubeArray
| SampledBuffer
| ImageBuffer
| ImageMSArray
| StorageImageExtendedFormats
| ImageQuery
| DerivativeControl
| InterpolationFunction
| TransformFeedback
| GeometryStreams
| StorageImageReadWithoutFormat
| StorageImageWriteWithoutFormat
| MultiViewport
deriving(Read, Show, Eq, Ord)
instance SpirEnum Capability Word32 where
toWord Matrix = 0
toWord Shader = 1
toWord Geometry = 2
toWord Tessellation = 3
toWord Addresses = 4
toWord Linkage = 5
toWord Kernel = 6
toWord Vector16 = 7
toWord Float16Buffer = 8
toWord Float16 = 9
toWord Float64 = 10
toWord Int64 = 11
toWord Int64Atomics = 12
toWord ImageBasic = 13
toWord ImageReadWrite = 14
toWord ImageMipmap = 15
toWord Pipes = 17
toWord Groups = 18
toWord DeviceEnqueue = 19
toWord LiteralSampler = 20
toWord AtomicStorage = 21
toWord Int16 = 22
toWord TessellationPointSize = 23
toWord GeometryPointSize = 24
toWord ImageGatherExtended = 25
toWord StorageImageMultisample = 27
toWord UniformBufferArrayDynamicIndexing = 28
toWord SampledImageArrayDynamicIndexing = 29
toWord StorageBufferArrayDynamicIndexing = 30
toWord StorageImageArrayDynamicIndexing = 31
toWord ClipDistance = 32
toWord CullDistance = 33
toWord ImageCubeArray = 34
toWord SampleRateShading = 35
toWord ImageRect = 36
toWord SampledRect = 37
toWord GenericPointer = 38
toWord Int8 = 39
toWord InputAttachment = 40
toWord SparseResidency = 41
toWord MinLod = 42
toWord Sampled1D = 43
toWord Image1D = 44
toWord SampledCubeArray = 45
toWord SampledBuffer = 46
toWord ImageBuffer = 47
toWord ImageMSArray = 48
toWord StorageImageExtendedFormats = 49
toWord ImageQuery = 50
toWord DerivativeControl = 51
toWord InterpolationFunction = 52
toWord TransformFeedback = 53
toWord GeometryStreams = 54
toWord StorageImageReadWithoutFormat = 55
toWord StorageImageWriteWithoutFormat = 56
toWord MultiViewport = 57
fromWord 0 = Just Matrix
fromWord 1 = Just Shader
fromWord 2 = Just Geometry
fromWord 3 = Just Tessellation
fromWord 4 = Just Addresses
fromWord 5 = Just Linkage
fromWord 6 = Just Kernel
fromWord 7 = Just Vector16
fromWord 8 = Just Float16Buffer
fromWord 9 = Just Float16
fromWord 10 = Just Float64
fromWord 11 = Just Int64
fromWord 12 = Just Int64Atomics
fromWord 13 = Just ImageBasic
fromWord 14 = Just ImageReadWrite
fromWord 15 = Just ImageMipmap
fromWord 17 = Just Pipes
fromWord 18 = Just Groups
fromWord 19 = Just DeviceEnqueue
fromWord 20 = Just LiteralSampler
fromWord 21 = Just AtomicStorage
fromWord 22 = Just Int16
fromWord 23 = Just TessellationPointSize
fromWord 24 = Just GeometryPointSize
fromWord 25 = Just ImageGatherExtended
fromWord 27 = Just StorageImageMultisample
fromWord 28 = Just UniformBufferArrayDynamicIndexing
fromWord 29 = Just SampledImageArrayDynamicIndexing
fromWord 30 = Just StorageBufferArrayDynamicIndexing
fromWord 31 = Just StorageImageArrayDynamicIndexing
fromWord 32 = Just ClipDistance
fromWord 33 = Just CullDistance
fromWord 34 = Just ImageCubeArray
fromWord 35 = Just SampleRateShading
fromWord 36 = Just ImageRect
fromWord 37 = Just SampledRect
fromWord 38 = Just GenericPointer
fromWord 39 = Just Int8
fromWord 40 = Just InputAttachment
fromWord 41 = Just SparseResidency
fromWord 42 = Just MinLod
fromWord 43 = Just Sampled1D
fromWord 44 = Just Image1D
fromWord 45 = Just SampledCubeArray
fromWord 46 = Just SampledBuffer
fromWord 47 = Just ImageBuffer
fromWord 48 = Just ImageMSArray
fromWord 49 = Just StorageImageExtendedFormats
fromWord 50 = Just ImageQuery
fromWord 51 = Just DerivativeControl
fromWord 52 = Just InterpolationFunction
fromWord 53 = Just TransformFeedback
fromWord 54 = Just GeometryStreams
fromWord 55 = Just StorageImageReadWithoutFormat
fromWord 56 = Just StorageImageWriteWithoutFormat
fromWord 57 = Just MultiViewport
fromWord _ = Nothing
requiredCapabilities Shader = [Matrix]
requiredCapabilities Geometry = [Shader]
requiredCapabilities Tessellation = [Shader]
requiredCapabilities Vector16 = [Kernel]
requiredCapabilities Float16Buffer = [Kernel]
requiredCapabilities Int64Atomics = [Int64]
requiredCapabilities ImageBasic = [Kernel]
requiredCapabilities ImageReadWrite = [ImageBasic]
requiredCapabilities ImageMipmap = [ImageBasic]
requiredCapabilities Pipes = [Kernel]
requiredCapabilities DeviceEnqueue = [Kernel]
requiredCapabilities LiteralSampler = [Kernel]
requiredCapabilities AtomicStorage = [Shader]
requiredCapabilities TessellationPointSize = [Tessellation]
requiredCapabilities GeometryPointSize = [Geometry]
requiredCapabilities ImageGatherExtended = [Shader]
requiredCapabilities StorageImageMultisample = [Shader]
requiredCapabilities UniformBufferArrayDynamicIndexing = [Shader]
requiredCapabilities SampledImageArrayDynamicIndexing = [Shader]
requiredCapabilities StorageBufferArrayDynamicIndexing = [Shader]
requiredCapabilities StorageImageArrayDynamicIndexing = [Shader]
requiredCapabilities ClipDistance = [Shader]
requiredCapabilities CullDistance = [Shader]
requiredCapabilities ImageCubeArray = [SampledCubeArray]
requiredCapabilities SampleRateShading = [Shader]
requiredCapabilities ImageRect = [SampledRect]
requiredCapabilities SampledRect = [Shader]
requiredCapabilities GenericPointer = [Addresses]
requiredCapabilities Int8 = [Kernel]
requiredCapabilities InputAttachment = [Shader]
requiredCapabilities SparseResidency = [Shader]
requiredCapabilities MinLod = [Shader]
requiredCapabilities Sampled1D = [Shader]
requiredCapabilities Image1D = [Sampled1D]
requiredCapabilities SampledCubeArray = [Shader]
requiredCapabilities SampledBuffer = [Shader]
requiredCapabilities ImageBuffer = [SampledBuffer]
requiredCapabilities ImageMSArray = [Shader]
requiredCapabilities StorageImageExtendedFormats = [Shader]
requiredCapabilities ImageQuery = [Shader]
requiredCapabilities DerivativeControl = [Shader]
requiredCapabilities InterpolationFunction = [Shader]
requiredCapabilities TransformFeedback = [Shader]
requiredCapabilities GeometryStreams = [Geometry]
requiredCapabilities StorageImageReadWithoutFormat = [Shader]
requiredCapabilities StorageImageWriteWithoutFormat = [Shader]
requiredCapabilities MultiViewport = [Geometry]
requiredCapabilities _ = []