{-# language CPP #-}
-- | = Name
--
-- VK_KHR_shader_integer_dot_product - device extension
--
-- == VK_KHR_shader_integer_dot_product
--
-- [__Name String__]
--     @VK_KHR_shader_integer_dot_product@
--
-- [__Extension Type__]
--     Device extension
--
-- [__Registered Extension Number__]
--     281
--
-- [__Revision__]
--     1
--
-- [__Extension and Version Dependencies__]
--
--     -   Requires Vulkan 1.0
--
--     -   Requires @VK_KHR_get_physical_device_properties2@
--
-- [__Contact__]
--
--     -   Kevin Petit
--         <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_shader_integer_dot_product] @kevinpetit%0A<<Here describe the issue or question you have about the VK_KHR_shader_integer_dot_product extension>> >
--
-- [__Extension Proposal__]
--     <https://github.com/KhronosGroup/Vulkan-Docs/tree/main/proposals/VK_KHR_shader_integer_dot_product.asciidoc VK_KHR_shader_integer_dot_product>
--
-- == Other Extension Metadata
--
-- [__Last Modified Date__]
--     2021-06-16
--
-- [__Interactions and External Dependencies__]
--
--     -   This extension requires
--         <https://htmlpreview.github.io/?https://github.com/KhronosGroup/SPIRV-Registry/blob/master/extensions/KHR/SPV_KHR_integer_dot_product.html SPV_KHR_integer_dot_product>.
--
--     -   This extension interacts with @VK_KHR_shader_float16_int8@.
--
-- [__IP Status__]
--     No known IP claims.
--
-- [__Contributors__]
--
--     -   Kévin Petit, Arm Ltd.
--
--     -   Jeff Bolz, NVidia
--
--     -   Spencer Fricke, Samsung
--
--     -   Jesse Hall, Google
--
--     -   John Kessenich, Google
--
--     -   Graeme Leese, Broadcom
--
--     -   Einar Hov, Arm Ltd.
--
--     -   Stuart Brady, Arm Ltd.
--
--     -   Pablo Cascon, Arm Ltd.
--
--     -   Tobias Hector, AMD
--
--     -   Jeff Leger, Qualcomm
--
--     -   Ruihao Zhang, Qualcomm
--
--     -   Pierre Boudier, NVidia
--
--     -   Jon Leech, The Khronos Group
--
--     -   Tom Olson, Arm Ltd.
--
-- == Description
--
-- This extension adds support for the integer dot product SPIR-V
-- instructions defined in SPV_KHR_integer_dot_product. These instructions
-- are particularly useful for neural network inference and training but
-- find uses in other general purpose compute applications as well.
--
-- == New Structures
--
-- -   Extending
--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',
--     'Vulkan.Core10.Device.DeviceCreateInfo':
--
--     -   'PhysicalDeviceShaderIntegerDotProductFeaturesKHR'
--
-- -   Extending
--     'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2':
--
--     -   'PhysicalDeviceShaderIntegerDotProductPropertiesKHR'
--
-- == New Enum Constants
--
-- -   'KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME'
--
-- -   'KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION'
--
-- -   Extending 'Vulkan.Core10.Enums.StructureType.StructureType':
--
--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR'
--
--     -   'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR'
--
-- == New SPIR-V Capabilities
--
-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-DotProductInputAllKHR DotProductInputAllKHR>
--
-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-DotProductInput4x8BitKHR DotProductInput4x8BitKHR>
--
-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-DotProductInput4x8BitPackedKHR DotProductInput4x8BitPackedKHR>
--
-- -   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table-DotProductKHR DotProductKHR>
--
-- == Version History
--
-- -   Revision 1, 2021-06-16 (Kévin Petit)
--
--     -   Initial revision
--
-- = See Also
--
-- 'PhysicalDeviceShaderIntegerDotProductFeaturesKHR',
-- 'PhysicalDeviceShaderIntegerDotProductPropertiesKHR'
--
-- = Document Notes
--
-- For more information, see the
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_shader_integer_dot_product Vulkan Specification>
--
-- This page is a generated document. Fixes and changes should be made to
-- the generator scripts, not directly.
module Vulkan.Extensions.VK_KHR_shader_integer_dot_product  ( PhysicalDeviceShaderIntegerDotProductFeaturesKHR(..)
                                                            , PhysicalDeviceShaderIntegerDotProductPropertiesKHR(..)
                                                            , KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION
                                                            , pattern KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION
                                                            , KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME
                                                            , pattern KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME
                                                            ) where

import Foreign.Marshal.Alloc (allocaBytes)
import Foreign.Ptr (nullPtr)
import Foreign.Ptr (plusPtr)
import Vulkan.CStruct (FromCStruct)
import Vulkan.CStruct (FromCStruct(..))
import Vulkan.CStruct (ToCStruct)
import Vulkan.CStruct (ToCStruct(..))
import Vulkan.Zero (Zero(..))
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 Data.Kind (Type)
import Vulkan.Core10.FundamentalTypes (bool32ToBool)
import Vulkan.Core10.FundamentalTypes (boolToBool32)
import Vulkan.Core10.FundamentalTypes (Bool32)
import Vulkan.Core10.Enums.StructureType (StructureType)
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR))
import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR))
-- | VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR - Structure
-- describing integer dot product features that can be supported by an
-- implementation
--
-- = Members
--
-- The members of the 'PhysicalDeviceShaderIntegerDotProductFeaturesKHR'
-- structure describe the following features:
--
-- = Description
--
-- If the 'PhysicalDeviceShaderIntegerDotProductFeaturesKHR' structure is
-- included in the @pNext@ chain of the
-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2'
-- structure passed to
-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFeatures2',
-- it is filled in to indicate whether each corresponding feature is
-- supported. 'PhysicalDeviceShaderIntegerDotProductFeaturesKHR' /can/ also
-- be used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo'
-- to selectively enable these features.
--
-- == Valid Usage (Implicit)
--
-- = See Also
--
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_shader_integer_dot_product VK_KHR_shader_integer_dot_product>,
-- 'Vulkan.Core10.FundamentalTypes.Bool32',
-- 'Vulkan.Core10.Enums.StructureType.StructureType'
data PhysicalDeviceShaderIntegerDotProductFeaturesKHR = PhysicalDeviceShaderIntegerDotProductFeaturesKHR
  { -- | #features-shaderIntegerDotProduct# @shaderIntegerDotProduct@ specifies
    -- whether shader modules /can/ declare the @DotProductInputAllKHR@,
    -- @DotProductInput4x8BitKHR@, @DotProductInput4x8BitPackedKHR@ and
    -- @DotProductKHR@ capabilities.
    PhysicalDeviceShaderIntegerDotProductFeaturesKHR -> Bool
shaderIntegerDotProduct :: Bool }
  deriving (Typeable, PhysicalDeviceShaderIntegerDotProductFeaturesKHR
-> PhysicalDeviceShaderIntegerDotProductFeaturesKHR -> Bool
(PhysicalDeviceShaderIntegerDotProductFeaturesKHR
 -> PhysicalDeviceShaderIntegerDotProductFeaturesKHR -> Bool)
-> (PhysicalDeviceShaderIntegerDotProductFeaturesKHR
    -> PhysicalDeviceShaderIntegerDotProductFeaturesKHR -> Bool)
-> Eq PhysicalDeviceShaderIntegerDotProductFeaturesKHR
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PhysicalDeviceShaderIntegerDotProductFeaturesKHR
-> PhysicalDeviceShaderIntegerDotProductFeaturesKHR -> Bool
$c/= :: PhysicalDeviceShaderIntegerDotProductFeaturesKHR
-> PhysicalDeviceShaderIntegerDotProductFeaturesKHR -> Bool
== :: PhysicalDeviceShaderIntegerDotProductFeaturesKHR
-> PhysicalDeviceShaderIntegerDotProductFeaturesKHR -> Bool
$c== :: PhysicalDeviceShaderIntegerDotProductFeaturesKHR
-> PhysicalDeviceShaderIntegerDotProductFeaturesKHR -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceShaderIntegerDotProductFeaturesKHR)
#endif
deriving instance Show PhysicalDeviceShaderIntegerDotProductFeaturesKHR

instance ToCStruct PhysicalDeviceShaderIntegerDotProductFeaturesKHR where
  withCStruct :: PhysicalDeviceShaderIntegerDotProductFeaturesKHR
-> (Ptr PhysicalDeviceShaderIntegerDotProductFeaturesKHR -> IO b)
-> IO b
withCStruct PhysicalDeviceShaderIntegerDotProductFeaturesKHR
x Ptr PhysicalDeviceShaderIntegerDotProductFeaturesKHR -> IO b
f = Int
-> (Ptr PhysicalDeviceShaderIntegerDotProductFeaturesKHR -> IO b)
-> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
24 ((Ptr PhysicalDeviceShaderIntegerDotProductFeaturesKHR -> IO b)
 -> IO b)
-> (Ptr PhysicalDeviceShaderIntegerDotProductFeaturesKHR -> IO b)
-> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDeviceShaderIntegerDotProductFeaturesKHR
p -> Ptr PhysicalDeviceShaderIntegerDotProductFeaturesKHR
-> PhysicalDeviceShaderIntegerDotProductFeaturesKHR -> IO b -> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceShaderIntegerDotProductFeaturesKHR
p PhysicalDeviceShaderIntegerDotProductFeaturesKHR
x (Ptr PhysicalDeviceShaderIntegerDotProductFeaturesKHR -> IO b
f Ptr PhysicalDeviceShaderIntegerDotProductFeaturesKHR
p)
  pokeCStruct :: Ptr PhysicalDeviceShaderIntegerDotProductFeaturesKHR
-> PhysicalDeviceShaderIntegerDotProductFeaturesKHR -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceShaderIntegerDotProductFeaturesKHR
p PhysicalDeviceShaderIntegerDotProductFeaturesKHR{Bool
shaderIntegerDotProduct :: Bool
$sel:shaderIntegerDotProduct:PhysicalDeviceShaderIntegerDotProductFeaturesKHR :: PhysicalDeviceShaderIntegerDotProductFeaturesKHR -> Bool
..} IO b
f = do
    Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductFeaturesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductFeaturesKHR
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR)
    Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductFeaturesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductFeaturesKHR
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductFeaturesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductFeaturesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
shaderIntegerDotProduct))
    IO b
f
  cStructSize :: Int
cStructSize = Int
24
  cStructAlignment :: Int
cStructAlignment = Int
8
  pokeZeroCStruct :: Ptr PhysicalDeviceShaderIntegerDotProductFeaturesKHR
-> IO b -> IO b
pokeZeroCStruct Ptr PhysicalDeviceShaderIntegerDotProductFeaturesKHR
p IO b
f = do
    Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductFeaturesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductFeaturesKHR
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR)
    Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductFeaturesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductFeaturesKHR
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductFeaturesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductFeaturesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
    IO b
f

instance FromCStruct PhysicalDeviceShaderIntegerDotProductFeaturesKHR where
  peekCStruct :: Ptr PhysicalDeviceShaderIntegerDotProductFeaturesKHR
-> IO PhysicalDeviceShaderIntegerDotProductFeaturesKHR
peekCStruct Ptr PhysicalDeviceShaderIntegerDotProductFeaturesKHR
p = do
    Bool32
shaderIntegerDotProduct <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderIntegerDotProductFeaturesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductFeaturesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32))
    PhysicalDeviceShaderIntegerDotProductFeaturesKHR
-> IO PhysicalDeviceShaderIntegerDotProductFeaturesKHR
forall (f :: * -> *) a. Applicative f => a -> f a
pure (PhysicalDeviceShaderIntegerDotProductFeaturesKHR
 -> IO PhysicalDeviceShaderIntegerDotProductFeaturesKHR)
-> PhysicalDeviceShaderIntegerDotProductFeaturesKHR
-> IO PhysicalDeviceShaderIntegerDotProductFeaturesKHR
forall a b. (a -> b) -> a -> b
$ Bool -> PhysicalDeviceShaderIntegerDotProductFeaturesKHR
PhysicalDeviceShaderIntegerDotProductFeaturesKHR
             (Bool32 -> Bool
bool32ToBool Bool32
shaderIntegerDotProduct)

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

instance Zero PhysicalDeviceShaderIntegerDotProductFeaturesKHR where
  zero :: PhysicalDeviceShaderIntegerDotProductFeaturesKHR
zero = Bool -> PhysicalDeviceShaderIntegerDotProductFeaturesKHR
PhysicalDeviceShaderIntegerDotProductFeaturesKHR
           Bool
forall a. Zero a => a
zero


-- | VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR - Structure
-- containing information about integer dot product support for a physical
-- device
--
-- = Description
--
-- If the 'PhysicalDeviceShaderIntegerDotProductPropertiesKHR' structure is
-- included in the @pNext@ chain of the
-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2'
-- structure passed to
-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceProperties2',
-- it is filled in with each corresponding implementation-dependent
-- property.
--
-- These are properties of the integer dot product acceleration information
-- of a physical device.
--
-- Note
--
-- A dot product operation is deemed accelerated if its implementation
-- provides a performance advantage over application-provided code composed
-- from elementary instructions and\/or other dot product instructions,
-- either because the implementation uses optimized machine code sequences
-- whose generation from application-provided code cannot be guaranteed or
-- because it uses hardware features that cannot otherwise be targeted from
-- application-provided code.
--
-- == Valid Usage (Implicit)
--
-- = See Also
--
-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_KHR_shader_integer_dot_product VK_KHR_shader_integer_dot_product>,
-- 'Vulkan.Core10.FundamentalTypes.Bool32',
-- 'Vulkan.Core10.Enums.StructureType.StructureType'
data PhysicalDeviceShaderIntegerDotProductPropertiesKHR = PhysicalDeviceShaderIntegerDotProductPropertiesKHR
  { -- | @integerDotProduct8BitUnsignedAccelerated@ is a boolean that will be
    -- 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 8-bit unsigned
    -- dot product operations using the @OpUDotKHR@ SPIR-V instruction is
    -- accelerated
    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.
    PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
integerDotProduct8BitUnsignedAccelerated :: Bool
  , -- | @integerDotProduct8BitSignedAccelerated@ is a boolean that will be
    -- 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 8-bit signed
    -- dot product operations using the @OpSDotKHR@ SPIR-V instruction is
    -- accelerated
    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.
    PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
integerDotProduct8BitSignedAccelerated :: Bool
  , -- | @integerDotProduct8BitMixedSignednessAccelerated@ is a boolean that will
    -- be 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 8-bit mixed
    -- signedness dot product operations using the @OpSUDotKHR@ SPIR-V
    -- instruction is accelerated
    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.
    PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
integerDotProduct8BitMixedSignednessAccelerated :: Bool
  , -- | @integerDotProduct4x8BitPackedUnsignedAccelerated@ is a boolean that
    -- will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 8-bit
    -- unsigned dot product operations from operands packed into 32-bit
    -- integers using the @OpUDotKHR@ SPIR-V instruction is accelerated
    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.
    PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
integerDotProduct4x8BitPackedUnsignedAccelerated :: Bool
  , -- | @integerDotProduct4x8BitPackedSignedAccelerated@ is a boolean that will
    -- be 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 8-bit signed
    -- dot product operations from operands packed into 32-bit integers using
    -- the @OpSDotKHR@ SPIR-V instruction is accelerated
    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.
    PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
integerDotProduct4x8BitPackedSignedAccelerated :: Bool
  , -- | @integerDotProduct4x8BitPackedMixedSignednessAccelerated@ is a boolean
    -- that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for
    -- 8-bit mixed signedness dot product operations from operands packed into
    -- 32-bit integers using the @OpSUDotKHR@ SPIR-V instruction is accelerated
    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.
    PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
integerDotProduct4x8BitPackedMixedSignednessAccelerated :: Bool
  , -- | @integerDotProduct16BitUnsignedAccelerated@ is a boolean that will be
    -- 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 16-bit unsigned
    -- dot product operations using the @OpUDotKHR@ SPIR-V instruction is
    -- accelerated
    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.
    PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
integerDotProduct16BitUnsignedAccelerated :: Bool
  , -- | @integerDotProduct16BitSignedAccelerated@ is a boolean that will be
    -- 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 16-bit signed
    -- dot product operations using the @OpSDotKHR@ SPIR-V instruction is
    -- accelerated
    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.
    PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
integerDotProduct16BitSignedAccelerated :: Bool
  , -- | @integerDotProduct16BitMixedSignednessAccelerated@ is a boolean that
    -- will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 16-bit
    -- mixed signedness dot product operations using the @OpSUDotKHR@ SPIR-V
    -- instruction is accelerated
    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.
    PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
integerDotProduct16BitMixedSignednessAccelerated :: Bool
  , -- | @integerDotProduct32BitUnsignedAccelerated@ is a boolean that will be
    -- 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 32-bit unsigned
    -- dot product operations using the @OpUDotKHR@ SPIR-V instruction is
    -- accelerated
    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.
    PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
integerDotProduct32BitUnsignedAccelerated :: Bool
  , -- | @integerDotProduct32BitSignedAccelerated@ is a boolean that will be
    -- 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 32-bit signed
    -- dot product operations using the @OpSDotKHR@ SPIR-V instruction is
    -- accelerated
    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.
    PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
integerDotProduct32BitSignedAccelerated :: Bool
  , -- | @integerDotProduct32BitMixedSignednessAccelerated@ is a boolean that
    -- will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 32-bit
    -- mixed signedness dot product operations using the @OpSUDotKHR@ SPIR-V
    -- instruction is accelerated
    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.
    PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
integerDotProduct32BitMixedSignednessAccelerated :: Bool
  , -- | @integerDotProduct64BitUnsignedAccelerated@ is a boolean that will be
    -- 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 64-bit unsigned
    -- dot product operations using the @OpUDotKHR@ SPIR-V instruction is
    -- accelerated
    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.
    PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
integerDotProduct64BitUnsignedAccelerated :: Bool
  , -- | @integerDotProduct64BitSignedAccelerated@ is a boolean that will be
    -- 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 64-bit signed
    -- dot product operations using the @OpSDotKHR@ SPIR-V instruction is
    -- accelerated
    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.
    PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
integerDotProduct64BitSignedAccelerated :: Bool
  , -- | @integerDotProduct64BitMixedSignednessAccelerated@ is a boolean that
    -- will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the support for 64-bit
    -- mixed signedness dot product operations using the @OpSUDotKHR@ SPIR-V
    -- instruction is accelerated
    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.
    PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
integerDotProduct64BitMixedSignednessAccelerated :: Bool
  , -- | @integerDotProductAccumulatingSaturating8BitUnsignedAccelerated@ is a
    -- boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the
    -- support for 8-bit unsigned accumulating saturating dot product
    -- operations using the @OpUDotAccSatKHR@ SPIR-V instruction is accelerated
    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.
    PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
integerDotProductAccumulatingSaturating8BitUnsignedAccelerated :: Bool
  , -- | @integerDotProductAccumulatingSaturating8BitSignedAccelerated@ is a
    -- boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the
    -- support for 8-bit signed accumulating saturating dot product operations
    -- using the @OpSDotAccSatKHR@ SPIR-V instruction is accelerated
    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.
    PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
integerDotProductAccumulatingSaturating8BitSignedAccelerated :: Bool
  , -- | @integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated@
    -- is a boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the
    -- support for 8-bit mixed signedness accumulating saturating dot product
    -- operations using the @OpSUDotAccSatKHR@ SPIR-V instruction is
    -- accelerated
    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.
    PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated :: Bool
  , -- | @integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated@
    -- is a boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the
    -- support for 8-bit unsigned accumulating saturating dot product
    -- operations from operands packed into 32-bit integers using the
    -- @OpUDotAccSatKHR@ SPIR-V instruction is accelerated
    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.
    PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated :: Bool
  , -- | @integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated@
    -- is a boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the
    -- support for 8-bit signed accumulating saturating dot product operations
    -- from operands packed into 32-bit integers using the @OpSDotAccSatKHR@
    -- SPIR-V instruction is accelerated
    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.
    PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated :: Bool
  , -- | @integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated@
    -- is a boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the
    -- support for 8-bit mixed signedness accumulating saturating dot product
    -- operations from operands packed into 32-bit integers using the
    -- @OpSUDotAccSatKHR@ SPIR-V instruction is accelerated
    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.
    PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated :: Bool
  , -- | @integerDotProductAccumulatingSaturating16BitUnsignedAccelerated@ is a
    -- boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the
    -- support for 16-bit unsigned accumulating saturating dot product
    -- operations using the @OpUDotAccSatKHR@ SPIR-V instruction is accelerated
    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.
    PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
integerDotProductAccumulatingSaturating16BitUnsignedAccelerated :: Bool
  , -- | @integerDotProductAccumulatingSaturating16BitSignedAccelerated@ is a
    -- boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the
    -- support for 16-bit signed accumulating saturating dot product operations
    -- using the @OpSDotAccSatKHR@ SPIR-V instruction is accelerated
    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.
    PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
integerDotProductAccumulatingSaturating16BitSignedAccelerated :: Bool
  , -- | @integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated@
    -- is a boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the
    -- support for 16-bit mixed signedness accumulating saturating dot product
    -- operations using the @OpSUDotAccSatKHR@ SPIR-V instruction is
    -- accelerated
    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.
    PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated :: Bool
  , -- | @integerDotProductAccumulatingSaturating32BitUnsignedAccelerated@ is a
    -- boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the
    -- support for 32-bit unsigned accumulating saturating dot product
    -- operations using the @OpUDotAccSatKHR@ SPIR-V instruction is accelerated
    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.
    PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
integerDotProductAccumulatingSaturating32BitUnsignedAccelerated :: Bool
  , -- | @integerDotProductAccumulatingSaturating32BitSignedAccelerated@ is a
    -- boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the
    -- support for 32-bit signed accumulating saturating dot product operations
    -- using the @OpSDotAccSatKHR@ SPIR-V instruction is accelerated
    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.
    PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
integerDotProductAccumulatingSaturating32BitSignedAccelerated :: Bool
  , -- | @integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated@
    -- is a boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the
    -- support for 32-bit mixed signedness accumulating saturating dot product
    -- operations using the @OpSUDotAccSatKHR@ SPIR-V instruction is
    -- accelerated
    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.
    PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated :: Bool
  , -- | @integerDotProductAccumulatingSaturating64BitUnsignedAccelerated@ is a
    -- boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the
    -- support for 64-bit unsigned accumulating saturating dot product
    -- operations using the @OpUDotAccSatKHR@ SPIR-V instruction is accelerated
    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.
    PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
integerDotProductAccumulatingSaturating64BitUnsignedAccelerated :: Bool
  , -- | @integerDotProductAccumulatingSaturating64BitSignedAccelerated@ is a
    -- boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the
    -- support for 64-bit signed accumulating saturating dot product operations
    -- using the @OpSDotAccSatKHR@ SPIR-V instruction is accelerated
    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.
    PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
integerDotProductAccumulatingSaturating64BitSignedAccelerated :: Bool
  , -- | @integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated@
    -- is a boolean that will be 'Vulkan.Core10.FundamentalTypes.TRUE' if the
    -- support for 64-bit mixed signedness accumulating saturating dot product
    -- operations using the @OpSUDotAccSatKHR@ SPIR-V instruction is
    -- accelerated
    -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#devsandqueues-integer-dot-product-accelerated as defined below>.
    PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated :: Bool
  }
  deriving (Typeable, PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
(PhysicalDeviceShaderIntegerDotProductPropertiesKHR
 -> PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool)
-> (PhysicalDeviceShaderIntegerDotProductPropertiesKHR
    -> PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool)
-> Eq PhysicalDeviceShaderIntegerDotProductPropertiesKHR
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
$c/= :: PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
== :: PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
$c== :: PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
Eq)
#if defined(GENERIC_INSTANCES)
deriving instance Generic (PhysicalDeviceShaderIntegerDotProductPropertiesKHR)
#endif
deriving instance Show PhysicalDeviceShaderIntegerDotProductPropertiesKHR

instance ToCStruct PhysicalDeviceShaderIntegerDotProductPropertiesKHR where
  withCStruct :: PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> (Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> IO b)
-> IO b
withCStruct PhysicalDeviceShaderIntegerDotProductPropertiesKHR
x Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> IO b
f = Int
-> (Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> IO b)
-> IO b
forall a b. Int -> (Ptr a -> IO b) -> IO b
allocaBytes Int
136 ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> IO b)
 -> IO b)
-> (Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> IO b)
-> IO b
forall a b. (a -> b) -> a -> b
$ \Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p -> Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> IO b
-> IO b
forall a b. ToCStruct a => Ptr a -> a -> IO b -> IO b
pokeCStruct Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p PhysicalDeviceShaderIntegerDotProductPropertiesKHR
x (Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> IO b
f Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p)
  pokeCStruct :: Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> IO b
-> IO b
pokeCStruct Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p PhysicalDeviceShaderIntegerDotProductPropertiesKHR{Bool
integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated :: Bool
integerDotProductAccumulatingSaturating64BitSignedAccelerated :: Bool
integerDotProductAccumulatingSaturating64BitUnsignedAccelerated :: Bool
integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated :: Bool
integerDotProductAccumulatingSaturating32BitSignedAccelerated :: Bool
integerDotProductAccumulatingSaturating32BitUnsignedAccelerated :: Bool
integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated :: Bool
integerDotProductAccumulatingSaturating16BitSignedAccelerated :: Bool
integerDotProductAccumulatingSaturating16BitUnsignedAccelerated :: Bool
integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated :: Bool
integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated :: Bool
integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated :: Bool
integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated :: Bool
integerDotProductAccumulatingSaturating8BitSignedAccelerated :: Bool
integerDotProductAccumulatingSaturating8BitUnsignedAccelerated :: Bool
integerDotProduct64BitMixedSignednessAccelerated :: Bool
integerDotProduct64BitSignedAccelerated :: Bool
integerDotProduct64BitUnsignedAccelerated :: Bool
integerDotProduct32BitMixedSignednessAccelerated :: Bool
integerDotProduct32BitSignedAccelerated :: Bool
integerDotProduct32BitUnsignedAccelerated :: Bool
integerDotProduct16BitMixedSignednessAccelerated :: Bool
integerDotProduct16BitSignedAccelerated :: Bool
integerDotProduct16BitUnsignedAccelerated :: Bool
integerDotProduct4x8BitPackedMixedSignednessAccelerated :: Bool
integerDotProduct4x8BitPackedSignedAccelerated :: Bool
integerDotProduct4x8BitPackedUnsignedAccelerated :: Bool
integerDotProduct8BitMixedSignednessAccelerated :: Bool
integerDotProduct8BitSignedAccelerated :: Bool
integerDotProduct8BitUnsignedAccelerated :: Bool
$sel:integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated:PhysicalDeviceShaderIntegerDotProductPropertiesKHR :: PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
$sel:integerDotProductAccumulatingSaturating64BitSignedAccelerated:PhysicalDeviceShaderIntegerDotProductPropertiesKHR :: PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
$sel:integerDotProductAccumulatingSaturating64BitUnsignedAccelerated:PhysicalDeviceShaderIntegerDotProductPropertiesKHR :: PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
$sel:integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated:PhysicalDeviceShaderIntegerDotProductPropertiesKHR :: PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
$sel:integerDotProductAccumulatingSaturating32BitSignedAccelerated:PhysicalDeviceShaderIntegerDotProductPropertiesKHR :: PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
$sel:integerDotProductAccumulatingSaturating32BitUnsignedAccelerated:PhysicalDeviceShaderIntegerDotProductPropertiesKHR :: PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
$sel:integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated:PhysicalDeviceShaderIntegerDotProductPropertiesKHR :: PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
$sel:integerDotProductAccumulatingSaturating16BitSignedAccelerated:PhysicalDeviceShaderIntegerDotProductPropertiesKHR :: PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
$sel:integerDotProductAccumulatingSaturating16BitUnsignedAccelerated:PhysicalDeviceShaderIntegerDotProductPropertiesKHR :: PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
$sel:integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated:PhysicalDeviceShaderIntegerDotProductPropertiesKHR :: PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
$sel:integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated:PhysicalDeviceShaderIntegerDotProductPropertiesKHR :: PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
$sel:integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated:PhysicalDeviceShaderIntegerDotProductPropertiesKHR :: PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
$sel:integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated:PhysicalDeviceShaderIntegerDotProductPropertiesKHR :: PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
$sel:integerDotProductAccumulatingSaturating8BitSignedAccelerated:PhysicalDeviceShaderIntegerDotProductPropertiesKHR :: PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
$sel:integerDotProductAccumulatingSaturating8BitUnsignedAccelerated:PhysicalDeviceShaderIntegerDotProductPropertiesKHR :: PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
$sel:integerDotProduct64BitMixedSignednessAccelerated:PhysicalDeviceShaderIntegerDotProductPropertiesKHR :: PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
$sel:integerDotProduct64BitSignedAccelerated:PhysicalDeviceShaderIntegerDotProductPropertiesKHR :: PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
$sel:integerDotProduct64BitUnsignedAccelerated:PhysicalDeviceShaderIntegerDotProductPropertiesKHR :: PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
$sel:integerDotProduct32BitMixedSignednessAccelerated:PhysicalDeviceShaderIntegerDotProductPropertiesKHR :: PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
$sel:integerDotProduct32BitSignedAccelerated:PhysicalDeviceShaderIntegerDotProductPropertiesKHR :: PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
$sel:integerDotProduct32BitUnsignedAccelerated:PhysicalDeviceShaderIntegerDotProductPropertiesKHR :: PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
$sel:integerDotProduct16BitMixedSignednessAccelerated:PhysicalDeviceShaderIntegerDotProductPropertiesKHR :: PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
$sel:integerDotProduct16BitSignedAccelerated:PhysicalDeviceShaderIntegerDotProductPropertiesKHR :: PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
$sel:integerDotProduct16BitUnsignedAccelerated:PhysicalDeviceShaderIntegerDotProductPropertiesKHR :: PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
$sel:integerDotProduct4x8BitPackedMixedSignednessAccelerated:PhysicalDeviceShaderIntegerDotProductPropertiesKHR :: PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
$sel:integerDotProduct4x8BitPackedSignedAccelerated:PhysicalDeviceShaderIntegerDotProductPropertiesKHR :: PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
$sel:integerDotProduct4x8BitPackedUnsignedAccelerated:PhysicalDeviceShaderIntegerDotProductPropertiesKHR :: PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
$sel:integerDotProduct8BitMixedSignednessAccelerated:PhysicalDeviceShaderIntegerDotProductPropertiesKHR :: PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
$sel:integerDotProduct8BitSignedAccelerated:PhysicalDeviceShaderIntegerDotProductPropertiesKHR :: PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
$sel:integerDotProduct8BitUnsignedAccelerated:PhysicalDeviceShaderIntegerDotProductPropertiesKHR :: PhysicalDeviceShaderIntegerDotProductPropertiesKHR -> Bool
..} IO b
f = do
    Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR)
    Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
integerDotProduct8BitUnsignedAccelerated))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
integerDotProduct8BitSignedAccelerated))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
integerDotProduct8BitMixedSignednessAccelerated))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
28 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
integerDotProduct4x8BitPackedUnsignedAccelerated))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
integerDotProduct4x8BitPackedSignedAccelerated))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
36 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
integerDotProduct4x8BitPackedMixedSignednessAccelerated))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
integerDotProduct16BitUnsignedAccelerated))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
44 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
integerDotProduct16BitSignedAccelerated))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
48 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
integerDotProduct16BitMixedSignednessAccelerated))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
52 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
integerDotProduct32BitUnsignedAccelerated))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
56 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
integerDotProduct32BitSignedAccelerated))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
60 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
integerDotProduct32BitMixedSignednessAccelerated))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
64 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
integerDotProduct64BitUnsignedAccelerated))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
68 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
integerDotProduct64BitSignedAccelerated))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
72 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
integerDotProduct64BitMixedSignednessAccelerated))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
76 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
integerDotProductAccumulatingSaturating8BitUnsignedAccelerated))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
80 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
integerDotProductAccumulatingSaturating8BitSignedAccelerated))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
84 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
88 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
92 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
96 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
100 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
integerDotProductAccumulatingSaturating16BitUnsignedAccelerated))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
104 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
integerDotProductAccumulatingSaturating16BitSignedAccelerated))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
108 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
112 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
integerDotProductAccumulatingSaturating32BitUnsignedAccelerated))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
116 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
integerDotProductAccumulatingSaturating32BitSignedAccelerated))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
120 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
124 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
integerDotProductAccumulatingSaturating64BitUnsignedAccelerated))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
128 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
integerDotProductAccumulatingSaturating64BitSignedAccelerated))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
132 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated))
    IO b
f
  cStructSize :: Int
cStructSize = Int
136
  cStructAlignment :: Int
cStructAlignment = Int
8
  pokeZeroCStruct :: Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> IO b -> IO b
pokeZeroCStruct Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p IO b
f = do
    Ptr StructureType -> StructureType -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr StructureType
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0 :: Ptr StructureType)) (StructureType
STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR)
    Ptr (Ptr ()) -> Ptr () -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr (Ptr ())
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8 :: Ptr (Ptr ()))) (Ptr ()
forall a. Ptr a
nullPtr)
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
28 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
36 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
44 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
48 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
52 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
56 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
60 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
64 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
68 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
72 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
76 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
80 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
84 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
88 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
92 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
96 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
100 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
104 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
108 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
112 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
116 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
120 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
124 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
128 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
    Ptr Bool32 -> Bool32 -> IO ()
forall a. Storable a => Ptr a -> a -> IO ()
poke ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
132 :: Ptr Bool32)) (Bool -> Bool32
boolToBool32 (Bool
forall a. Zero a => a
zero))
    IO b
f

instance FromCStruct PhysicalDeviceShaderIntegerDotProductPropertiesKHR where
  peekCStruct :: Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> IO PhysicalDeviceShaderIntegerDotProductPropertiesKHR
peekCStruct Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p = do
    Bool32
integerDotProduct8BitUnsignedAccelerated <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
16 :: Ptr Bool32))
    Bool32
integerDotProduct8BitSignedAccelerated <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
20 :: Ptr Bool32))
    Bool32
integerDotProduct8BitMixedSignednessAccelerated <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
24 :: Ptr Bool32))
    Bool32
integerDotProduct4x8BitPackedUnsignedAccelerated <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
28 :: Ptr Bool32))
    Bool32
integerDotProduct4x8BitPackedSignedAccelerated <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
32 :: Ptr Bool32))
    Bool32
integerDotProduct4x8BitPackedMixedSignednessAccelerated <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
36 :: Ptr Bool32))
    Bool32
integerDotProduct16BitUnsignedAccelerated <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
40 :: Ptr Bool32))
    Bool32
integerDotProduct16BitSignedAccelerated <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
44 :: Ptr Bool32))
    Bool32
integerDotProduct16BitMixedSignednessAccelerated <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
48 :: Ptr Bool32))
    Bool32
integerDotProduct32BitUnsignedAccelerated <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
52 :: Ptr Bool32))
    Bool32
integerDotProduct32BitSignedAccelerated <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
56 :: Ptr Bool32))
    Bool32
integerDotProduct32BitMixedSignednessAccelerated <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
60 :: Ptr Bool32))
    Bool32
integerDotProduct64BitUnsignedAccelerated <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
64 :: Ptr Bool32))
    Bool32
integerDotProduct64BitSignedAccelerated <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
68 :: Ptr Bool32))
    Bool32
integerDotProduct64BitMixedSignednessAccelerated <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
72 :: Ptr Bool32))
    Bool32
integerDotProductAccumulatingSaturating8BitUnsignedAccelerated <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
76 :: Ptr Bool32))
    Bool32
integerDotProductAccumulatingSaturating8BitSignedAccelerated <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
80 :: Ptr Bool32))
    Bool32
integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
84 :: Ptr Bool32))
    Bool32
integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
88 :: Ptr Bool32))
    Bool32
integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
92 :: Ptr Bool32))
    Bool32
integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
96 :: Ptr Bool32))
    Bool32
integerDotProductAccumulatingSaturating16BitUnsignedAccelerated <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
100 :: Ptr Bool32))
    Bool32
integerDotProductAccumulatingSaturating16BitSignedAccelerated <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
104 :: Ptr Bool32))
    Bool32
integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
108 :: Ptr Bool32))
    Bool32
integerDotProductAccumulatingSaturating32BitUnsignedAccelerated <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
112 :: Ptr Bool32))
    Bool32
integerDotProductAccumulatingSaturating32BitSignedAccelerated <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
116 :: Ptr Bool32))
    Bool32
integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
120 :: Ptr Bool32))
    Bool32
integerDotProductAccumulatingSaturating64BitUnsignedAccelerated <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
124 :: Ptr Bool32))
    Bool32
integerDotProductAccumulatingSaturating64BitSignedAccelerated <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
128 :: Ptr Bool32))
    Bool32
integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated <- Ptr Bool32 -> IO Bool32
forall a. Storable a => Ptr a -> IO a
peek @Bool32 ((Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
p Ptr PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> Int -> Ptr Bool32
forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
132 :: Ptr Bool32))
    PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> IO PhysicalDeviceShaderIntegerDotProductPropertiesKHR
forall (f :: * -> *) a. Applicative f => a -> f a
pure (PhysicalDeviceShaderIntegerDotProductPropertiesKHR
 -> IO PhysicalDeviceShaderIntegerDotProductPropertiesKHR)
-> PhysicalDeviceShaderIntegerDotProductPropertiesKHR
-> IO PhysicalDeviceShaderIntegerDotProductPropertiesKHR
forall a b. (a -> b) -> a -> b
$ Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceShaderIntegerDotProductPropertiesKHR
PhysicalDeviceShaderIntegerDotProductPropertiesKHR
             (Bool32 -> Bool
bool32ToBool Bool32
integerDotProduct8BitUnsignedAccelerated) (Bool32 -> Bool
bool32ToBool Bool32
integerDotProduct8BitSignedAccelerated) (Bool32 -> Bool
bool32ToBool Bool32
integerDotProduct8BitMixedSignednessAccelerated) (Bool32 -> Bool
bool32ToBool Bool32
integerDotProduct4x8BitPackedUnsignedAccelerated) (Bool32 -> Bool
bool32ToBool Bool32
integerDotProduct4x8BitPackedSignedAccelerated) (Bool32 -> Bool
bool32ToBool Bool32
integerDotProduct4x8BitPackedMixedSignednessAccelerated) (Bool32 -> Bool
bool32ToBool Bool32
integerDotProduct16BitUnsignedAccelerated) (Bool32 -> Bool
bool32ToBool Bool32
integerDotProduct16BitSignedAccelerated) (Bool32 -> Bool
bool32ToBool Bool32
integerDotProduct16BitMixedSignednessAccelerated) (Bool32 -> Bool
bool32ToBool Bool32
integerDotProduct32BitUnsignedAccelerated) (Bool32 -> Bool
bool32ToBool Bool32
integerDotProduct32BitSignedAccelerated) (Bool32 -> Bool
bool32ToBool Bool32
integerDotProduct32BitMixedSignednessAccelerated) (Bool32 -> Bool
bool32ToBool Bool32
integerDotProduct64BitUnsignedAccelerated) (Bool32 -> Bool
bool32ToBool Bool32
integerDotProduct64BitSignedAccelerated) (Bool32 -> Bool
bool32ToBool Bool32
integerDotProduct64BitMixedSignednessAccelerated) (Bool32 -> Bool
bool32ToBool Bool32
integerDotProductAccumulatingSaturating8BitUnsignedAccelerated) (Bool32 -> Bool
bool32ToBool Bool32
integerDotProductAccumulatingSaturating8BitSignedAccelerated) (Bool32 -> Bool
bool32ToBool Bool32
integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated) (Bool32 -> Bool
bool32ToBool Bool32
integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated) (Bool32 -> Bool
bool32ToBool Bool32
integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated) (Bool32 -> Bool
bool32ToBool Bool32
integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated) (Bool32 -> Bool
bool32ToBool Bool32
integerDotProductAccumulatingSaturating16BitUnsignedAccelerated) (Bool32 -> Bool
bool32ToBool Bool32
integerDotProductAccumulatingSaturating16BitSignedAccelerated) (Bool32 -> Bool
bool32ToBool Bool32
integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated) (Bool32 -> Bool
bool32ToBool Bool32
integerDotProductAccumulatingSaturating32BitUnsignedAccelerated) (Bool32 -> Bool
bool32ToBool Bool32
integerDotProductAccumulatingSaturating32BitSignedAccelerated) (Bool32 -> Bool
bool32ToBool Bool32
integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated) (Bool32 -> Bool
bool32ToBool Bool32
integerDotProductAccumulatingSaturating64BitUnsignedAccelerated) (Bool32 -> Bool
bool32ToBool Bool32
integerDotProductAccumulatingSaturating64BitSignedAccelerated) (Bool32 -> Bool
bool32ToBool Bool32
integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated)

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

instance Zero PhysicalDeviceShaderIntegerDotProductPropertiesKHR where
  zero :: PhysicalDeviceShaderIntegerDotProductPropertiesKHR
zero = Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> Bool
-> PhysicalDeviceShaderIntegerDotProductPropertiesKHR
PhysicalDeviceShaderIntegerDotProductPropertiesKHR
           Bool
forall a. Zero a => a
zero
           Bool
forall a. Zero a => a
zero
           Bool
forall a. Zero a => a
zero
           Bool
forall a. Zero a => a
zero
           Bool
forall a. Zero a => a
zero
           Bool
forall a. Zero a => a
zero
           Bool
forall a. Zero a => a
zero
           Bool
forall a. Zero a => a
zero
           Bool
forall a. Zero a => a
zero
           Bool
forall a. Zero a => a
zero
           Bool
forall a. Zero a => a
zero
           Bool
forall a. Zero a => a
zero
           Bool
forall a. Zero a => a
zero
           Bool
forall a. Zero a => a
zero
           Bool
forall a. Zero a => a
zero
           Bool
forall a. Zero a => a
zero
           Bool
forall a. Zero a => a
zero
           Bool
forall a. Zero a => a
zero
           Bool
forall a. Zero a => a
zero
           Bool
forall a. Zero a => a
zero
           Bool
forall a. Zero a => a
zero
           Bool
forall a. Zero a => a
zero
           Bool
forall a. Zero a => a
zero
           Bool
forall a. Zero a => a
zero
           Bool
forall a. Zero a => a
zero
           Bool
forall a. Zero a => a
zero
           Bool
forall a. Zero a => a
zero
           Bool
forall a. Zero a => a
zero
           Bool
forall a. Zero a => a
zero
           Bool
forall a. Zero a => a
zero


type KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION = 1

-- No documentation found for TopLevel "VK_KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION"
pattern KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION :: forall a . Integral a => a
pattern $bKHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION :: a
$mKHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION :: forall r a. Integral a => a -> (Void# -> r) -> (Void# -> r) -> r
KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION = 1


type KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME = "VK_KHR_shader_integer_dot_product"

-- No documentation found for TopLevel "VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME"
pattern KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a
pattern $bKHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME :: a
$mKHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME :: forall r a.
(Eq a, IsString a) =>
a -> (Void# -> r) -> (Void# -> r) -> r
KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME = "VK_KHR_shader_integer_dot_product"