module Data.SpirV.Enum.BuiltIn where

import Data.String (IsString(..))
import Data.Word (Word32)
import Foreign (Storable(..))
import GHC.Read (Read(..))
import Text.ParserCombinators.ReadPrec (pfail)
import qualified GHC.Read as Read
import qualified Text.Read.Lex as Lex

newtype BuiltIn = BuiltIn Word32
  deriving (BuiltIn -> BuiltIn -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: BuiltIn -> BuiltIn -> Bool
$c/= :: BuiltIn -> BuiltIn -> Bool
== :: BuiltIn -> BuiltIn -> Bool
$c== :: BuiltIn -> BuiltIn -> Bool
Eq, Eq BuiltIn
BuiltIn -> BuiltIn -> Bool
BuiltIn -> BuiltIn -> Ordering
BuiltIn -> BuiltIn -> BuiltIn
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: BuiltIn -> BuiltIn -> BuiltIn
$cmin :: BuiltIn -> BuiltIn -> BuiltIn
max :: BuiltIn -> BuiltIn -> BuiltIn
$cmax :: BuiltIn -> BuiltIn -> BuiltIn
>= :: BuiltIn -> BuiltIn -> Bool
$c>= :: BuiltIn -> BuiltIn -> Bool
> :: BuiltIn -> BuiltIn -> Bool
$c> :: BuiltIn -> BuiltIn -> Bool
<= :: BuiltIn -> BuiltIn -> Bool
$c<= :: BuiltIn -> BuiltIn -> Bool
< :: BuiltIn -> BuiltIn -> Bool
$c< :: BuiltIn -> BuiltIn -> Bool
compare :: BuiltIn -> BuiltIn -> Ordering
$ccompare :: BuiltIn -> BuiltIn -> Ordering
Ord, Ptr BuiltIn -> IO BuiltIn
Ptr BuiltIn -> Int -> IO BuiltIn
Ptr BuiltIn -> Int -> BuiltIn -> IO ()
Ptr BuiltIn -> BuiltIn -> IO ()
BuiltIn -> Int
forall b. Ptr b -> Int -> IO BuiltIn
forall b. Ptr b -> Int -> BuiltIn -> IO ()
forall a.
(a -> Int)
-> (a -> Int)
-> (Ptr a -> Int -> IO a)
-> (Ptr a -> Int -> a -> IO ())
-> (forall b. Ptr b -> Int -> IO a)
-> (forall b. Ptr b -> Int -> a -> IO ())
-> (Ptr a -> IO a)
-> (Ptr a -> a -> IO ())
-> Storable a
poke :: Ptr BuiltIn -> BuiltIn -> IO ()
$cpoke :: Ptr BuiltIn -> BuiltIn -> IO ()
peek :: Ptr BuiltIn -> IO BuiltIn
$cpeek :: Ptr BuiltIn -> IO BuiltIn
pokeByteOff :: forall b. Ptr b -> Int -> BuiltIn -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> BuiltIn -> IO ()
peekByteOff :: forall b. Ptr b -> Int -> IO BuiltIn
$cpeekByteOff :: forall b. Ptr b -> Int -> IO BuiltIn
pokeElemOff :: Ptr BuiltIn -> Int -> BuiltIn -> IO ()
$cpokeElemOff :: Ptr BuiltIn -> Int -> BuiltIn -> IO ()
peekElemOff :: Ptr BuiltIn -> Int -> IO BuiltIn
$cpeekElemOff :: Ptr BuiltIn -> Int -> IO BuiltIn
alignment :: BuiltIn -> Int
$calignment :: BuiltIn -> Int
sizeOf :: BuiltIn -> Int
$csizeOf :: BuiltIn -> Int
Storable)

pattern Position :: BuiltIn
pattern $bPosition :: BuiltIn
$mPosition :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
Position = BuiltIn 0

pattern PointSize :: BuiltIn
pattern $bPointSize :: BuiltIn
$mPointSize :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
PointSize = BuiltIn 1

pattern ClipDistance :: BuiltIn
pattern $bClipDistance :: BuiltIn
$mClipDistance :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
ClipDistance = BuiltIn 3

pattern CullDistance :: BuiltIn
pattern $bCullDistance :: BuiltIn
$mCullDistance :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
CullDistance = BuiltIn 4

pattern VertexId :: BuiltIn
pattern $bVertexId :: BuiltIn
$mVertexId :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
VertexId = BuiltIn 5

pattern InstanceId :: BuiltIn
pattern $bInstanceId :: BuiltIn
$mInstanceId :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
InstanceId = BuiltIn 6

pattern PrimitiveId :: BuiltIn
pattern $bPrimitiveId :: BuiltIn
$mPrimitiveId :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
PrimitiveId = BuiltIn 7

pattern InvocationId :: BuiltIn
pattern $bInvocationId :: BuiltIn
$mInvocationId :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
InvocationId = BuiltIn 8

pattern Layer :: BuiltIn
pattern $bLayer :: BuiltIn
$mLayer :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
Layer = BuiltIn 9

pattern ViewportIndex :: BuiltIn
pattern $bViewportIndex :: BuiltIn
$mViewportIndex :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
ViewportIndex = BuiltIn 10

pattern TessLevelOuter :: BuiltIn
pattern $bTessLevelOuter :: BuiltIn
$mTessLevelOuter :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
TessLevelOuter = BuiltIn 11

pattern TessLevelInner :: BuiltIn
pattern $bTessLevelInner :: BuiltIn
$mTessLevelInner :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
TessLevelInner = BuiltIn 12

pattern TessCoord :: BuiltIn
pattern $bTessCoord :: BuiltIn
$mTessCoord :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
TessCoord = BuiltIn 13

pattern PatchVertices :: BuiltIn
pattern $bPatchVertices :: BuiltIn
$mPatchVertices :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
PatchVertices = BuiltIn 14

pattern FragCoord :: BuiltIn
pattern $bFragCoord :: BuiltIn
$mFragCoord :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
FragCoord = BuiltIn 15

pattern PointCoord :: BuiltIn
pattern $bPointCoord :: BuiltIn
$mPointCoord :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
PointCoord = BuiltIn 16

pattern FrontFacing :: BuiltIn
pattern $bFrontFacing :: BuiltIn
$mFrontFacing :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
FrontFacing = BuiltIn 17

pattern SampleId :: BuiltIn
pattern $bSampleId :: BuiltIn
$mSampleId :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
SampleId = BuiltIn 18

pattern SamplePosition :: BuiltIn
pattern $bSamplePosition :: BuiltIn
$mSamplePosition :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
SamplePosition = BuiltIn 19

pattern SampleMask :: BuiltIn
pattern $bSampleMask :: BuiltIn
$mSampleMask :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
SampleMask = BuiltIn 20

pattern FragDepth :: BuiltIn
pattern $bFragDepth :: BuiltIn
$mFragDepth :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
FragDepth = BuiltIn 22

pattern HelperInvocation :: BuiltIn
pattern $bHelperInvocation :: BuiltIn
$mHelperInvocation :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
HelperInvocation = BuiltIn 23

pattern NumWorkgroups :: BuiltIn
pattern $bNumWorkgroups :: BuiltIn
$mNumWorkgroups :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
NumWorkgroups = BuiltIn 24

pattern WorkgroupSize :: BuiltIn
pattern $bWorkgroupSize :: BuiltIn
$mWorkgroupSize :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
WorkgroupSize = BuiltIn 25

pattern WorkgroupId :: BuiltIn
pattern $bWorkgroupId :: BuiltIn
$mWorkgroupId :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
WorkgroupId = BuiltIn 26

pattern LocalInvocationId :: BuiltIn
pattern $bLocalInvocationId :: BuiltIn
$mLocalInvocationId :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
LocalInvocationId = BuiltIn 27

pattern GlobalInvocationId :: BuiltIn
pattern $bGlobalInvocationId :: BuiltIn
$mGlobalInvocationId :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
GlobalInvocationId = BuiltIn 28

pattern LocalInvocationIndex :: BuiltIn
pattern $bLocalInvocationIndex :: BuiltIn
$mLocalInvocationIndex :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
LocalInvocationIndex = BuiltIn 29

pattern WorkDim :: BuiltIn
pattern $bWorkDim :: BuiltIn
$mWorkDim :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
WorkDim = BuiltIn 30

pattern GlobalSize :: BuiltIn
pattern $bGlobalSize :: BuiltIn
$mGlobalSize :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
GlobalSize = BuiltIn 31

pattern EnqueuedWorkgroupSize :: BuiltIn
pattern $bEnqueuedWorkgroupSize :: BuiltIn
$mEnqueuedWorkgroupSize :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
EnqueuedWorkgroupSize = BuiltIn 32

pattern GlobalOffset :: BuiltIn
pattern $bGlobalOffset :: BuiltIn
$mGlobalOffset :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
GlobalOffset = BuiltIn 33

pattern GlobalLinearId :: BuiltIn
pattern $bGlobalLinearId :: BuiltIn
$mGlobalLinearId :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
GlobalLinearId = BuiltIn 34

pattern SubgroupSize :: BuiltIn
pattern $bSubgroupSize :: BuiltIn
$mSubgroupSize :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
SubgroupSize = BuiltIn 36

pattern SubgroupMaxSize :: BuiltIn
pattern $bSubgroupMaxSize :: BuiltIn
$mSubgroupMaxSize :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
SubgroupMaxSize = BuiltIn 37

pattern NumSubgroups :: BuiltIn
pattern $bNumSubgroups :: BuiltIn
$mNumSubgroups :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
NumSubgroups = BuiltIn 38

pattern NumEnqueuedSubgroups :: BuiltIn
pattern $bNumEnqueuedSubgroups :: BuiltIn
$mNumEnqueuedSubgroups :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
NumEnqueuedSubgroups = BuiltIn 39

pattern SubgroupId :: BuiltIn
pattern $bSubgroupId :: BuiltIn
$mSubgroupId :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
SubgroupId = BuiltIn 40

pattern SubgroupLocalInvocationId :: BuiltIn
pattern $bSubgroupLocalInvocationId :: BuiltIn
$mSubgroupLocalInvocationId :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
SubgroupLocalInvocationId = BuiltIn 41

pattern VertexIndex :: BuiltIn
pattern $bVertexIndex :: BuiltIn
$mVertexIndex :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
VertexIndex = BuiltIn 42

pattern InstanceIndex :: BuiltIn
pattern $bInstanceIndex :: BuiltIn
$mInstanceIndex :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
InstanceIndex = BuiltIn 43

pattern CoreIDARM :: BuiltIn
pattern $bCoreIDARM :: BuiltIn
$mCoreIDARM :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
CoreIDARM = BuiltIn 4160

pattern CoreCountARM :: BuiltIn
pattern $bCoreCountARM :: BuiltIn
$mCoreCountARM :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
CoreCountARM = BuiltIn 4161

pattern CoreMaxIDARM :: BuiltIn
pattern $bCoreMaxIDARM :: BuiltIn
$mCoreMaxIDARM :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
CoreMaxIDARM = BuiltIn 4162

pattern WarpIDARM :: BuiltIn
pattern $bWarpIDARM :: BuiltIn
$mWarpIDARM :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
WarpIDARM = BuiltIn 4163

pattern WarpMaxIDARM :: BuiltIn
pattern $bWarpMaxIDARM :: BuiltIn
$mWarpMaxIDARM :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
WarpMaxIDARM = BuiltIn 4164

pattern SubgroupEqMask :: BuiltIn
pattern $bSubgroupEqMask :: BuiltIn
$mSubgroupEqMask :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
SubgroupEqMask = BuiltIn 4416

pattern SubgroupEqMaskKHR :: BuiltIn
pattern $bSubgroupEqMaskKHR :: BuiltIn
$mSubgroupEqMaskKHR :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
SubgroupEqMaskKHR = BuiltIn 4416

pattern SubgroupGeMask :: BuiltIn
pattern $bSubgroupGeMask :: BuiltIn
$mSubgroupGeMask :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
SubgroupGeMask = BuiltIn 4417

pattern SubgroupGeMaskKHR :: BuiltIn
pattern $bSubgroupGeMaskKHR :: BuiltIn
$mSubgroupGeMaskKHR :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
SubgroupGeMaskKHR = BuiltIn 4417

pattern SubgroupGtMask :: BuiltIn
pattern $bSubgroupGtMask :: BuiltIn
$mSubgroupGtMask :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
SubgroupGtMask = BuiltIn 4418

pattern SubgroupGtMaskKHR :: BuiltIn
pattern $bSubgroupGtMaskKHR :: BuiltIn
$mSubgroupGtMaskKHR :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
SubgroupGtMaskKHR = BuiltIn 4418

pattern SubgroupLeMask :: BuiltIn
pattern $bSubgroupLeMask :: BuiltIn
$mSubgroupLeMask :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
SubgroupLeMask = BuiltIn 4419

pattern SubgroupLeMaskKHR :: BuiltIn
pattern $bSubgroupLeMaskKHR :: BuiltIn
$mSubgroupLeMaskKHR :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
SubgroupLeMaskKHR = BuiltIn 4419

pattern SubgroupLtMask :: BuiltIn
pattern $bSubgroupLtMask :: BuiltIn
$mSubgroupLtMask :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
SubgroupLtMask = BuiltIn 4420

pattern SubgroupLtMaskKHR :: BuiltIn
pattern $bSubgroupLtMaskKHR :: BuiltIn
$mSubgroupLtMaskKHR :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
SubgroupLtMaskKHR = BuiltIn 4420

pattern BaseVertex :: BuiltIn
pattern $bBaseVertex :: BuiltIn
$mBaseVertex :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
BaseVertex = BuiltIn 4424

pattern BaseInstance :: BuiltIn
pattern $bBaseInstance :: BuiltIn
$mBaseInstance :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
BaseInstance = BuiltIn 4425

pattern DrawIndex :: BuiltIn
pattern $bDrawIndex :: BuiltIn
$mDrawIndex :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
DrawIndex = BuiltIn 4426

pattern PrimitiveShadingRateKHR :: BuiltIn
pattern $bPrimitiveShadingRateKHR :: BuiltIn
$mPrimitiveShadingRateKHR :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
PrimitiveShadingRateKHR = BuiltIn 4432

pattern DeviceIndex :: BuiltIn
pattern $bDeviceIndex :: BuiltIn
$mDeviceIndex :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
DeviceIndex = BuiltIn 4438

pattern ViewIndex :: BuiltIn
pattern $bViewIndex :: BuiltIn
$mViewIndex :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
ViewIndex = BuiltIn 4440

pattern ShadingRateKHR :: BuiltIn
pattern $bShadingRateKHR :: BuiltIn
$mShadingRateKHR :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
ShadingRateKHR = BuiltIn 4444

pattern BaryCoordNoPerspAMD :: BuiltIn
pattern $bBaryCoordNoPerspAMD :: BuiltIn
$mBaryCoordNoPerspAMD :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
BaryCoordNoPerspAMD = BuiltIn 4992

pattern BaryCoordNoPerspCentroidAMD :: BuiltIn
pattern $bBaryCoordNoPerspCentroidAMD :: BuiltIn
$mBaryCoordNoPerspCentroidAMD :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
BaryCoordNoPerspCentroidAMD = BuiltIn 4993

pattern BaryCoordNoPerspSampleAMD :: BuiltIn
pattern $bBaryCoordNoPerspSampleAMD :: BuiltIn
$mBaryCoordNoPerspSampleAMD :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
BaryCoordNoPerspSampleAMD = BuiltIn 4994

pattern BaryCoordSmoothAMD :: BuiltIn
pattern $bBaryCoordSmoothAMD :: BuiltIn
$mBaryCoordSmoothAMD :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
BaryCoordSmoothAMD = BuiltIn 4995

pattern BaryCoordSmoothCentroidAMD :: BuiltIn
pattern $bBaryCoordSmoothCentroidAMD :: BuiltIn
$mBaryCoordSmoothCentroidAMD :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
BaryCoordSmoothCentroidAMD = BuiltIn 4996

pattern BaryCoordSmoothSampleAMD :: BuiltIn
pattern $bBaryCoordSmoothSampleAMD :: BuiltIn
$mBaryCoordSmoothSampleAMD :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
BaryCoordSmoothSampleAMD = BuiltIn 4997

pattern BaryCoordPullModelAMD :: BuiltIn
pattern $bBaryCoordPullModelAMD :: BuiltIn
$mBaryCoordPullModelAMD :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
BaryCoordPullModelAMD = BuiltIn 4998

pattern FragStencilRefEXT :: BuiltIn
pattern $bFragStencilRefEXT :: BuiltIn
$mFragStencilRefEXT :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
FragStencilRefEXT = BuiltIn 5014

pattern ViewportMaskNV :: BuiltIn
pattern $bViewportMaskNV :: BuiltIn
$mViewportMaskNV :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
ViewportMaskNV = BuiltIn 5253

pattern SecondaryPositionNV :: BuiltIn
pattern $bSecondaryPositionNV :: BuiltIn
$mSecondaryPositionNV :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
SecondaryPositionNV = BuiltIn 5257

pattern SecondaryViewportMaskNV :: BuiltIn
pattern $bSecondaryViewportMaskNV :: BuiltIn
$mSecondaryViewportMaskNV :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
SecondaryViewportMaskNV = BuiltIn 5258

pattern PositionPerViewNV :: BuiltIn
pattern $bPositionPerViewNV :: BuiltIn
$mPositionPerViewNV :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
PositionPerViewNV = BuiltIn 5261

pattern ViewportMaskPerViewNV :: BuiltIn
pattern $bViewportMaskPerViewNV :: BuiltIn
$mViewportMaskPerViewNV :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
ViewportMaskPerViewNV = BuiltIn 5262

pattern FullyCoveredEXT :: BuiltIn
pattern $bFullyCoveredEXT :: BuiltIn
$mFullyCoveredEXT :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
FullyCoveredEXT = BuiltIn 5264

pattern TaskCountNV :: BuiltIn
pattern $bTaskCountNV :: BuiltIn
$mTaskCountNV :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
TaskCountNV = BuiltIn 5274

pattern PrimitiveCountNV :: BuiltIn
pattern $bPrimitiveCountNV :: BuiltIn
$mPrimitiveCountNV :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
PrimitiveCountNV = BuiltIn 5275

pattern PrimitiveIndicesNV :: BuiltIn
pattern $bPrimitiveIndicesNV :: BuiltIn
$mPrimitiveIndicesNV :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
PrimitiveIndicesNV = BuiltIn 5276

pattern ClipDistancePerViewNV :: BuiltIn
pattern $bClipDistancePerViewNV :: BuiltIn
$mClipDistancePerViewNV :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
ClipDistancePerViewNV = BuiltIn 5277

pattern CullDistancePerViewNV :: BuiltIn
pattern $bCullDistancePerViewNV :: BuiltIn
$mCullDistancePerViewNV :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
CullDistancePerViewNV = BuiltIn 5278

pattern LayerPerViewNV :: BuiltIn
pattern $bLayerPerViewNV :: BuiltIn
$mLayerPerViewNV :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
LayerPerViewNV = BuiltIn 5279

pattern MeshViewCountNV :: BuiltIn
pattern $bMeshViewCountNV :: BuiltIn
$mMeshViewCountNV :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
MeshViewCountNV = BuiltIn 5280

pattern MeshViewIndicesNV :: BuiltIn
pattern $bMeshViewIndicesNV :: BuiltIn
$mMeshViewIndicesNV :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
MeshViewIndicesNV = BuiltIn 5281

pattern BaryCoordKHR :: BuiltIn
pattern $bBaryCoordKHR :: BuiltIn
$mBaryCoordKHR :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
BaryCoordKHR = BuiltIn 5286

pattern BaryCoordNV :: BuiltIn
pattern $bBaryCoordNV :: BuiltIn
$mBaryCoordNV :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
BaryCoordNV = BuiltIn 5286

pattern BaryCoordNoPerspKHR :: BuiltIn
pattern $bBaryCoordNoPerspKHR :: BuiltIn
$mBaryCoordNoPerspKHR :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
BaryCoordNoPerspKHR = BuiltIn 5287

pattern BaryCoordNoPerspNV :: BuiltIn
pattern $bBaryCoordNoPerspNV :: BuiltIn
$mBaryCoordNoPerspNV :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
BaryCoordNoPerspNV = BuiltIn 5287

pattern FragSizeEXT :: BuiltIn
pattern $bFragSizeEXT :: BuiltIn
$mFragSizeEXT :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
FragSizeEXT = BuiltIn 5292

pattern FragmentSizeNV :: BuiltIn
pattern $bFragmentSizeNV :: BuiltIn
$mFragmentSizeNV :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
FragmentSizeNV = BuiltIn 5292

pattern FragInvocationCountEXT :: BuiltIn
pattern $bFragInvocationCountEXT :: BuiltIn
$mFragInvocationCountEXT :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
FragInvocationCountEXT = BuiltIn 5293

pattern InvocationsPerPixelNV :: BuiltIn
pattern $bInvocationsPerPixelNV :: BuiltIn
$mInvocationsPerPixelNV :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
InvocationsPerPixelNV = BuiltIn 5293

pattern PrimitivePointIndicesEXT :: BuiltIn
pattern $bPrimitivePointIndicesEXT :: BuiltIn
$mPrimitivePointIndicesEXT :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
PrimitivePointIndicesEXT = BuiltIn 5294

pattern PrimitiveLineIndicesEXT :: BuiltIn
pattern $bPrimitiveLineIndicesEXT :: BuiltIn
$mPrimitiveLineIndicesEXT :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
PrimitiveLineIndicesEXT = BuiltIn 5295

pattern PrimitiveTriangleIndicesEXT :: BuiltIn
pattern $bPrimitiveTriangleIndicesEXT :: BuiltIn
$mPrimitiveTriangleIndicesEXT :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
PrimitiveTriangleIndicesEXT = BuiltIn 5296

pattern CullPrimitiveEXT :: BuiltIn
pattern $bCullPrimitiveEXT :: BuiltIn
$mCullPrimitiveEXT :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
CullPrimitiveEXT = BuiltIn 5299

pattern LaunchIdKHR :: BuiltIn
pattern $bLaunchIdKHR :: BuiltIn
$mLaunchIdKHR :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
LaunchIdKHR = BuiltIn 5319

pattern LaunchIdNV :: BuiltIn
pattern $bLaunchIdNV :: BuiltIn
$mLaunchIdNV :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
LaunchIdNV = BuiltIn 5319

pattern LaunchSizeKHR :: BuiltIn
pattern $bLaunchSizeKHR :: BuiltIn
$mLaunchSizeKHR :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
LaunchSizeKHR = BuiltIn 5320

pattern LaunchSizeNV :: BuiltIn
pattern $bLaunchSizeNV :: BuiltIn
$mLaunchSizeNV :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
LaunchSizeNV = BuiltIn 5320

pattern WorldRayOriginKHR :: BuiltIn
pattern $bWorldRayOriginKHR :: BuiltIn
$mWorldRayOriginKHR :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
WorldRayOriginKHR = BuiltIn 5321

pattern WorldRayOriginNV :: BuiltIn
pattern $bWorldRayOriginNV :: BuiltIn
$mWorldRayOriginNV :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
WorldRayOriginNV = BuiltIn 5321

pattern WorldRayDirectionKHR :: BuiltIn
pattern $bWorldRayDirectionKHR :: BuiltIn
$mWorldRayDirectionKHR :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
WorldRayDirectionKHR = BuiltIn 5322

pattern WorldRayDirectionNV :: BuiltIn
pattern $bWorldRayDirectionNV :: BuiltIn
$mWorldRayDirectionNV :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
WorldRayDirectionNV = BuiltIn 5322

pattern ObjectRayOriginKHR :: BuiltIn
pattern $bObjectRayOriginKHR :: BuiltIn
$mObjectRayOriginKHR :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
ObjectRayOriginKHR = BuiltIn 5323

pattern ObjectRayOriginNV :: BuiltIn
pattern $bObjectRayOriginNV :: BuiltIn
$mObjectRayOriginNV :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
ObjectRayOriginNV = BuiltIn 5323

pattern ObjectRayDirectionKHR :: BuiltIn
pattern $bObjectRayDirectionKHR :: BuiltIn
$mObjectRayDirectionKHR :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
ObjectRayDirectionKHR = BuiltIn 5324

pattern ObjectRayDirectionNV :: BuiltIn
pattern $bObjectRayDirectionNV :: BuiltIn
$mObjectRayDirectionNV :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
ObjectRayDirectionNV = BuiltIn 5324

pattern RayTminKHR :: BuiltIn
pattern $bRayTminKHR :: BuiltIn
$mRayTminKHR :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
RayTminKHR = BuiltIn 5325

pattern RayTminNV :: BuiltIn
pattern $bRayTminNV :: BuiltIn
$mRayTminNV :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
RayTminNV = BuiltIn 5325

pattern RayTmaxKHR :: BuiltIn
pattern $bRayTmaxKHR :: BuiltIn
$mRayTmaxKHR :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
RayTmaxKHR = BuiltIn 5326

pattern RayTmaxNV :: BuiltIn
pattern $bRayTmaxNV :: BuiltIn
$mRayTmaxNV :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
RayTmaxNV = BuiltIn 5326

pattern InstanceCustomIndexKHR :: BuiltIn
pattern $bInstanceCustomIndexKHR :: BuiltIn
$mInstanceCustomIndexKHR :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
InstanceCustomIndexKHR = BuiltIn 5327

pattern InstanceCustomIndexNV :: BuiltIn
pattern $bInstanceCustomIndexNV :: BuiltIn
$mInstanceCustomIndexNV :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
InstanceCustomIndexNV = BuiltIn 5327

pattern ObjectToWorldKHR :: BuiltIn
pattern $bObjectToWorldKHR :: BuiltIn
$mObjectToWorldKHR :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
ObjectToWorldKHR = BuiltIn 5330

pattern ObjectToWorldNV :: BuiltIn
pattern $bObjectToWorldNV :: BuiltIn
$mObjectToWorldNV :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
ObjectToWorldNV = BuiltIn 5330

pattern WorldToObjectKHR :: BuiltIn
pattern $bWorldToObjectKHR :: BuiltIn
$mWorldToObjectKHR :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
WorldToObjectKHR = BuiltIn 5331

pattern WorldToObjectNV :: BuiltIn
pattern $bWorldToObjectNV :: BuiltIn
$mWorldToObjectNV :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
WorldToObjectNV = BuiltIn 5331

pattern HitTNV :: BuiltIn
pattern $bHitTNV :: BuiltIn
$mHitTNV :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
HitTNV = BuiltIn 5332

pattern HitKindKHR :: BuiltIn
pattern $bHitKindKHR :: BuiltIn
$mHitKindKHR :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
HitKindKHR = BuiltIn 5333

pattern HitKindNV :: BuiltIn
pattern $bHitKindNV :: BuiltIn
$mHitKindNV :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
HitKindNV = BuiltIn 5333

pattern CurrentRayTimeNV :: BuiltIn
pattern $bCurrentRayTimeNV :: BuiltIn
$mCurrentRayTimeNV :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
CurrentRayTimeNV = BuiltIn 5334

pattern IncomingRayFlagsKHR :: BuiltIn
pattern $bIncomingRayFlagsKHR :: BuiltIn
$mIncomingRayFlagsKHR :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
IncomingRayFlagsKHR = BuiltIn 5351

pattern IncomingRayFlagsNV :: BuiltIn
pattern $bIncomingRayFlagsNV :: BuiltIn
$mIncomingRayFlagsNV :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
IncomingRayFlagsNV = BuiltIn 5351

pattern RayGeometryIndexKHR :: BuiltIn
pattern $bRayGeometryIndexKHR :: BuiltIn
$mRayGeometryIndexKHR :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
RayGeometryIndexKHR = BuiltIn 5352

pattern WarpsPerSMNV :: BuiltIn
pattern $bWarpsPerSMNV :: BuiltIn
$mWarpsPerSMNV :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
WarpsPerSMNV = BuiltIn 5374

pattern SMCountNV :: BuiltIn
pattern $bSMCountNV :: BuiltIn
$mSMCountNV :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
SMCountNV = BuiltIn 5375

pattern WarpIDNV :: BuiltIn
pattern $bWarpIDNV :: BuiltIn
$mWarpIDNV :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
WarpIDNV = BuiltIn 5376

pattern SMIDNV :: BuiltIn
pattern $bSMIDNV :: BuiltIn
$mSMIDNV :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
SMIDNV = BuiltIn 5377

pattern CullMaskKHR :: BuiltIn
pattern $bCullMaskKHR :: BuiltIn
$mCullMaskKHR :: forall {r}. BuiltIn -> ((# #) -> r) -> ((# #) -> r) -> r
CullMaskKHR = BuiltIn 6021

toName :: IsString a => BuiltIn -> a
toName :: forall a. IsString a => BuiltIn -> a
toName BuiltIn
x = case BuiltIn
x of
  BuiltIn
Position -> a
"Position"
  BuiltIn
PointSize -> a
"PointSize"
  BuiltIn
ClipDistance -> a
"ClipDistance"
  BuiltIn
CullDistance -> a
"CullDistance"
  BuiltIn
VertexId -> a
"VertexId"
  BuiltIn
InstanceId -> a
"InstanceId"
  BuiltIn
PrimitiveId -> a
"PrimitiveId"
  BuiltIn
InvocationId -> a
"InvocationId"
  BuiltIn
Layer -> a
"Layer"
  BuiltIn
ViewportIndex -> a
"ViewportIndex"
  BuiltIn
TessLevelOuter -> a
"TessLevelOuter"
  BuiltIn
TessLevelInner -> a
"TessLevelInner"
  BuiltIn
TessCoord -> a
"TessCoord"
  BuiltIn
PatchVertices -> a
"PatchVertices"
  BuiltIn
FragCoord -> a
"FragCoord"
  BuiltIn
PointCoord -> a
"PointCoord"
  BuiltIn
FrontFacing -> a
"FrontFacing"
  BuiltIn
SampleId -> a
"SampleId"
  BuiltIn
SamplePosition -> a
"SamplePosition"
  BuiltIn
SampleMask -> a
"SampleMask"
  BuiltIn
FragDepth -> a
"FragDepth"
  BuiltIn
HelperInvocation -> a
"HelperInvocation"
  BuiltIn
NumWorkgroups -> a
"NumWorkgroups"
  BuiltIn
WorkgroupSize -> a
"WorkgroupSize"
  BuiltIn
WorkgroupId -> a
"WorkgroupId"
  BuiltIn
LocalInvocationId -> a
"LocalInvocationId"
  BuiltIn
GlobalInvocationId -> a
"GlobalInvocationId"
  BuiltIn
LocalInvocationIndex -> a
"LocalInvocationIndex"
  BuiltIn
WorkDim -> a
"WorkDim"
  BuiltIn
GlobalSize -> a
"GlobalSize"
  BuiltIn
EnqueuedWorkgroupSize -> a
"EnqueuedWorkgroupSize"
  BuiltIn
GlobalOffset -> a
"GlobalOffset"
  BuiltIn
GlobalLinearId -> a
"GlobalLinearId"
  BuiltIn
SubgroupSize -> a
"SubgroupSize"
  BuiltIn
SubgroupMaxSize -> a
"SubgroupMaxSize"
  BuiltIn
NumSubgroups -> a
"NumSubgroups"
  BuiltIn
NumEnqueuedSubgroups -> a
"NumEnqueuedSubgroups"
  BuiltIn
SubgroupId -> a
"SubgroupId"
  BuiltIn
SubgroupLocalInvocationId -> a
"SubgroupLocalInvocationId"
  BuiltIn
VertexIndex -> a
"VertexIndex"
  BuiltIn
InstanceIndex -> a
"InstanceIndex"
  BuiltIn
CoreIDARM -> a
"CoreIDARM"
  BuiltIn
CoreCountARM -> a
"CoreCountARM"
  BuiltIn
CoreMaxIDARM -> a
"CoreMaxIDARM"
  BuiltIn
WarpIDARM -> a
"WarpIDARM"
  BuiltIn
WarpMaxIDARM -> a
"WarpMaxIDARM"
  BuiltIn
SubgroupEqMask -> a
"SubgroupEqMask"
  BuiltIn
SubgroupEqMaskKHR -> a
"SubgroupEqMaskKHR"
  BuiltIn
SubgroupGeMask -> a
"SubgroupGeMask"
  BuiltIn
SubgroupGeMaskKHR -> a
"SubgroupGeMaskKHR"
  BuiltIn
SubgroupGtMask -> a
"SubgroupGtMask"
  BuiltIn
SubgroupGtMaskKHR -> a
"SubgroupGtMaskKHR"
  BuiltIn
SubgroupLeMask -> a
"SubgroupLeMask"
  BuiltIn
SubgroupLeMaskKHR -> a
"SubgroupLeMaskKHR"
  BuiltIn
SubgroupLtMask -> a
"SubgroupLtMask"
  BuiltIn
SubgroupLtMaskKHR -> a
"SubgroupLtMaskKHR"
  BuiltIn
BaseVertex -> a
"BaseVertex"
  BuiltIn
BaseInstance -> a
"BaseInstance"
  BuiltIn
DrawIndex -> a
"DrawIndex"
  BuiltIn
PrimitiveShadingRateKHR -> a
"PrimitiveShadingRateKHR"
  BuiltIn
DeviceIndex -> a
"DeviceIndex"
  BuiltIn
ViewIndex -> a
"ViewIndex"
  BuiltIn
ShadingRateKHR -> a
"ShadingRateKHR"
  BuiltIn
BaryCoordNoPerspAMD -> a
"BaryCoordNoPerspAMD"
  BuiltIn
BaryCoordNoPerspCentroidAMD -> a
"BaryCoordNoPerspCentroidAMD"
  BuiltIn
BaryCoordNoPerspSampleAMD -> a
"BaryCoordNoPerspSampleAMD"
  BuiltIn
BaryCoordSmoothAMD -> a
"BaryCoordSmoothAMD"
  BuiltIn
BaryCoordSmoothCentroidAMD -> a
"BaryCoordSmoothCentroidAMD"
  BuiltIn
BaryCoordSmoothSampleAMD -> a
"BaryCoordSmoothSampleAMD"
  BuiltIn
BaryCoordPullModelAMD -> a
"BaryCoordPullModelAMD"
  BuiltIn
FragStencilRefEXT -> a
"FragStencilRefEXT"
  BuiltIn
ViewportMaskNV -> a
"ViewportMaskNV"
  BuiltIn
SecondaryPositionNV -> a
"SecondaryPositionNV"
  BuiltIn
SecondaryViewportMaskNV -> a
"SecondaryViewportMaskNV"
  BuiltIn
PositionPerViewNV -> a
"PositionPerViewNV"
  BuiltIn
ViewportMaskPerViewNV -> a
"ViewportMaskPerViewNV"
  BuiltIn
FullyCoveredEXT -> a
"FullyCoveredEXT"
  BuiltIn
TaskCountNV -> a
"TaskCountNV"
  BuiltIn
PrimitiveCountNV -> a
"PrimitiveCountNV"
  BuiltIn
PrimitiveIndicesNV -> a
"PrimitiveIndicesNV"
  BuiltIn
ClipDistancePerViewNV -> a
"ClipDistancePerViewNV"
  BuiltIn
CullDistancePerViewNV -> a
"CullDistancePerViewNV"
  BuiltIn
LayerPerViewNV -> a
"LayerPerViewNV"
  BuiltIn
MeshViewCountNV -> a
"MeshViewCountNV"
  BuiltIn
MeshViewIndicesNV -> a
"MeshViewIndicesNV"
  BuiltIn
BaryCoordKHR -> a
"BaryCoordKHR"
  BuiltIn
BaryCoordNV -> a
"BaryCoordNV"
  BuiltIn
BaryCoordNoPerspKHR -> a
"BaryCoordNoPerspKHR"
  BuiltIn
BaryCoordNoPerspNV -> a
"BaryCoordNoPerspNV"
  BuiltIn
FragSizeEXT -> a
"FragSizeEXT"
  BuiltIn
FragmentSizeNV -> a
"FragmentSizeNV"
  BuiltIn
FragInvocationCountEXT -> a
"FragInvocationCountEXT"
  BuiltIn
InvocationsPerPixelNV -> a
"InvocationsPerPixelNV"
  BuiltIn
PrimitivePointIndicesEXT -> a
"PrimitivePointIndicesEXT"
  BuiltIn
PrimitiveLineIndicesEXT -> a
"PrimitiveLineIndicesEXT"
  BuiltIn
PrimitiveTriangleIndicesEXT -> a
"PrimitiveTriangleIndicesEXT"
  BuiltIn
CullPrimitiveEXT -> a
"CullPrimitiveEXT"
  BuiltIn
LaunchIdKHR -> a
"LaunchIdKHR"
  BuiltIn
LaunchIdNV -> a
"LaunchIdNV"
  BuiltIn
LaunchSizeKHR -> a
"LaunchSizeKHR"
  BuiltIn
LaunchSizeNV -> a
"LaunchSizeNV"
  BuiltIn
WorldRayOriginKHR -> a
"WorldRayOriginKHR"
  BuiltIn
WorldRayOriginNV -> a
"WorldRayOriginNV"
  BuiltIn
WorldRayDirectionKHR -> a
"WorldRayDirectionKHR"
  BuiltIn
WorldRayDirectionNV -> a
"WorldRayDirectionNV"
  BuiltIn
ObjectRayOriginKHR -> a
"ObjectRayOriginKHR"
  BuiltIn
ObjectRayOriginNV -> a
"ObjectRayOriginNV"
  BuiltIn
ObjectRayDirectionKHR -> a
"ObjectRayDirectionKHR"
  BuiltIn
ObjectRayDirectionNV -> a
"ObjectRayDirectionNV"
  BuiltIn
RayTminKHR -> a
"RayTminKHR"
  BuiltIn
RayTminNV -> a
"RayTminNV"
  BuiltIn
RayTmaxKHR -> a
"RayTmaxKHR"
  BuiltIn
RayTmaxNV -> a
"RayTmaxNV"
  BuiltIn
InstanceCustomIndexKHR -> a
"InstanceCustomIndexKHR"
  BuiltIn
InstanceCustomIndexNV -> a
"InstanceCustomIndexNV"
  BuiltIn
ObjectToWorldKHR -> a
"ObjectToWorldKHR"
  BuiltIn
ObjectToWorldNV -> a
"ObjectToWorldNV"
  BuiltIn
WorldToObjectKHR -> a
"WorldToObjectKHR"
  BuiltIn
WorldToObjectNV -> a
"WorldToObjectNV"
  BuiltIn
HitTNV -> a
"HitTNV"
  BuiltIn
HitKindKHR -> a
"HitKindKHR"
  BuiltIn
HitKindNV -> a
"HitKindNV"
  BuiltIn
CurrentRayTimeNV -> a
"CurrentRayTimeNV"
  BuiltIn
IncomingRayFlagsKHR -> a
"IncomingRayFlagsKHR"
  BuiltIn
IncomingRayFlagsNV -> a
"IncomingRayFlagsNV"
  BuiltIn
RayGeometryIndexKHR -> a
"RayGeometryIndexKHR"
  BuiltIn
WarpsPerSMNV -> a
"WarpsPerSMNV"
  BuiltIn
SMCountNV -> a
"SMCountNV"
  BuiltIn
WarpIDNV -> a
"WarpIDNV"
  BuiltIn
SMIDNV -> a
"SMIDNV"
  BuiltIn
CullMaskKHR -> a
"CullMaskKHR"
  BuiltIn
unknown -> forall a. IsString a => [Char] -> a
fromString forall a b. (a -> b) -> a -> b
$ [Char]
"BuiltIn " forall a. [a] -> [a] -> [a]
++ forall a. Show a => a -> [Char]
show BuiltIn
unknown

instance Show BuiltIn where
  show :: BuiltIn -> [Char]
show = forall a. IsString a => BuiltIn -> a
toName

fromName :: (IsString a, Eq a) => a -> Maybe BuiltIn
fromName :: forall a. (IsString a, Eq a) => a -> Maybe BuiltIn
fromName a
x = case a
x of
  a
"Position" -> forall a. a -> Maybe a
Just BuiltIn
Position
  a
"PointSize" -> forall a. a -> Maybe a
Just BuiltIn
PointSize
  a
"ClipDistance" -> forall a. a -> Maybe a
Just BuiltIn
ClipDistance
  a
"CullDistance" -> forall a. a -> Maybe a
Just BuiltIn
CullDistance
  a
"VertexId" -> forall a. a -> Maybe a
Just BuiltIn
VertexId
  a
"InstanceId" -> forall a. a -> Maybe a
Just BuiltIn
InstanceId
  a
"PrimitiveId" -> forall a. a -> Maybe a
Just BuiltIn
PrimitiveId
  a
"InvocationId" -> forall a. a -> Maybe a
Just BuiltIn
InvocationId
  a
"Layer" -> forall a. a -> Maybe a
Just BuiltIn
Layer
  a
"ViewportIndex" -> forall a. a -> Maybe a
Just BuiltIn
ViewportIndex
  a
"TessLevelOuter" -> forall a. a -> Maybe a
Just BuiltIn
TessLevelOuter
  a
"TessLevelInner" -> forall a. a -> Maybe a
Just BuiltIn
TessLevelInner
  a
"TessCoord" -> forall a. a -> Maybe a
Just BuiltIn
TessCoord
  a
"PatchVertices" -> forall a. a -> Maybe a
Just BuiltIn
PatchVertices
  a
"FragCoord" -> forall a. a -> Maybe a
Just BuiltIn
FragCoord
  a
"PointCoord" -> forall a. a -> Maybe a
Just BuiltIn
PointCoord
  a
"FrontFacing" -> forall a. a -> Maybe a
Just BuiltIn
FrontFacing
  a
"SampleId" -> forall a. a -> Maybe a
Just BuiltIn
SampleId
  a
"SamplePosition" -> forall a. a -> Maybe a
Just BuiltIn
SamplePosition
  a
"SampleMask" -> forall a. a -> Maybe a
Just BuiltIn
SampleMask
  a
"FragDepth" -> forall a. a -> Maybe a
Just BuiltIn
FragDepth
  a
"HelperInvocation" -> forall a. a -> Maybe a
Just BuiltIn
HelperInvocation
  a
"NumWorkgroups" -> forall a. a -> Maybe a
Just BuiltIn
NumWorkgroups
  a
"WorkgroupSize" -> forall a. a -> Maybe a
Just BuiltIn
WorkgroupSize
  a
"WorkgroupId" -> forall a. a -> Maybe a
Just BuiltIn
WorkgroupId
  a
"LocalInvocationId" -> forall a. a -> Maybe a
Just BuiltIn
LocalInvocationId
  a
"GlobalInvocationId" -> forall a. a -> Maybe a
Just BuiltIn
GlobalInvocationId
  a
"LocalInvocationIndex" -> forall a. a -> Maybe a
Just BuiltIn
LocalInvocationIndex
  a
"WorkDim" -> forall a. a -> Maybe a
Just BuiltIn
WorkDim
  a
"GlobalSize" -> forall a. a -> Maybe a
Just BuiltIn
GlobalSize
  a
"EnqueuedWorkgroupSize" -> forall a. a -> Maybe a
Just BuiltIn
EnqueuedWorkgroupSize
  a
"GlobalOffset" -> forall a. a -> Maybe a
Just BuiltIn
GlobalOffset
  a
"GlobalLinearId" -> forall a. a -> Maybe a
Just BuiltIn
GlobalLinearId
  a
"SubgroupSize" -> forall a. a -> Maybe a
Just BuiltIn
SubgroupSize
  a
"SubgroupMaxSize" -> forall a. a -> Maybe a
Just BuiltIn
SubgroupMaxSize
  a
"NumSubgroups" -> forall a. a -> Maybe a
Just BuiltIn
NumSubgroups
  a
"NumEnqueuedSubgroups" -> forall a. a -> Maybe a
Just BuiltIn
NumEnqueuedSubgroups
  a
"SubgroupId" -> forall a. a -> Maybe a
Just BuiltIn
SubgroupId
  a
"SubgroupLocalInvocationId" -> forall a. a -> Maybe a
Just BuiltIn
SubgroupLocalInvocationId
  a
"VertexIndex" -> forall a. a -> Maybe a
Just BuiltIn
VertexIndex
  a
"InstanceIndex" -> forall a. a -> Maybe a
Just BuiltIn
InstanceIndex
  a
"CoreIDARM" -> forall a. a -> Maybe a
Just BuiltIn
CoreIDARM
  a
"CoreCountARM" -> forall a. a -> Maybe a
Just BuiltIn
CoreCountARM
  a
"CoreMaxIDARM" -> forall a. a -> Maybe a
Just BuiltIn
CoreMaxIDARM
  a
"WarpIDARM" -> forall a. a -> Maybe a
Just BuiltIn
WarpIDARM
  a
"WarpMaxIDARM" -> forall a. a -> Maybe a
Just BuiltIn
WarpMaxIDARM
  a
"SubgroupEqMask" -> forall a. a -> Maybe a
Just BuiltIn
SubgroupEqMask
  a
"SubgroupEqMaskKHR" -> forall a. a -> Maybe a
Just BuiltIn
SubgroupEqMaskKHR
  a
"SubgroupGeMask" -> forall a. a -> Maybe a
Just BuiltIn
SubgroupGeMask
  a
"SubgroupGeMaskKHR" -> forall a. a -> Maybe a
Just BuiltIn
SubgroupGeMaskKHR
  a
"SubgroupGtMask" -> forall a. a -> Maybe a
Just BuiltIn
SubgroupGtMask
  a
"SubgroupGtMaskKHR" -> forall a. a -> Maybe a
Just BuiltIn
SubgroupGtMaskKHR
  a
"SubgroupLeMask" -> forall a. a -> Maybe a
Just BuiltIn
SubgroupLeMask
  a
"SubgroupLeMaskKHR" -> forall a. a -> Maybe a
Just BuiltIn
SubgroupLeMaskKHR
  a
"SubgroupLtMask" -> forall a. a -> Maybe a
Just BuiltIn
SubgroupLtMask
  a
"SubgroupLtMaskKHR" -> forall a. a -> Maybe a
Just BuiltIn
SubgroupLtMaskKHR
  a
"BaseVertex" -> forall a. a -> Maybe a
Just BuiltIn
BaseVertex
  a
"BaseInstance" -> forall a. a -> Maybe a
Just BuiltIn
BaseInstance
  a
"DrawIndex" -> forall a. a -> Maybe a
Just BuiltIn
DrawIndex
  a
"PrimitiveShadingRateKHR" -> forall a. a -> Maybe a
Just BuiltIn
PrimitiveShadingRateKHR
  a
"DeviceIndex" -> forall a. a -> Maybe a
Just BuiltIn
DeviceIndex
  a
"ViewIndex" -> forall a. a -> Maybe a
Just BuiltIn
ViewIndex
  a
"ShadingRateKHR" -> forall a. a -> Maybe a
Just BuiltIn
ShadingRateKHR
  a
"BaryCoordNoPerspAMD" -> forall a. a -> Maybe a
Just BuiltIn
BaryCoordNoPerspAMD
  a
"BaryCoordNoPerspCentroidAMD" -> forall a. a -> Maybe a
Just BuiltIn
BaryCoordNoPerspCentroidAMD
  a
"BaryCoordNoPerspSampleAMD" -> forall a. a -> Maybe a
Just BuiltIn
BaryCoordNoPerspSampleAMD
  a
"BaryCoordSmoothAMD" -> forall a. a -> Maybe a
Just BuiltIn
BaryCoordSmoothAMD
  a
"BaryCoordSmoothCentroidAMD" -> forall a. a -> Maybe a
Just BuiltIn
BaryCoordSmoothCentroidAMD
  a
"BaryCoordSmoothSampleAMD" -> forall a. a -> Maybe a
Just BuiltIn
BaryCoordSmoothSampleAMD
  a
"BaryCoordPullModelAMD" -> forall a. a -> Maybe a
Just BuiltIn
BaryCoordPullModelAMD
  a
"FragStencilRefEXT" -> forall a. a -> Maybe a
Just BuiltIn
FragStencilRefEXT
  a
"ViewportMaskNV" -> forall a. a -> Maybe a
Just BuiltIn
ViewportMaskNV
  a
"SecondaryPositionNV" -> forall a. a -> Maybe a
Just BuiltIn
SecondaryPositionNV
  a
"SecondaryViewportMaskNV" -> forall a. a -> Maybe a
Just BuiltIn
SecondaryViewportMaskNV
  a
"PositionPerViewNV" -> forall a. a -> Maybe a
Just BuiltIn
PositionPerViewNV
  a
"ViewportMaskPerViewNV" -> forall a. a -> Maybe a
Just BuiltIn
ViewportMaskPerViewNV
  a
"FullyCoveredEXT" -> forall a. a -> Maybe a
Just BuiltIn
FullyCoveredEXT
  a
"TaskCountNV" -> forall a. a -> Maybe a
Just BuiltIn
TaskCountNV
  a
"PrimitiveCountNV" -> forall a. a -> Maybe a
Just BuiltIn
PrimitiveCountNV
  a
"PrimitiveIndicesNV" -> forall a. a -> Maybe a
Just BuiltIn
PrimitiveIndicesNV
  a
"ClipDistancePerViewNV" -> forall a. a -> Maybe a
Just BuiltIn
ClipDistancePerViewNV
  a
"CullDistancePerViewNV" -> forall a. a -> Maybe a
Just BuiltIn
CullDistancePerViewNV
  a
"LayerPerViewNV" -> forall a. a -> Maybe a
Just BuiltIn
LayerPerViewNV
  a
"MeshViewCountNV" -> forall a. a -> Maybe a
Just BuiltIn
MeshViewCountNV
  a
"MeshViewIndicesNV" -> forall a. a -> Maybe a
Just BuiltIn
MeshViewIndicesNV
  a
"BaryCoordKHR" -> forall a. a -> Maybe a
Just BuiltIn
BaryCoordKHR
  a
"BaryCoordNV" -> forall a. a -> Maybe a
Just BuiltIn
BaryCoordNV
  a
"BaryCoordNoPerspKHR" -> forall a. a -> Maybe a
Just BuiltIn
BaryCoordNoPerspKHR
  a
"BaryCoordNoPerspNV" -> forall a. a -> Maybe a
Just BuiltIn
BaryCoordNoPerspNV
  a
"FragSizeEXT" -> forall a. a -> Maybe a
Just BuiltIn
FragSizeEXT
  a
"FragmentSizeNV" -> forall a. a -> Maybe a
Just BuiltIn
FragmentSizeNV
  a
"FragInvocationCountEXT" -> forall a. a -> Maybe a
Just BuiltIn
FragInvocationCountEXT
  a
"InvocationsPerPixelNV" -> forall a. a -> Maybe a
Just BuiltIn
InvocationsPerPixelNV
  a
"PrimitivePointIndicesEXT" -> forall a. a -> Maybe a
Just BuiltIn
PrimitivePointIndicesEXT
  a
"PrimitiveLineIndicesEXT" -> forall a. a -> Maybe a
Just BuiltIn
PrimitiveLineIndicesEXT
  a
"PrimitiveTriangleIndicesEXT" -> forall a. a -> Maybe a
Just BuiltIn
PrimitiveTriangleIndicesEXT
  a
"CullPrimitiveEXT" -> forall a. a -> Maybe a
Just BuiltIn
CullPrimitiveEXT
  a
"LaunchIdKHR" -> forall a. a -> Maybe a
Just BuiltIn
LaunchIdKHR
  a
"LaunchIdNV" -> forall a. a -> Maybe a
Just BuiltIn
LaunchIdNV
  a
"LaunchSizeKHR" -> forall a. a -> Maybe a
Just BuiltIn
LaunchSizeKHR
  a
"LaunchSizeNV" -> forall a. a -> Maybe a
Just BuiltIn
LaunchSizeNV
  a
"WorldRayOriginKHR" -> forall a. a -> Maybe a
Just BuiltIn
WorldRayOriginKHR
  a
"WorldRayOriginNV" -> forall a. a -> Maybe a
Just BuiltIn
WorldRayOriginNV
  a
"WorldRayDirectionKHR" -> forall a. a -> Maybe a
Just BuiltIn
WorldRayDirectionKHR
  a
"WorldRayDirectionNV" -> forall a. a -> Maybe a
Just BuiltIn
WorldRayDirectionNV
  a
"ObjectRayOriginKHR" -> forall a. a -> Maybe a
Just BuiltIn
ObjectRayOriginKHR
  a
"ObjectRayOriginNV" -> forall a. a -> Maybe a
Just BuiltIn
ObjectRayOriginNV
  a
"ObjectRayDirectionKHR" -> forall a. a -> Maybe a
Just BuiltIn
ObjectRayDirectionKHR
  a
"ObjectRayDirectionNV" -> forall a. a -> Maybe a
Just BuiltIn
ObjectRayDirectionNV
  a
"RayTminKHR" -> forall a. a -> Maybe a
Just BuiltIn
RayTminKHR
  a
"RayTminNV" -> forall a. a -> Maybe a
Just BuiltIn
RayTminNV
  a
"RayTmaxKHR" -> forall a. a -> Maybe a
Just BuiltIn
RayTmaxKHR
  a
"RayTmaxNV" -> forall a. a -> Maybe a
Just BuiltIn
RayTmaxNV
  a
"InstanceCustomIndexKHR" -> forall a. a -> Maybe a
Just BuiltIn
InstanceCustomIndexKHR
  a
"InstanceCustomIndexNV" -> forall a. a -> Maybe a
Just BuiltIn
InstanceCustomIndexNV
  a
"ObjectToWorldKHR" -> forall a. a -> Maybe a
Just BuiltIn
ObjectToWorldKHR
  a
"ObjectToWorldNV" -> forall a. a -> Maybe a
Just BuiltIn
ObjectToWorldNV
  a
"WorldToObjectKHR" -> forall a. a -> Maybe a
Just BuiltIn
WorldToObjectKHR
  a
"WorldToObjectNV" -> forall a. a -> Maybe a
Just BuiltIn
WorldToObjectNV
  a
"HitTNV" -> forall a. a -> Maybe a
Just BuiltIn
HitTNV
  a
"HitKindKHR" -> forall a. a -> Maybe a
Just BuiltIn
HitKindKHR
  a
"HitKindNV" -> forall a. a -> Maybe a
Just BuiltIn
HitKindNV
  a
"CurrentRayTimeNV" -> forall a. a -> Maybe a
Just BuiltIn
CurrentRayTimeNV
  a
"IncomingRayFlagsKHR" -> forall a. a -> Maybe a
Just BuiltIn
IncomingRayFlagsKHR
  a
"IncomingRayFlagsNV" -> forall a. a -> Maybe a
Just BuiltIn
IncomingRayFlagsNV
  a
"RayGeometryIndexKHR" -> forall a. a -> Maybe a
Just BuiltIn
RayGeometryIndexKHR
  a
"WarpsPerSMNV" -> forall a. a -> Maybe a
Just BuiltIn
WarpsPerSMNV
  a
"SMCountNV" -> forall a. a -> Maybe a
Just BuiltIn
SMCountNV
  a
"WarpIDNV" -> forall a. a -> Maybe a
Just BuiltIn
WarpIDNV
  a
"SMIDNV" -> forall a. a -> Maybe a
Just BuiltIn
SMIDNV
  a
"CullMaskKHR" -> forall a. a -> Maybe a
Just BuiltIn
CullMaskKHR
  a
_unknown -> forall a. Maybe a
Nothing

instance Read BuiltIn where
  readPrec :: ReadPrec BuiltIn
readPrec = forall a. ReadPrec a -> ReadPrec a
Read.parens do
    Lex.Ident [Char]
s <- ReadPrec Lexeme
Read.lexP
    forall b a. b -> (a -> b) -> Maybe a -> b
maybe forall a. ReadPrec a
pfail forall (f :: * -> *) a. Applicative f => a -> f a
pure forall a b. (a -> b) -> a -> b
$ forall a. (IsString a, Eq a) => a -> Maybe BuiltIn
fromName [Char]
s