spirv-enum-0.1.0.0: src/Data/SpirV/Enum/KernelProfilingInfo.hs
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE TypeSynonymInstances #-}
module Data.SpirV.Enum.KernelProfilingInfo where
import Data.Bits (Bits, FiniteBits, (.|.))
import Data.Word (Word32)
import Foreign.Storable (Storable)
type KernelProfilingInfo = KernelProfilingInfoBits
newtype KernelProfilingInfoBits = KernelProfilingInfoBits Word32
deriving newtype (Eq, Ord, Storable, Bits, FiniteBits)
instance Semigroup KernelProfilingInfo where
(KernelProfilingInfoBits a) <> (KernelProfilingInfoBits b) = KernelProfilingInfoBits (a .|. b)
instance Monoid KernelProfilingInfo where
mempty = KernelProfilingInfoBits 0
pattern CmdExecTime :: KernelProfilingInfoBits
pattern CmdExecTime = KernelProfilingInfoBits 0x00000001