{-# language CPP #-}
module Vulkan.Extensions.VK_AMD_shader_core_properties2  ( PhysicalDeviceShaderCoreProperties2AMD(..)
                                                         , ShaderCorePropertiesFlagBitsAMD(..)
                                                         , ShaderCorePropertiesFlagsAMD
                                                         , AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION
                                                         , pattern AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION
                                                         , AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME
                                                         , pattern AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME
                                                         ) where

import Foreign.Marshal.Alloc (allocaBytesAligned)
import Foreign.Ptr (nullPtr)
import Foreign.Ptr (plusPtr)
import GHC.Read (choose)
import GHC.Read (expectP)
import GHC.Read (parens)
import GHC.Show (showParen)
import GHC.Show (showString)
import Numeric (showHex)
import Text.ParserCombinators.ReadPrec ((+++))
import Text.ParserCombinators.ReadPrec (prec)
import Text.ParserCombinators.ReadPrec (step)
import Data.Bits (Bits)
import Data.String (IsString)
import Data.Typeable (Typeable)
import Foreign.Storable (Storable)
import Foreign.Storable (Storable(peek))
import Foreign.Storable (Storable(poke))
import qualified Foreign.Storable (Storable(..))
import GHC.Generics (Generic)
import Foreign.Ptr (Ptr)
import GHC.Read (Read(readPrec))
import Data.Word (Word32)
import Text.Read.Lex (Lexeme(Ident))
import Data.Kind (Type)
import Vulkan.Core10.FundamentalTypes (Flags)
import Vulkan.CStruct (FromCStruct)
import Vulkan.CStruct (FromCStruct(..))
import Vulkan.Core10.Enums.StructureType (StructureType)
import Vulkan.CStruct (ToCStruct)
import Vulkan.CStruct (ToCStruct(..))
import Vulkan.Zero (Zero)
import Vulkan.Zero (Zero(..))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD))
-- | VkPhysicalDeviceShaderCoreProperties2AMD - Structure describing shader
-- core properties that can be supported by an implementation
--
-- = Members
--
-- The members of the 'PhysicalDeviceShaderCoreProperties2AMD' structure
-- describe the following implementation-dependent limits:
--
-- = Description
--
-- If the 'PhysicalDeviceShaderCoreProperties2AMD' structure is included in
-- the @pNext@ chain of
-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',
-- it is filled with the implementation-dependent limits.
--
-- == Valid Usage (Implicit)
--
-- = See Also
--
-- 'ShaderCorePropertiesFlagsAMD',
-- 'Vulkan.Core10.Enums.StructureType.StructureType'
data PhysicalDeviceShaderCoreProperties2AMD = PhysicalDeviceShaderCoreProperties2AMD
  { -- | @shaderCoreFeatures@ is a bitmask of 'ShaderCorePropertiesFlagBitsAMD'
    -- indicating the set of features supported by the shader core.
    PhysicalDeviceShaderCoreProperties2AMD
-> ShaderCorePropertiesFlagsAMD
shaderCoreFeatures :: ShaderCorePropertiesFlagsAMD
  , -- | @activeComputeUnitCount@ is an unsigned integer value indicating the
    -- number of compute units that have been enabled.
    PhysicalDeviceShaderCoreProperties2AMD -> Word32
activeComputeUnitCount :: Word32
  }
  deriving (Typeable, PhysicalDeviceShaderCoreProperties2AMD
-> PhysicalDeviceShaderCoreProperties2AMD -> Bool
(PhysicalDeviceShaderCoreProperties2AMD
 -> PhysicalDeviceShaderCoreProperties2AMD -> Bool)
-> (PhysicalDeviceShaderCoreProperties2AMD
    -> PhysicalDeviceShaderCoreProperties2AMD -> Bool)
-> Eq PhysicalDeviceShaderCoreProperties2AMD
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PhysicalDeviceShaderCoreProperties2AMD
-> PhysicalDeviceShaderCoreProperties2AMD -> Bool
$c/= :: PhysicalDeviceShaderCoreProperties2AMD
-> PhysicalDeviceShaderCoreProperties2AMD -> Bool
== :: PhysicalDeviceShaderCoreProperties2AMD
-> PhysicalDeviceShaderCoreProperties2AMD -> Bool
$c== :: PhysicalDeviceShaderCoreProperties2AMD
-> PhysicalDeviceShaderCoreProperties2AMD -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceShaderCoreProperties2AMD)
#endif
deriving instance Show PhysicalDeviceShaderCoreProperties2AMD

instance ToCStruct PhysicalDeviceShaderCoreProperties2AMD where
  withCStruct :: PhysicalDeviceShaderCoreProperties2AMD
-> (Ptr PhysicalDeviceShaderCoreProperties2AMD -> IO b) -> IO b
withCStruct x :: PhysicalDeviceShaderCoreProperties2AMD
x f :: Ptr PhysicalDeviceShaderCoreProperties2AMD -> IO b
f = Int
-> Int
-> (Ptr PhysicalDeviceShaderCoreProperties2AMD -> IO b)
-> IO b
forall a b. Int -> Int -> (Ptr a -> IO b) -> IO b
allocaBytesAligned 24 8 ((Ptr PhysicalDeviceShaderCoreProperties2AMD -> IO b) -> IO b)
-> (Ptr PhysicalDeviceShaderCoreProperties2AMD -> IO b) -> IO b
forall a b. (a -> b) -> a -> b
$ \p :: Ptr PhysicalDeviceShaderCoreProperties2AMD
p -> Ptr PhysicalDeviceShaderCoreProperties2AMD
-> PhysicalDeviceShaderCoreProperties2AMD -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceShaderCoreProperties2AMD
p PhysicalDeviceShaderCoreProperties2AMD
x (Ptr PhysicalDeviceShaderCoreProperties2AMD -> IO b
f Ptr PhysicalDeviceShaderCoreProperties2AMD
p)
  pokeCStruct :: Ptr PhysicalDeviceShaderCoreProperties2AMD
-> PhysicalDeviceShaderCoreProperties2AMD -> IO b -> IO b
pokeCStruct p :: Ptr PhysicalDeviceShaderCoreProperties2AMD
p PhysicalDeviceShaderCoreProperties2AMD{..} f :: IO b
f = do
    Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderCoreProperties2AMD
p Ptr PhysicalDeviceShaderCoreProperties2AMD
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD)
    Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderCoreProperties2AMD
p Ptr PhysicalDeviceShaderCoreProperties2AMD -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
    Ptr ShaderCorePropertiesFlagsAMD
-> ShaderCorePropertiesFlagsAMD -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderCoreProperties2AMD
p Ptr PhysicalDeviceShaderCoreProperties2AMD
-> Int -> Ptr ShaderCorePropertiesFlagsAMD
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 16 :: Ptr ShaderCorePropertiesFlagsAMD)) (ShaderCorePropertiesFlagsAMD
shaderCoreFeatures)
    Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderCoreProperties2AMD
p Ptr PhysicalDeviceShaderCoreProperties2AMD -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 20 :: Ptr Word32)) (Word32
activeComputeUnitCount)
    IO b
f
  cStructSize :: Int
cStructSize = 24
  cStructAlignment :: Int
cStructAlignment = 8
  pokeZeroCStruct :: Ptr PhysicalDeviceShaderCoreProperties2AMD -> IO b -> IO b
pokeZeroCStruct p :: Ptr PhysicalDeviceShaderCoreProperties2AMD
p f :: IO b
f = do
    Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderCoreProperties2AMD
p Ptr PhysicalDeviceShaderCoreProperties2AMD
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD)
    Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderCoreProperties2AMD
p Ptr PhysicalDeviceShaderCoreProperties2AMD -> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
    Ptr ShaderCorePropertiesFlagsAMD
-> ShaderCorePropertiesFlagsAMD -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderCoreProperties2AMD
p Ptr PhysicalDeviceShaderCoreProperties2AMD
-> Int -> Ptr ShaderCorePropertiesFlagsAMD
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 16 :: Ptr ShaderCorePropertiesFlagsAMD)) (ShaderCorePropertiesFlagsAMD
forall a. Zero a => a
zero)
    Ptr Word32 -> Word32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderCoreProperties2AMD
p Ptr PhysicalDeviceShaderCoreProperties2AMD -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 20 :: Ptr Word32)) (Word32
forall a. Zero a => a
zero)
    IO b
f

instance FromCStruct PhysicalDeviceShaderCoreProperties2AMD where
  peekCStruct :: Ptr PhysicalDeviceShaderCoreProperties2AMD
-> IO PhysicalDeviceShaderCoreProperties2AMD
peekCStruct p :: Ptr PhysicalDeviceShaderCoreProperties2AMD
p = do
    ShaderCorePropertiesFlagsAMD
shaderCoreFeatures <- Ptr ShaderCorePropertiesFlagsAMD -> IO ShaderCorePropertiesFlagsAMD
forall a. Storable a => Ptr a -> IO a
peek @ShaderCorePropertiesFlagsAMD ((Ptr PhysicalDeviceShaderCoreProperties2AMD
p Ptr PhysicalDeviceShaderCoreProperties2AMD
-> Int -> Ptr ShaderCorePropertiesFlagsAMD
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 16 :: Ptr ShaderCorePropertiesFlagsAMD))
    Word32
activeComputeUnitCount <- Ptr Word32 -> IO Word32
forall a. Storable a => Ptr a -> IO a
peek @Word32 ((Ptr PhysicalDeviceShaderCoreProperties2AMD
p Ptr PhysicalDeviceShaderCoreProperties2AMD -> Int -> Ptr Word32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` 20 :: Ptr Word32))
    PhysicalDeviceShaderCoreProperties2AMD
-> IO PhysicalDeviceShaderCoreProperties2AMD
forall (f :: * -> *) a. Applicative f => a -> f a
pure (PhysicalDeviceShaderCoreProperties2AMD
 -> IO PhysicalDeviceShaderCoreProperties2AMD)
-> PhysicalDeviceShaderCoreProperties2AMD
-> IO PhysicalDeviceShaderCoreProperties2AMD
forall a b. (a -> b) -> a -> b
$ ShaderCorePropertiesFlagsAMD
-> Word32 -> PhysicalDeviceShaderCoreProperties2AMD
PhysicalDeviceShaderCoreProperties2AMD
             ShaderCorePropertiesFlagsAMD
shaderCoreFeatures Word32
activeComputeUnitCount

instance Storable PhysicalDeviceShaderCoreProperties2AMD where
  sizeOf :: PhysicalDeviceShaderCoreProperties2AMD -> Int
sizeOf ~PhysicalDeviceShaderCoreProperties2AMD
_ = 24
  alignment :: PhysicalDeviceShaderCoreProperties2AMD -> Int
alignment ~PhysicalDeviceShaderCoreProperties2AMD
_ = 8
  peek :: Ptr PhysicalDeviceShaderCoreProperties2AMD
-> IO PhysicalDeviceShaderCoreProperties2AMD
peek = Ptr PhysicalDeviceShaderCoreProperties2AMD
-> IO PhysicalDeviceShaderCoreProperties2AMD
forall a. FromCStruct a => Ptr a -> IO a
peekCStruct
  poke :: Ptr PhysicalDeviceShaderCoreProperties2AMD
-> PhysicalDeviceShaderCoreProperties2AMD -> IO ()
poke ptr :: Ptr PhysicalDeviceShaderCoreProperties2AMD
ptr poked :: PhysicalDeviceShaderCoreProperties2AMD
poked = Ptr PhysicalDeviceShaderCoreProperties2AMD
-> PhysicalDeviceShaderCoreProperties2AMD -> IO () -> IO ()
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceShaderCoreProperties2AMD
ptr PhysicalDeviceShaderCoreProperties2AMD
poked (() -> IO ()
forall (f :: * -> *) a. Applicative f => a -> f a
pure ())

instance Zero PhysicalDeviceShaderCoreProperties2AMD where
  zero :: PhysicalDeviceShaderCoreProperties2AMD
zero = ShaderCorePropertiesFlagsAMD
-> Word32 -> PhysicalDeviceShaderCoreProperties2AMD
PhysicalDeviceShaderCoreProperties2AMD
           ShaderCorePropertiesFlagsAMD
forall a. Zero a => a
zero
           Word32
forall a. Zero a => a
zero


-- | VkShaderCorePropertiesFlagBitsAMD - Bitmask specifying shader core
-- properties
--
-- = See Also
--
-- 'PhysicalDeviceShaderCoreProperties2AMD', 'ShaderCorePropertiesFlagsAMD'
newtype ShaderCorePropertiesFlagBitsAMD = ShaderCorePropertiesFlagBitsAMD Flags
  deriving newtype (ShaderCorePropertiesFlagsAMD
-> ShaderCorePropertiesFlagsAMD -> Bool
(ShaderCorePropertiesFlagsAMD
 -> ShaderCorePropertiesFlagsAMD -> Bool)
-> (ShaderCorePropertiesFlagsAMD
    -> ShaderCorePropertiesFlagsAMD -> Bool)
-> Eq ShaderCorePropertiesFlagsAMD
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ShaderCorePropertiesFlagsAMD
-> ShaderCorePropertiesFlagsAMD -> Bool
$c/= :: ShaderCorePropertiesFlagsAMD
-> ShaderCorePropertiesFlagsAMD -> Bool
== :: ShaderCorePropertiesFlagsAMD
-> ShaderCorePropertiesFlagsAMD -> Bool
$c== :: ShaderCorePropertiesFlagsAMD
-> ShaderCorePropertiesFlagsAMD -> Bool
Eq, Eq ShaderCorePropertiesFlagsAMD
Eq ShaderCorePropertiesFlagsAMD =>
(ShaderCorePropertiesFlagsAMD
 -> ShaderCorePropertiesFlagsAMD -> Ordering)
-> (ShaderCorePropertiesFlagsAMD
    -> ShaderCorePropertiesFlagsAMD -> Bool)
-> (ShaderCorePropertiesFlagsAMD
    -> ShaderCorePropertiesFlagsAMD -> Bool)
-> (ShaderCorePropertiesFlagsAMD
    -> ShaderCorePropertiesFlagsAMD -> Bool)
-> (ShaderCorePropertiesFlagsAMD
    -> ShaderCorePropertiesFlagsAMD -> Bool)
-> (ShaderCorePropertiesFlagsAMD
    -> ShaderCorePropertiesFlagsAMD -> ShaderCorePropertiesFlagsAMD)
-> (ShaderCorePropertiesFlagsAMD
    -> ShaderCorePropertiesFlagsAMD -> ShaderCorePropertiesFlagsAMD)
-> Ord ShaderCorePropertiesFlagsAMD
ShaderCorePropertiesFlagsAMD
-> ShaderCorePropertiesFlagsAMD -> Bool
ShaderCorePropertiesFlagsAMD
-> ShaderCorePropertiesFlagsAMD -> Ordering
ShaderCorePropertiesFlagsAMD
-> ShaderCorePropertiesFlagsAMD -> ShaderCorePropertiesFlagsAMD
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 :: ShaderCorePropertiesFlagsAMD
-> ShaderCorePropertiesFlagsAMD -> ShaderCorePropertiesFlagsAMD
$cmin :: ShaderCorePropertiesFlagsAMD
-> ShaderCorePropertiesFlagsAMD -> ShaderCorePropertiesFlagsAMD
max :: ShaderCorePropertiesFlagsAMD
-> ShaderCorePropertiesFlagsAMD -> ShaderCorePropertiesFlagsAMD
$cmax :: ShaderCorePropertiesFlagsAMD
-> ShaderCorePropertiesFlagsAMD -> ShaderCorePropertiesFlagsAMD
>= :: ShaderCorePropertiesFlagsAMD
-> ShaderCorePropertiesFlagsAMD -> Bool
$c>= :: ShaderCorePropertiesFlagsAMD
-> ShaderCorePropertiesFlagsAMD -> Bool
> :: ShaderCorePropertiesFlagsAMD
-> ShaderCorePropertiesFlagsAMD -> Bool
$c> :: ShaderCorePropertiesFlagsAMD
-> ShaderCorePropertiesFlagsAMD -> Bool
<= :: ShaderCorePropertiesFlagsAMD
-> ShaderCorePropertiesFlagsAMD -> Bool
$c<= :: ShaderCorePropertiesFlagsAMD
-> ShaderCorePropertiesFlagsAMD -> Bool
< :: ShaderCorePropertiesFlagsAMD
-> ShaderCorePropertiesFlagsAMD -> Bool
$c< :: ShaderCorePropertiesFlagsAMD
-> ShaderCorePropertiesFlagsAMD -> Bool
compare :: ShaderCorePropertiesFlagsAMD
-> ShaderCorePropertiesFlagsAMD -> Ordering
$ccompare :: ShaderCorePropertiesFlagsAMD
-> ShaderCorePropertiesFlagsAMD -> Ordering
$cp1Ord :: Eq ShaderCorePropertiesFlagsAMD
Ord, Ptr b -> Int -> IO ShaderCorePropertiesFlagsAMD
Ptr b -> Int -> ShaderCorePropertiesFlagsAMD -> IO ()
Ptr ShaderCorePropertiesFlagsAMD -> IO ShaderCorePropertiesFlagsAMD
Ptr ShaderCorePropertiesFlagsAMD
-> Int -> IO ShaderCorePropertiesFlagsAMD
Ptr ShaderCorePropertiesFlagsAMD
-> Int -> ShaderCorePropertiesFlagsAMD -> IO ()
Ptr ShaderCorePropertiesFlagsAMD
-> ShaderCorePropertiesFlagsAMD -> IO ()
ShaderCorePropertiesFlagsAMD -> Int
(ShaderCorePropertiesFlagsAMD -> Int)
-> (ShaderCorePropertiesFlagsAMD -> Int)
-> (Ptr ShaderCorePropertiesFlagsAMD
    -> Int -> IO ShaderCorePropertiesFlagsAMD)
-> (Ptr ShaderCorePropertiesFlagsAMD
    -> Int -> ShaderCorePropertiesFlagsAMD -> IO ())
-> (forall b. Ptr b -> Int -> IO ShaderCorePropertiesFlagsAMD)
-> (forall b.
    Ptr b -> Int -> ShaderCorePropertiesFlagsAMD -> IO ())
-> (Ptr ShaderCorePropertiesFlagsAMD
    -> IO ShaderCorePropertiesFlagsAMD)
-> (Ptr ShaderCorePropertiesFlagsAMD
    -> ShaderCorePropertiesFlagsAMD -> IO ())
-> Storable ShaderCorePropertiesFlagsAMD
forall b. Ptr b -> Int -> IO ShaderCorePropertiesFlagsAMD
forall b. Ptr b -> Int -> ShaderCorePropertiesFlagsAMD -> 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 ShaderCorePropertiesFlagsAMD
-> ShaderCorePropertiesFlagsAMD -> IO ()
$cpoke :: Ptr ShaderCorePropertiesFlagsAMD
-> ShaderCorePropertiesFlagsAMD -> IO ()
peek :: Ptr ShaderCorePropertiesFlagsAMD -> IO ShaderCorePropertiesFlagsAMD
$cpeek :: Ptr ShaderCorePropertiesFlagsAMD -> IO ShaderCorePropertiesFlagsAMD
pokeByteOff :: Ptr b -> Int -> ShaderCorePropertiesFlagsAMD -> IO ()
$cpokeByteOff :: forall b. Ptr b -> Int -> ShaderCorePropertiesFlagsAMD -> IO ()
peekByteOff :: Ptr b -> Int -> IO ShaderCorePropertiesFlagsAMD
$cpeekByteOff :: forall b. Ptr b -> Int -> IO ShaderCorePropertiesFlagsAMD
pokeElemOff :: Ptr ShaderCorePropertiesFlagsAMD
-> Int -> ShaderCorePropertiesFlagsAMD -> IO ()
$cpokeElemOff :: Ptr ShaderCorePropertiesFlagsAMD
-> Int -> ShaderCorePropertiesFlagsAMD -> IO ()
peekElemOff :: Ptr ShaderCorePropertiesFlagsAMD
-> Int -> IO ShaderCorePropertiesFlagsAMD
$cpeekElemOff :: Ptr ShaderCorePropertiesFlagsAMD
-> Int -> IO ShaderCorePropertiesFlagsAMD
alignment :: ShaderCorePropertiesFlagsAMD -> Int
$calignment :: ShaderCorePropertiesFlagsAMD -> Int
sizeOf :: ShaderCorePropertiesFlagsAMD -> Int
$csizeOf :: ShaderCorePropertiesFlagsAMD -> Int
Storable, ShaderCorePropertiesFlagsAMD
ShaderCorePropertiesFlagsAMD -> Zero ShaderCorePropertiesFlagsAMD
forall a. a -> Zero a
zero :: ShaderCorePropertiesFlagsAMD
$czero :: ShaderCorePropertiesFlagsAMD
Zero, Eq ShaderCorePropertiesFlagsAMD
ShaderCorePropertiesFlagsAMD
Eq ShaderCorePropertiesFlagsAMD =>
(ShaderCorePropertiesFlagsAMD
 -> ShaderCorePropertiesFlagsAMD -> ShaderCorePropertiesFlagsAMD)
-> (ShaderCorePropertiesFlagsAMD
    -> ShaderCorePropertiesFlagsAMD -> ShaderCorePropertiesFlagsAMD)
-> (ShaderCorePropertiesFlagsAMD
    -> ShaderCorePropertiesFlagsAMD -> ShaderCorePropertiesFlagsAMD)
-> (ShaderCorePropertiesFlagsAMD -> ShaderCorePropertiesFlagsAMD)
-> (ShaderCorePropertiesFlagsAMD
    -> Int -> ShaderCorePropertiesFlagsAMD)
-> (ShaderCorePropertiesFlagsAMD
    -> Int -> ShaderCorePropertiesFlagsAMD)
-> ShaderCorePropertiesFlagsAMD
-> (Int -> ShaderCorePropertiesFlagsAMD)
-> (ShaderCorePropertiesFlagsAMD
    -> Int -> ShaderCorePropertiesFlagsAMD)
-> (ShaderCorePropertiesFlagsAMD
    -> Int -> ShaderCorePropertiesFlagsAMD)
-> (ShaderCorePropertiesFlagsAMD
    -> Int -> ShaderCorePropertiesFlagsAMD)
-> (ShaderCorePropertiesFlagsAMD -> Int -> Bool)
-> (ShaderCorePropertiesFlagsAMD -> Maybe Int)
-> (ShaderCorePropertiesFlagsAMD -> Int)
-> (ShaderCorePropertiesFlagsAMD -> Bool)
-> (ShaderCorePropertiesFlagsAMD
    -> Int -> ShaderCorePropertiesFlagsAMD)
-> (ShaderCorePropertiesFlagsAMD
    -> Int -> ShaderCorePropertiesFlagsAMD)
-> (ShaderCorePropertiesFlagsAMD
    -> Int -> ShaderCorePropertiesFlagsAMD)
-> (ShaderCorePropertiesFlagsAMD
    -> Int -> ShaderCorePropertiesFlagsAMD)
-> (ShaderCorePropertiesFlagsAMD
    -> Int -> ShaderCorePropertiesFlagsAMD)
-> (ShaderCorePropertiesFlagsAMD
    -> Int -> ShaderCorePropertiesFlagsAMD)
-> (ShaderCorePropertiesFlagsAMD -> Int)
-> Bits ShaderCorePropertiesFlagsAMD
Int -> ShaderCorePropertiesFlagsAMD
ShaderCorePropertiesFlagsAMD -> Bool
ShaderCorePropertiesFlagsAMD -> Int
ShaderCorePropertiesFlagsAMD -> Maybe Int
ShaderCorePropertiesFlagsAMD -> ShaderCorePropertiesFlagsAMD
ShaderCorePropertiesFlagsAMD -> Int -> Bool
ShaderCorePropertiesFlagsAMD -> Int -> ShaderCorePropertiesFlagsAMD
ShaderCorePropertiesFlagsAMD
-> ShaderCorePropertiesFlagsAMD -> ShaderCorePropertiesFlagsAMD
forall a.
Eq a =>
(a -> a -> a)
-> (a -> a -> a)
-> (a -> a -> a)
-> (a -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> a
-> (Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> Bool)
-> (a -> Maybe Int)
-> (a -> Int)
-> (a -> Bool)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int -> a)
-> (a -> Int)
-> Bits a
popCount :: ShaderCorePropertiesFlagsAMD -> Int
$cpopCount :: ShaderCorePropertiesFlagsAMD -> Int
rotateR :: ShaderCorePropertiesFlagsAMD -> Int -> ShaderCorePropertiesFlagsAMD
$crotateR :: ShaderCorePropertiesFlagsAMD -> Int -> ShaderCorePropertiesFlagsAMD
rotateL :: ShaderCorePropertiesFlagsAMD -> Int -> ShaderCorePropertiesFlagsAMD
$crotateL :: ShaderCorePropertiesFlagsAMD -> Int -> ShaderCorePropertiesFlagsAMD
unsafeShiftR :: ShaderCorePropertiesFlagsAMD -> Int -> ShaderCorePropertiesFlagsAMD
$cunsafeShiftR :: ShaderCorePropertiesFlagsAMD -> Int -> ShaderCorePropertiesFlagsAMD
shiftR :: ShaderCorePropertiesFlagsAMD -> Int -> ShaderCorePropertiesFlagsAMD
$cshiftR :: ShaderCorePropertiesFlagsAMD -> Int -> ShaderCorePropertiesFlagsAMD
unsafeShiftL :: ShaderCorePropertiesFlagsAMD -> Int -> ShaderCorePropertiesFlagsAMD
$cunsafeShiftL :: ShaderCorePropertiesFlagsAMD -> Int -> ShaderCorePropertiesFlagsAMD
shiftL :: ShaderCorePropertiesFlagsAMD -> Int -> ShaderCorePropertiesFlagsAMD
$cshiftL :: ShaderCorePropertiesFlagsAMD -> Int -> ShaderCorePropertiesFlagsAMD
isSigned :: ShaderCorePropertiesFlagsAMD -> Bool
$cisSigned :: ShaderCorePropertiesFlagsAMD -> Bool
bitSize :: ShaderCorePropertiesFlagsAMD -> Int
$cbitSize :: ShaderCorePropertiesFlagsAMD -> Int
bitSizeMaybe :: ShaderCorePropertiesFlagsAMD -> Maybe Int
$cbitSizeMaybe :: ShaderCorePropertiesFlagsAMD -> Maybe Int
testBit :: ShaderCorePropertiesFlagsAMD -> Int -> Bool
$ctestBit :: ShaderCorePropertiesFlagsAMD -> Int -> Bool
complementBit :: ShaderCorePropertiesFlagsAMD -> Int -> ShaderCorePropertiesFlagsAMD
$ccomplementBit :: ShaderCorePropertiesFlagsAMD -> Int -> ShaderCorePropertiesFlagsAMD
clearBit :: ShaderCorePropertiesFlagsAMD -> Int -> ShaderCorePropertiesFlagsAMD
$cclearBit :: ShaderCorePropertiesFlagsAMD -> Int -> ShaderCorePropertiesFlagsAMD
setBit :: ShaderCorePropertiesFlagsAMD -> Int -> ShaderCorePropertiesFlagsAMD
$csetBit :: ShaderCorePropertiesFlagsAMD -> Int -> ShaderCorePropertiesFlagsAMD
bit :: Int -> ShaderCorePropertiesFlagsAMD
$cbit :: Int -> ShaderCorePropertiesFlagsAMD
zeroBits :: ShaderCorePropertiesFlagsAMD
$czeroBits :: ShaderCorePropertiesFlagsAMD
rotate :: ShaderCorePropertiesFlagsAMD -> Int -> ShaderCorePropertiesFlagsAMD
$crotate :: ShaderCorePropertiesFlagsAMD -> Int -> ShaderCorePropertiesFlagsAMD
shift :: ShaderCorePropertiesFlagsAMD -> Int -> ShaderCorePropertiesFlagsAMD
$cshift :: ShaderCorePropertiesFlagsAMD -> Int -> ShaderCorePropertiesFlagsAMD
complement :: ShaderCorePropertiesFlagsAMD -> ShaderCorePropertiesFlagsAMD
$ccomplement :: ShaderCorePropertiesFlagsAMD -> ShaderCorePropertiesFlagsAMD
xor :: ShaderCorePropertiesFlagsAMD
-> ShaderCorePropertiesFlagsAMD -> ShaderCorePropertiesFlagsAMD
$cxor :: ShaderCorePropertiesFlagsAMD
-> ShaderCorePropertiesFlagsAMD -> ShaderCorePropertiesFlagsAMD
.|. :: ShaderCorePropertiesFlagsAMD
-> ShaderCorePropertiesFlagsAMD -> ShaderCorePropertiesFlagsAMD
$c.|. :: ShaderCorePropertiesFlagsAMD
-> ShaderCorePropertiesFlagsAMD -> ShaderCorePropertiesFlagsAMD
.&. :: ShaderCorePropertiesFlagsAMD
-> ShaderCorePropertiesFlagsAMD -> ShaderCorePropertiesFlagsAMD
$c.&. :: ShaderCorePropertiesFlagsAMD
-> ShaderCorePropertiesFlagsAMD -> ShaderCorePropertiesFlagsAMD
$cp1Bits :: Eq ShaderCorePropertiesFlagsAMD
Bits)



type ShaderCorePropertiesFlagsAMD = ShaderCorePropertiesFlagBitsAMD

instance Show ShaderCorePropertiesFlagBitsAMD where
  showsPrec :: Int -> ShaderCorePropertiesFlagsAMD -> ShowS
showsPrec p :: Int
p = \case
    ShaderCorePropertiesFlagBitsAMD x :: Word32
x -> Bool -> ShowS -> ShowS
showParen (Int
p Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
>= 11) (String -> ShowS
showString "ShaderCorePropertiesFlagBitsAMD 0x" ShowS -> ShowS -> ShowS
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Word32 -> ShowS
forall a. (Integral a, Show a) => a -> ShowS
showHex Word32
x)

instance Read ShaderCorePropertiesFlagBitsAMD where
  readPrec :: ReadPrec ShaderCorePropertiesFlagsAMD
readPrec = ReadPrec ShaderCorePropertiesFlagsAMD
-> ReadPrec ShaderCorePropertiesFlagsAMD
forall a. ReadPrec a -> ReadPrec a
parens ([(String, ReadPrec ShaderCorePropertiesFlagsAMD)]
-> ReadPrec ShaderCorePropertiesFlagsAMD
forall a. [(String, ReadPrec a)] -> ReadPrec a
choose []
                     ReadPrec ShaderCorePropertiesFlagsAMD
-> ReadPrec ShaderCorePropertiesFlagsAMD
-> ReadPrec ShaderCorePropertiesFlagsAMD
forall a. ReadPrec a -> ReadPrec a -> ReadPrec a
+++
                     Int
-> ReadPrec ShaderCorePropertiesFlagsAMD
-> ReadPrec ShaderCorePropertiesFlagsAMD
forall a. Int -> ReadPrec a -> ReadPrec a
prec 10 (do
                       Lexeme -> ReadPrec ()
expectP (String -> Lexeme
Ident "ShaderCorePropertiesFlagBitsAMD")
                       Word32
v <- ReadPrec Word32 -> ReadPrec Word32
forall a. ReadPrec a -> ReadPrec a
step ReadPrec Word32
forall a. Read a => ReadPrec a
readPrec
                       ShaderCorePropertiesFlagsAMD
-> ReadPrec ShaderCorePropertiesFlagsAMD
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Word32 -> ShaderCorePropertiesFlagsAMD
ShaderCorePropertiesFlagBitsAMD Word32
v)))


type AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION = 1

-- No documentation found for TopLevel "VK_AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION"
pattern AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION :: forall a . Integral a => a
pattern $bAMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION :: a
$mAMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION :: forall r a. Integral a => a -> (Void# -> r) -> (Void# -> r) -> r
AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION = 1


type AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME = "VK_AMD_shader_core_properties2"

-- No documentation found for TopLevel "VK_AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME"
pattern AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
pattern $bAMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME :: a
$mAMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME :: forall r a.
(Eq a, IsString a) =>
a -> (Void# -> r) -> (Void# -> r) -> r
AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME = "VK_AMD_shader_core_properties2"