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 (Eq, Ord, Storable) pattern Position :: BuiltIn pattern Position = BuiltIn 0 pattern PointSize :: BuiltIn pattern PointSize = BuiltIn 1 pattern ClipDistance :: BuiltIn pattern ClipDistance = BuiltIn 3 pattern CullDistance :: BuiltIn pattern CullDistance = BuiltIn 4 pattern VertexId :: BuiltIn pattern VertexId = BuiltIn 5 pattern InstanceId :: BuiltIn pattern InstanceId = BuiltIn 6 pattern PrimitiveId :: BuiltIn pattern PrimitiveId = BuiltIn 7 pattern InvocationId :: BuiltIn pattern InvocationId = BuiltIn 8 pattern Layer :: BuiltIn pattern Layer = BuiltIn 9 pattern ViewportIndex :: BuiltIn pattern ViewportIndex = BuiltIn 10 pattern TessLevelOuter :: BuiltIn pattern TessLevelOuter = BuiltIn 11 pattern TessLevelInner :: BuiltIn pattern TessLevelInner = BuiltIn 12 pattern TessCoord :: BuiltIn pattern TessCoord = BuiltIn 13 pattern PatchVertices :: BuiltIn pattern PatchVertices = BuiltIn 14 pattern FragCoord :: BuiltIn pattern FragCoord = BuiltIn 15 pattern PointCoord :: BuiltIn pattern PointCoord = BuiltIn 16 pattern FrontFacing :: BuiltIn pattern FrontFacing = BuiltIn 17 pattern SampleId :: BuiltIn pattern SampleId = BuiltIn 18 pattern SamplePosition :: BuiltIn pattern SamplePosition = BuiltIn 19 pattern SampleMask :: BuiltIn pattern SampleMask = BuiltIn 20 pattern FragDepth :: BuiltIn pattern FragDepth = BuiltIn 22 pattern HelperInvocation :: BuiltIn pattern HelperInvocation = BuiltIn 23 pattern NumWorkgroups :: BuiltIn pattern NumWorkgroups = BuiltIn 24 pattern WorkgroupSize :: BuiltIn pattern WorkgroupSize = BuiltIn 25 pattern WorkgroupId :: BuiltIn pattern WorkgroupId = BuiltIn 26 pattern LocalInvocationId :: BuiltIn pattern LocalInvocationId = BuiltIn 27 pattern GlobalInvocationId :: BuiltIn pattern GlobalInvocationId = BuiltIn 28 pattern LocalInvocationIndex :: BuiltIn pattern LocalInvocationIndex = BuiltIn 29 pattern WorkDim :: BuiltIn pattern WorkDim = BuiltIn 30 pattern GlobalSize :: BuiltIn pattern GlobalSize = BuiltIn 31 pattern EnqueuedWorkgroupSize :: BuiltIn pattern EnqueuedWorkgroupSize = BuiltIn 32 pattern GlobalOffset :: BuiltIn pattern GlobalOffset = BuiltIn 33 pattern GlobalLinearId :: BuiltIn pattern GlobalLinearId = BuiltIn 34 pattern SubgroupSize :: BuiltIn pattern SubgroupSize = BuiltIn 36 pattern SubgroupMaxSize :: BuiltIn pattern SubgroupMaxSize = BuiltIn 37 pattern NumSubgroups :: BuiltIn pattern NumSubgroups = BuiltIn 38 pattern NumEnqueuedSubgroups :: BuiltIn pattern NumEnqueuedSubgroups = BuiltIn 39 pattern SubgroupId :: BuiltIn pattern SubgroupId = BuiltIn 40 pattern SubgroupLocalInvocationId :: BuiltIn pattern SubgroupLocalInvocationId = BuiltIn 41 pattern VertexIndex :: BuiltIn pattern VertexIndex = BuiltIn 42 pattern InstanceIndex :: BuiltIn pattern InstanceIndex = BuiltIn 43 pattern CoreIDARM :: BuiltIn pattern CoreIDARM = BuiltIn 4160 pattern CoreCountARM :: BuiltIn pattern CoreCountARM = BuiltIn 4161 pattern CoreMaxIDARM :: BuiltIn pattern CoreMaxIDARM = BuiltIn 4162 pattern WarpIDARM :: BuiltIn pattern WarpIDARM = BuiltIn 4163 pattern WarpMaxIDARM :: BuiltIn pattern WarpMaxIDARM = BuiltIn 4164 pattern SubgroupEqMask :: BuiltIn pattern SubgroupEqMask = BuiltIn 4416 pattern SubgroupEqMaskKHR :: BuiltIn pattern SubgroupEqMaskKHR = BuiltIn 4416 pattern SubgroupGeMask :: BuiltIn pattern SubgroupGeMask = BuiltIn 4417 pattern SubgroupGeMaskKHR :: BuiltIn pattern SubgroupGeMaskKHR = BuiltIn 4417 pattern SubgroupGtMask :: BuiltIn pattern SubgroupGtMask = BuiltIn 4418 pattern SubgroupGtMaskKHR :: BuiltIn pattern SubgroupGtMaskKHR = BuiltIn 4418 pattern SubgroupLeMask :: BuiltIn pattern SubgroupLeMask = BuiltIn 4419 pattern SubgroupLeMaskKHR :: BuiltIn pattern SubgroupLeMaskKHR = BuiltIn 4419 pattern SubgroupLtMask :: BuiltIn pattern SubgroupLtMask = BuiltIn 4420 pattern SubgroupLtMaskKHR :: BuiltIn pattern SubgroupLtMaskKHR = BuiltIn 4420 pattern BaseVertex :: BuiltIn pattern BaseVertex = BuiltIn 4424 pattern BaseInstance :: BuiltIn pattern BaseInstance = BuiltIn 4425 pattern DrawIndex :: BuiltIn pattern DrawIndex = BuiltIn 4426 pattern PrimitiveShadingRateKHR :: BuiltIn pattern PrimitiveShadingRateKHR = BuiltIn 4432 pattern DeviceIndex :: BuiltIn pattern DeviceIndex = BuiltIn 4438 pattern ViewIndex :: BuiltIn pattern ViewIndex = BuiltIn 4440 pattern ShadingRateKHR :: BuiltIn pattern ShadingRateKHR = BuiltIn 4444 pattern BaryCoordNoPerspAMD :: BuiltIn pattern BaryCoordNoPerspAMD = BuiltIn 4992 pattern BaryCoordNoPerspCentroidAMD :: BuiltIn pattern BaryCoordNoPerspCentroidAMD = BuiltIn 4993 pattern BaryCoordNoPerspSampleAMD :: BuiltIn pattern BaryCoordNoPerspSampleAMD = BuiltIn 4994 pattern BaryCoordSmoothAMD :: BuiltIn pattern BaryCoordSmoothAMD = BuiltIn 4995 pattern BaryCoordSmoothCentroidAMD :: BuiltIn pattern BaryCoordSmoothCentroidAMD = BuiltIn 4996 pattern BaryCoordSmoothSampleAMD :: BuiltIn pattern BaryCoordSmoothSampleAMD = BuiltIn 4997 pattern BaryCoordPullModelAMD :: BuiltIn pattern BaryCoordPullModelAMD = BuiltIn 4998 pattern FragStencilRefEXT :: BuiltIn pattern FragStencilRefEXT = BuiltIn 5014 pattern ViewportMaskNV :: BuiltIn pattern ViewportMaskNV = BuiltIn 5253 pattern SecondaryPositionNV :: BuiltIn pattern SecondaryPositionNV = BuiltIn 5257 pattern SecondaryViewportMaskNV :: BuiltIn pattern SecondaryViewportMaskNV = BuiltIn 5258 pattern PositionPerViewNV :: BuiltIn pattern PositionPerViewNV = BuiltIn 5261 pattern ViewportMaskPerViewNV :: BuiltIn pattern ViewportMaskPerViewNV = BuiltIn 5262 pattern FullyCoveredEXT :: BuiltIn pattern FullyCoveredEXT = BuiltIn 5264 pattern TaskCountNV :: BuiltIn pattern TaskCountNV = BuiltIn 5274 pattern PrimitiveCountNV :: BuiltIn pattern PrimitiveCountNV = BuiltIn 5275 pattern PrimitiveIndicesNV :: BuiltIn pattern PrimitiveIndicesNV = BuiltIn 5276 pattern ClipDistancePerViewNV :: BuiltIn pattern ClipDistancePerViewNV = BuiltIn 5277 pattern CullDistancePerViewNV :: BuiltIn pattern CullDistancePerViewNV = BuiltIn 5278 pattern LayerPerViewNV :: BuiltIn pattern LayerPerViewNV = BuiltIn 5279 pattern MeshViewCountNV :: BuiltIn pattern MeshViewCountNV = BuiltIn 5280 pattern MeshViewIndicesNV :: BuiltIn pattern MeshViewIndicesNV = BuiltIn 5281 pattern BaryCoordKHR :: BuiltIn pattern BaryCoordKHR = BuiltIn 5286 pattern BaryCoordNV :: BuiltIn pattern BaryCoordNV = BuiltIn 5286 pattern BaryCoordNoPerspKHR :: BuiltIn pattern BaryCoordNoPerspKHR = BuiltIn 5287 pattern BaryCoordNoPerspNV :: BuiltIn pattern BaryCoordNoPerspNV = BuiltIn 5287 pattern FragSizeEXT :: BuiltIn pattern FragSizeEXT = BuiltIn 5292 pattern FragmentSizeNV :: BuiltIn pattern FragmentSizeNV = BuiltIn 5292 pattern FragInvocationCountEXT :: BuiltIn pattern FragInvocationCountEXT = BuiltIn 5293 pattern InvocationsPerPixelNV :: BuiltIn pattern InvocationsPerPixelNV = BuiltIn 5293 pattern PrimitivePointIndicesEXT :: BuiltIn pattern PrimitivePointIndicesEXT = BuiltIn 5294 pattern PrimitiveLineIndicesEXT :: BuiltIn pattern PrimitiveLineIndicesEXT = BuiltIn 5295 pattern PrimitiveTriangleIndicesEXT :: BuiltIn pattern PrimitiveTriangleIndicesEXT = BuiltIn 5296 pattern CullPrimitiveEXT :: BuiltIn pattern CullPrimitiveEXT = BuiltIn 5299 pattern LaunchIdKHR :: BuiltIn pattern LaunchIdKHR = BuiltIn 5319 pattern LaunchIdNV :: BuiltIn pattern LaunchIdNV = BuiltIn 5319 pattern LaunchSizeKHR :: BuiltIn pattern LaunchSizeKHR = BuiltIn 5320 pattern LaunchSizeNV :: BuiltIn pattern LaunchSizeNV = BuiltIn 5320 pattern WorldRayOriginKHR :: BuiltIn pattern WorldRayOriginKHR = BuiltIn 5321 pattern WorldRayOriginNV :: BuiltIn pattern WorldRayOriginNV = BuiltIn 5321 pattern WorldRayDirectionKHR :: BuiltIn pattern WorldRayDirectionKHR = BuiltIn 5322 pattern WorldRayDirectionNV :: BuiltIn pattern WorldRayDirectionNV = BuiltIn 5322 pattern ObjectRayOriginKHR :: BuiltIn pattern ObjectRayOriginKHR = BuiltIn 5323 pattern ObjectRayOriginNV :: BuiltIn pattern ObjectRayOriginNV = BuiltIn 5323 pattern ObjectRayDirectionKHR :: BuiltIn pattern ObjectRayDirectionKHR = BuiltIn 5324 pattern ObjectRayDirectionNV :: BuiltIn pattern ObjectRayDirectionNV = BuiltIn 5324 pattern RayTminKHR :: BuiltIn pattern RayTminKHR = BuiltIn 5325 pattern RayTminNV :: BuiltIn pattern RayTminNV = BuiltIn 5325 pattern RayTmaxKHR :: BuiltIn pattern RayTmaxKHR = BuiltIn 5326 pattern RayTmaxNV :: BuiltIn pattern RayTmaxNV = BuiltIn 5326 pattern InstanceCustomIndexKHR :: BuiltIn pattern InstanceCustomIndexKHR = BuiltIn 5327 pattern InstanceCustomIndexNV :: BuiltIn pattern InstanceCustomIndexNV = BuiltIn 5327 pattern ObjectToWorldKHR :: BuiltIn pattern ObjectToWorldKHR = BuiltIn 5330 pattern ObjectToWorldNV :: BuiltIn pattern ObjectToWorldNV = BuiltIn 5330 pattern WorldToObjectKHR :: BuiltIn pattern WorldToObjectKHR = BuiltIn 5331 pattern WorldToObjectNV :: BuiltIn pattern WorldToObjectNV = BuiltIn 5331 pattern HitTNV :: BuiltIn pattern HitTNV = BuiltIn 5332 pattern HitKindKHR :: BuiltIn pattern HitKindKHR = BuiltIn 5333 pattern HitKindNV :: BuiltIn pattern HitKindNV = BuiltIn 5333 pattern CurrentRayTimeNV :: BuiltIn pattern CurrentRayTimeNV = BuiltIn 5334 pattern IncomingRayFlagsKHR :: BuiltIn pattern IncomingRayFlagsKHR = BuiltIn 5351 pattern IncomingRayFlagsNV :: BuiltIn pattern IncomingRayFlagsNV = BuiltIn 5351 pattern RayGeometryIndexKHR :: BuiltIn pattern RayGeometryIndexKHR = BuiltIn 5352 pattern WarpsPerSMNV :: BuiltIn pattern WarpsPerSMNV = BuiltIn 5374 pattern SMCountNV :: BuiltIn pattern SMCountNV = BuiltIn 5375 pattern WarpIDNV :: BuiltIn pattern WarpIDNV = BuiltIn 5376 pattern SMIDNV :: BuiltIn pattern SMIDNV = BuiltIn 5377 pattern CullMaskKHR :: BuiltIn pattern CullMaskKHR = BuiltIn 6021 toName :: IsString a => BuiltIn -> a toName x = case x of Position -> "Position" PointSize -> "PointSize" ClipDistance -> "ClipDistance" CullDistance -> "CullDistance" VertexId -> "VertexId" InstanceId -> "InstanceId" PrimitiveId -> "PrimitiveId" InvocationId -> "InvocationId" Layer -> "Layer" ViewportIndex -> "ViewportIndex" TessLevelOuter -> "TessLevelOuter" TessLevelInner -> "TessLevelInner" TessCoord -> "TessCoord" PatchVertices -> "PatchVertices" FragCoord -> "FragCoord" PointCoord -> "PointCoord" FrontFacing -> "FrontFacing" SampleId -> "SampleId" SamplePosition -> "SamplePosition" SampleMask -> "SampleMask" FragDepth -> "FragDepth" HelperInvocation -> "HelperInvocation" NumWorkgroups -> "NumWorkgroups" WorkgroupSize -> "WorkgroupSize" WorkgroupId -> "WorkgroupId" LocalInvocationId -> "LocalInvocationId" GlobalInvocationId -> "GlobalInvocationId" LocalInvocationIndex -> "LocalInvocationIndex" WorkDim -> "WorkDim" GlobalSize -> "GlobalSize" EnqueuedWorkgroupSize -> "EnqueuedWorkgroupSize" GlobalOffset -> "GlobalOffset" GlobalLinearId -> "GlobalLinearId" SubgroupSize -> "SubgroupSize" SubgroupMaxSize -> "SubgroupMaxSize" NumSubgroups -> "NumSubgroups" NumEnqueuedSubgroups -> "NumEnqueuedSubgroups" SubgroupId -> "SubgroupId" SubgroupLocalInvocationId -> "SubgroupLocalInvocationId" VertexIndex -> "VertexIndex" InstanceIndex -> "InstanceIndex" CoreIDARM -> "CoreIDARM" CoreCountARM -> "CoreCountARM" CoreMaxIDARM -> "CoreMaxIDARM" WarpIDARM -> "WarpIDARM" WarpMaxIDARM -> "WarpMaxIDARM" SubgroupEqMask -> "SubgroupEqMask" SubgroupEqMaskKHR -> "SubgroupEqMaskKHR" SubgroupGeMask -> "SubgroupGeMask" SubgroupGeMaskKHR -> "SubgroupGeMaskKHR" SubgroupGtMask -> "SubgroupGtMask" SubgroupGtMaskKHR -> "SubgroupGtMaskKHR" SubgroupLeMask -> "SubgroupLeMask" SubgroupLeMaskKHR -> "SubgroupLeMaskKHR" SubgroupLtMask -> "SubgroupLtMask" SubgroupLtMaskKHR -> "SubgroupLtMaskKHR" BaseVertex -> "BaseVertex" BaseInstance -> "BaseInstance" DrawIndex -> "DrawIndex" PrimitiveShadingRateKHR -> "PrimitiveShadingRateKHR" DeviceIndex -> "DeviceIndex" ViewIndex -> "ViewIndex" ShadingRateKHR -> "ShadingRateKHR" BaryCoordNoPerspAMD -> "BaryCoordNoPerspAMD" BaryCoordNoPerspCentroidAMD -> "BaryCoordNoPerspCentroidAMD" BaryCoordNoPerspSampleAMD -> "BaryCoordNoPerspSampleAMD" BaryCoordSmoothAMD -> "BaryCoordSmoothAMD" BaryCoordSmoothCentroidAMD -> "BaryCoordSmoothCentroidAMD" BaryCoordSmoothSampleAMD -> "BaryCoordSmoothSampleAMD" BaryCoordPullModelAMD -> "BaryCoordPullModelAMD" FragStencilRefEXT -> "FragStencilRefEXT" ViewportMaskNV -> "ViewportMaskNV" SecondaryPositionNV -> "SecondaryPositionNV" SecondaryViewportMaskNV -> "SecondaryViewportMaskNV" PositionPerViewNV -> "PositionPerViewNV" ViewportMaskPerViewNV -> "ViewportMaskPerViewNV" FullyCoveredEXT -> "FullyCoveredEXT" TaskCountNV -> "TaskCountNV" PrimitiveCountNV -> "PrimitiveCountNV" PrimitiveIndicesNV -> "PrimitiveIndicesNV" ClipDistancePerViewNV -> "ClipDistancePerViewNV" CullDistancePerViewNV -> "CullDistancePerViewNV" LayerPerViewNV -> "LayerPerViewNV" MeshViewCountNV -> "MeshViewCountNV" MeshViewIndicesNV -> "MeshViewIndicesNV" BaryCoordKHR -> "BaryCoordKHR" BaryCoordNV -> "BaryCoordNV" BaryCoordNoPerspKHR -> "BaryCoordNoPerspKHR" BaryCoordNoPerspNV -> "BaryCoordNoPerspNV" FragSizeEXT -> "FragSizeEXT" FragmentSizeNV -> "FragmentSizeNV" FragInvocationCountEXT -> "FragInvocationCountEXT" InvocationsPerPixelNV -> "InvocationsPerPixelNV" PrimitivePointIndicesEXT -> "PrimitivePointIndicesEXT" PrimitiveLineIndicesEXT -> "PrimitiveLineIndicesEXT" PrimitiveTriangleIndicesEXT -> "PrimitiveTriangleIndicesEXT" CullPrimitiveEXT -> "CullPrimitiveEXT" LaunchIdKHR -> "LaunchIdKHR" LaunchIdNV -> "LaunchIdNV" LaunchSizeKHR -> "LaunchSizeKHR" LaunchSizeNV -> "LaunchSizeNV" WorldRayOriginKHR -> "WorldRayOriginKHR" WorldRayOriginNV -> "WorldRayOriginNV" WorldRayDirectionKHR -> "WorldRayDirectionKHR" WorldRayDirectionNV -> "WorldRayDirectionNV" ObjectRayOriginKHR -> "ObjectRayOriginKHR" ObjectRayOriginNV -> "ObjectRayOriginNV" ObjectRayDirectionKHR -> "ObjectRayDirectionKHR" ObjectRayDirectionNV -> "ObjectRayDirectionNV" RayTminKHR -> "RayTminKHR" RayTminNV -> "RayTminNV" RayTmaxKHR -> "RayTmaxKHR" RayTmaxNV -> "RayTmaxNV" InstanceCustomIndexKHR -> "InstanceCustomIndexKHR" InstanceCustomIndexNV -> "InstanceCustomIndexNV" ObjectToWorldKHR -> "ObjectToWorldKHR" ObjectToWorldNV -> "ObjectToWorldNV" WorldToObjectKHR -> "WorldToObjectKHR" WorldToObjectNV -> "WorldToObjectNV" HitTNV -> "HitTNV" HitKindKHR -> "HitKindKHR" HitKindNV -> "HitKindNV" CurrentRayTimeNV -> "CurrentRayTimeNV" IncomingRayFlagsKHR -> "IncomingRayFlagsKHR" IncomingRayFlagsNV -> "IncomingRayFlagsNV" RayGeometryIndexKHR -> "RayGeometryIndexKHR" WarpsPerSMNV -> "WarpsPerSMNV" SMCountNV -> "SMCountNV" WarpIDNV -> "WarpIDNV" SMIDNV -> "SMIDNV" CullMaskKHR -> "CullMaskKHR" unknown -> fromString $ "BuiltIn " ++ show unknown instance Show BuiltIn where show = toName fromName :: (IsString a, Eq a) => a -> Maybe BuiltIn fromName x = case x of "Position" -> Just Position "PointSize" -> Just PointSize "ClipDistance" -> Just ClipDistance "CullDistance" -> Just CullDistance "VertexId" -> Just VertexId "InstanceId" -> Just InstanceId "PrimitiveId" -> Just PrimitiveId "InvocationId" -> Just InvocationId "Layer" -> Just Layer "ViewportIndex" -> Just ViewportIndex "TessLevelOuter" -> Just TessLevelOuter "TessLevelInner" -> Just TessLevelInner "TessCoord" -> Just TessCoord "PatchVertices" -> Just PatchVertices "FragCoord" -> Just FragCoord "PointCoord" -> Just PointCoord "FrontFacing" -> Just FrontFacing "SampleId" -> Just SampleId "SamplePosition" -> Just SamplePosition "SampleMask" -> Just SampleMask "FragDepth" -> Just FragDepth "HelperInvocation" -> Just HelperInvocation "NumWorkgroups" -> Just NumWorkgroups "WorkgroupSize" -> Just WorkgroupSize "WorkgroupId" -> Just WorkgroupId "LocalInvocationId" -> Just LocalInvocationId "GlobalInvocationId" -> Just GlobalInvocationId "LocalInvocationIndex" -> Just LocalInvocationIndex "WorkDim" -> Just WorkDim "GlobalSize" -> Just GlobalSize "EnqueuedWorkgroupSize" -> Just EnqueuedWorkgroupSize "GlobalOffset" -> Just GlobalOffset "GlobalLinearId" -> Just GlobalLinearId "SubgroupSize" -> Just SubgroupSize "SubgroupMaxSize" -> Just SubgroupMaxSize "NumSubgroups" -> Just NumSubgroups "NumEnqueuedSubgroups" -> Just NumEnqueuedSubgroups "SubgroupId" -> Just SubgroupId "SubgroupLocalInvocationId" -> Just SubgroupLocalInvocationId "VertexIndex" -> Just VertexIndex "InstanceIndex" -> Just InstanceIndex "CoreIDARM" -> Just CoreIDARM "CoreCountARM" -> Just CoreCountARM "CoreMaxIDARM" -> Just CoreMaxIDARM "WarpIDARM" -> Just WarpIDARM "WarpMaxIDARM" -> Just WarpMaxIDARM "SubgroupEqMask" -> Just SubgroupEqMask "SubgroupEqMaskKHR" -> Just SubgroupEqMaskKHR "SubgroupGeMask" -> Just SubgroupGeMask "SubgroupGeMaskKHR" -> Just SubgroupGeMaskKHR "SubgroupGtMask" -> Just SubgroupGtMask "SubgroupGtMaskKHR" -> Just SubgroupGtMaskKHR "SubgroupLeMask" -> Just SubgroupLeMask "SubgroupLeMaskKHR" -> Just SubgroupLeMaskKHR "SubgroupLtMask" -> Just SubgroupLtMask "SubgroupLtMaskKHR" -> Just SubgroupLtMaskKHR "BaseVertex" -> Just BaseVertex "BaseInstance" -> Just BaseInstance "DrawIndex" -> Just DrawIndex "PrimitiveShadingRateKHR" -> Just PrimitiveShadingRateKHR "DeviceIndex" -> Just DeviceIndex "ViewIndex" -> Just ViewIndex "ShadingRateKHR" -> Just ShadingRateKHR "BaryCoordNoPerspAMD" -> Just BaryCoordNoPerspAMD "BaryCoordNoPerspCentroidAMD" -> Just BaryCoordNoPerspCentroidAMD "BaryCoordNoPerspSampleAMD" -> Just BaryCoordNoPerspSampleAMD "BaryCoordSmoothAMD" -> Just BaryCoordSmoothAMD "BaryCoordSmoothCentroidAMD" -> Just BaryCoordSmoothCentroidAMD "BaryCoordSmoothSampleAMD" -> Just BaryCoordSmoothSampleAMD "BaryCoordPullModelAMD" -> Just BaryCoordPullModelAMD "FragStencilRefEXT" -> Just FragStencilRefEXT "ViewportMaskNV" -> Just ViewportMaskNV "SecondaryPositionNV" -> Just SecondaryPositionNV "SecondaryViewportMaskNV" -> Just SecondaryViewportMaskNV "PositionPerViewNV" -> Just PositionPerViewNV "ViewportMaskPerViewNV" -> Just ViewportMaskPerViewNV "FullyCoveredEXT" -> Just FullyCoveredEXT "TaskCountNV" -> Just TaskCountNV "PrimitiveCountNV" -> Just PrimitiveCountNV "PrimitiveIndicesNV" -> Just PrimitiveIndicesNV "ClipDistancePerViewNV" -> Just ClipDistancePerViewNV "CullDistancePerViewNV" -> Just CullDistancePerViewNV "LayerPerViewNV" -> Just LayerPerViewNV "MeshViewCountNV" -> Just MeshViewCountNV "MeshViewIndicesNV" -> Just MeshViewIndicesNV "BaryCoordKHR" -> Just BaryCoordKHR "BaryCoordNV" -> Just BaryCoordNV "BaryCoordNoPerspKHR" -> Just BaryCoordNoPerspKHR "BaryCoordNoPerspNV" -> Just BaryCoordNoPerspNV "FragSizeEXT" -> Just FragSizeEXT "FragmentSizeNV" -> Just FragmentSizeNV "FragInvocationCountEXT" -> Just FragInvocationCountEXT "InvocationsPerPixelNV" -> Just InvocationsPerPixelNV "PrimitivePointIndicesEXT" -> Just PrimitivePointIndicesEXT "PrimitiveLineIndicesEXT" -> Just PrimitiveLineIndicesEXT "PrimitiveTriangleIndicesEXT" -> Just PrimitiveTriangleIndicesEXT "CullPrimitiveEXT" -> Just CullPrimitiveEXT "LaunchIdKHR" -> Just LaunchIdKHR "LaunchIdNV" -> Just LaunchIdNV "LaunchSizeKHR" -> Just LaunchSizeKHR "LaunchSizeNV" -> Just LaunchSizeNV "WorldRayOriginKHR" -> Just WorldRayOriginKHR "WorldRayOriginNV" -> Just WorldRayOriginNV "WorldRayDirectionKHR" -> Just WorldRayDirectionKHR "WorldRayDirectionNV" -> Just WorldRayDirectionNV "ObjectRayOriginKHR" -> Just ObjectRayOriginKHR "ObjectRayOriginNV" -> Just ObjectRayOriginNV "ObjectRayDirectionKHR" -> Just ObjectRayDirectionKHR "ObjectRayDirectionNV" -> Just ObjectRayDirectionNV "RayTminKHR" -> Just RayTminKHR "RayTminNV" -> Just RayTminNV "RayTmaxKHR" -> Just RayTmaxKHR "RayTmaxNV" -> Just RayTmaxNV "InstanceCustomIndexKHR" -> Just InstanceCustomIndexKHR "InstanceCustomIndexNV" -> Just InstanceCustomIndexNV "ObjectToWorldKHR" -> Just ObjectToWorldKHR "ObjectToWorldNV" -> Just ObjectToWorldNV "WorldToObjectKHR" -> Just WorldToObjectKHR "WorldToObjectNV" -> Just WorldToObjectNV "HitTNV" -> Just HitTNV "HitKindKHR" -> Just HitKindKHR "HitKindNV" -> Just HitKindNV "CurrentRayTimeNV" -> Just CurrentRayTimeNV "IncomingRayFlagsKHR" -> Just IncomingRayFlagsKHR "IncomingRayFlagsNV" -> Just IncomingRayFlagsNV "RayGeometryIndexKHR" -> Just RayGeometryIndexKHR "WarpsPerSMNV" -> Just WarpsPerSMNV "SMCountNV" -> Just SMCountNV "WarpIDNV" -> Just WarpIDNV "SMIDNV" -> Just SMIDNV "CullMaskKHR" -> Just CullMaskKHR _unknown -> Nothing instance Read BuiltIn where readPrec = Read.parens do Lex.Ident s <- Read.lexP maybe pfail pure $ fromName s