{-# OPTIONS_GHC -fno-warn-orphans#-}
{-# OPTIONS_HADDOCK not-home#-}
{-# LANGUAGE CPP                      #-}
{-# LANGUAGE DataKinds                #-}
{-# LANGUAGE FlexibleInstances        #-}
{-# LANGUAGE ForeignFunctionInterface #-}
{-# LANGUAGE MagicHash                #-}
{-# LANGUAGE PatternSynonyms          #-}
{-# LANGUAGE Strict                   #-}
{-# LANGUAGE TypeFamilies             #-}
{-# LANGUAGE ViewPatterns             #-}
module Graphics.Vulkan.Ext.VK_NV_shading_rate_image
       (-- * Vulkan extension: @VK_NV_shading_rate_image@
        -- |
        --
        -- supported: @vulkan@
        --
        -- contact: @Pat Brown @nvpbrown@
        --
        -- author: @NV@
        --
        -- type: @device@
        --
        -- Extension number: @165@
        --
        -- Required extensions: 'VK_KHR_get_physical_device_properties2'.
        --

        -- ** Required extensions: 'VK_KHR_get_physical_device_properties2'.
        module Graphics.Vulkan.Marshal, AHardwareBuffer(),
        ANativeWindow(), CAMetalLayer(), VkBool32(..), VkDeviceAddress(..),
        VkDeviceSize(..), VkFlags(..), VkSampleMask(..),
        VkCoarseSampleLocationNV, VkCoarseSampleOrderCustomNV,
        VkCoarseSampleOrderTypeNV(..), VkAndroidSurfaceCreateFlagsKHR(..),
        VkBufferViewCreateFlags(..),
        VkBuildAccelerationStructureFlagsNV(..),
        VkCommandPoolTrimFlags(..), VkCommandPoolTrimFlagsKHR(..),
        VkDebugUtilsMessengerCallbackDataFlagsEXT(..),
        VkDebugUtilsMessengerCreateFlagsEXT(..),
        VkDescriptorBindingFlagsEXT(..), VkDescriptorPoolResetFlags(..),
        VkDescriptorUpdateTemplateCreateFlags(..),
        VkDescriptorUpdateTemplateCreateFlagsKHR(..),
        VkDeviceCreateFlags(..), VkDirectFBSurfaceCreateFlagsEXT(..),
        VkDisplayModeCreateFlagsKHR(..),
        VkDisplaySurfaceCreateFlagsKHR(..), VkEventCreateFlags(..),
        VkExternalFenceFeatureFlagsKHR(..),
        VkExternalFenceHandleTypeFlagsKHR(..),
        VkExternalMemoryFeatureFlagsKHR(..),
        VkExternalMemoryHandleTypeFlagsKHR(..),
        VkExternalSemaphoreFeatureFlagsKHR(..),
        VkExternalSemaphoreHandleTypeFlagsKHR(..),
        VkFenceImportFlagsKHR(..), VkGeometryFlagsNV(..),
        VkGeometryInstanceFlagsNV(..), VkHeadlessSurfaceCreateFlagsEXT(..),
        VkIOSSurfaceCreateFlagsMVK(..),
        VkImagePipeSurfaceCreateFlagsFUCHSIA(..),
        VkInstanceCreateFlags(..), VkMacOSSurfaceCreateFlagsMVK(..),
        VkMemoryAllocateFlagsKHR(..), VkMemoryMapFlags(..),
        VkMetalSurfaceCreateFlagsEXT(..), VkPeerMemoryFeatureFlagsKHR(..),
        VkPipelineColorBlendStateCreateFlags(..),
        VkPipelineCoverageModulationStateCreateFlagsNV(..),
        VkPipelineCoverageReductionStateCreateFlagsNV(..),
        VkPipelineCoverageToColorStateCreateFlagsNV(..),
        VkPipelineDepthStencilStateCreateFlags(..),
        VkPipelineDiscardRectangleStateCreateFlagsEXT(..),
        VkPipelineDynamicStateCreateFlags(..),
        VkPipelineInputAssemblyStateCreateFlags(..),
        VkPipelineLayoutCreateFlags(..),
        VkPipelineMultisampleStateCreateFlags(..),
        VkPipelineRasterizationConservativeStateCreateFlagsEXT(..),
        VkPipelineRasterizationDepthClipStateCreateFlagsEXT(..),
        VkPipelineRasterizationStateCreateFlags(..),
        VkPipelineRasterizationStateStreamCreateFlagsEXT(..),
        VkPipelineTessellationStateCreateFlags(..),
        VkPipelineVertexInputStateCreateFlags(..),
        VkPipelineViewportStateCreateFlags(..),
        VkPipelineViewportSwizzleStateCreateFlagsNV(..),
        VkQueryPoolCreateFlags(..), VkResolveModeFlagsKHR(..),
        VkSemaphoreCreateFlags(..), VkSemaphoreImportFlagsKHR(..),
        VkSemaphoreWaitFlagsKHR(..),
        VkStreamDescriptorSurfaceCreateFlagsGGP(..),
        VkValidationCacheCreateFlagsEXT(..), VkViSurfaceCreateFlagsNN(..),
        VkWaylandSurfaceCreateFlagsKHR(..),
        VkWin32SurfaceCreateFlagsKHR(..), VkXcbSurfaceCreateFlagsKHR(..),
        VkXlibSurfaceCreateFlagsKHR(..), VkDeviceCreateInfo,
        VkDeviceDiagnosticsConfigBitmaskNV(..), VkDeviceEventTypeEXT(..),
        VkDeviceGroupPresentModeBitmaskKHR(..), VkDeviceCreateFlagBits(..),
        VkDeviceDiagnosticsConfigFlagBitsNV(),
        VkDeviceDiagnosticsConfigFlagsNV(),
        VkDeviceGroupPresentModeFlagBitsKHR(),
        VkDeviceGroupPresentModeFlagsKHR(), VkDeviceQueueCreateBitmask(..),
        VkDeviceQueueCreateFlagBits(), VkDeviceQueueCreateFlags(),
        VkDeviceQueueCreateInfo, VkExtent2D, VkOffset2D,
        VkPhysicalDeviceFeatures, VkPhysicalDeviceFeatures2,
        VkPhysicalDeviceLimits, VkPhysicalDeviceProperties,
        VkPhysicalDeviceProperties2,
        VkPhysicalDeviceShadingRateImageFeaturesNV,
        VkPhysicalDeviceShadingRateImagePropertiesNV,
        VkPhysicalDeviceSparseProperties, VkPhysicalDeviceType(..),
        VkPipelineViewportCoarseSampleOrderStateCreateInfoNV,
        VkPipelineViewportShadingRateImageStateCreateInfoNV,
        VkPipelineViewportStateCreateInfo, VkRect2D,
        VkSampleCountBitmask(..), VkSampleCountFlagBits(),
        VkSampleCountFlags(), VkShadingRatePaletteEntryNV(..),
        VkShadingRatePaletteNV, VkStructureType(..), VkViewport,
        -- > #include "vk_platform.h"
        VkCmdBindShadingRateImageNV, pattern VkCmdBindShadingRateImageNV,
        HS_vkCmdBindShadingRateImageNV, PFN_vkCmdBindShadingRateImageNV,
        VkCmdSetViewportShadingRatePaletteNV,
        pattern VkCmdSetViewportShadingRatePaletteNV,
        HS_vkCmdSetViewportShadingRatePaletteNV,
        PFN_vkCmdSetViewportShadingRatePaletteNV,
        VkCmdSetCoarseSampleOrderNV, pattern VkCmdSetCoarseSampleOrderNV,
        HS_vkCmdSetCoarseSampleOrderNV, PFN_vkCmdSetCoarseSampleOrderNV,
        VkImageAspectBitmask(..), VkImageCreateBitmask(..),
        VkImageLayout(..), VkImageTiling(..), VkImageType(..),
        VkImageUsageBitmask(..), VkImageViewType(..),
        VkImageAspectFlagBits(), VkImageAspectFlags(),
        VkImageCreateFlagBits(), VkImageCreateFlags(),
        VkImageUsageFlagBits(), VkImageUsageFlags(),
        VkImageViewCreateBitmask(..), VkImageViewCreateFlagBits(),
        VkImageViewCreateFlags(), VkAccelerationStructureKHR,
        VkAccelerationStructureKHR_T(), VkAccelerationStructureNV,
        VkAccelerationStructureNV_T(), VkBuffer, VkBufferView,
        VkBufferView_T(), VkBuffer_T(), VkCommandBuffer,
        VkCommandBuffer_T(), VkCommandPool, VkCommandPool_T(),
        VkDebugReportCallbackEXT, VkDebugReportCallbackEXT_T(),
        VkDebugUtilsMessengerEXT, VkDebugUtilsMessengerEXT_T(),
        VkDeferredOperationKHR, VkDeferredOperationKHR_T(),
        VkDescriptorPool, VkDescriptorPool_T(), VkDescriptorSet,
        VkDescriptorSetLayout, VkDescriptorSetLayout_T(),
        VkDescriptorSet_T(), VkDescriptorUpdateTemplate,
        VkDescriptorUpdateTemplateKHR, VkDescriptorUpdateTemplateKHR_T(),
        VkDescriptorUpdateTemplate_T(), VkDevice, VkDeviceMemory,
        VkDeviceMemory_T(), VkDevice_T(), VkDisplayKHR, VkDisplayKHR_T(),
        VkDisplayModeKHR, VkDisplayModeKHR_T(), VkEvent, VkEvent_T(),
        VkFence, VkFence_T(), VkFramebuffer, VkFramebuffer_T(), VkImage,
        VkImageView, VkImageView_T(), VkImage_T(),
        VkIndirectCommandsLayoutNV, VkIndirectCommandsLayoutNV_T(),
        VkInstance, VkInstance_T(), VkPerformanceConfigurationINTEL,
        VkPerformanceConfigurationINTEL_T(), VkPhysicalDevice,
        VkPhysicalDevice_T(), VkPipeline, VkPipelineCache,
        VkPipelineCache_T(), VkPipelineLayout, VkPipelineLayout_T(),
        VkPipeline_T(), VkPrivateDataSlotEXT, VkPrivateDataSlotEXT_T(),
        VkQueryPool, VkQueryPool_T(), VkQueue, VkQueue_T(), VkRenderPass,
        VkRenderPass_T(), VkSampler, VkSamplerYcbcrConversion,
        VkSamplerYcbcrConversionKHR, VkSamplerYcbcrConversionKHR_T(),
        VkSamplerYcbcrConversion_T(), VkSampler_T(), VkSemaphore,
        VkSemaphore_T(), VkShaderModule, VkShaderModule_T(), VkSurfaceKHR,
        VkSurfaceKHR_T(), VkSwapchainKHR, VkSwapchainKHR_T(),
        VkValidationCacheEXT, VkValidationCacheEXT_T(),
        VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION,
        pattern VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION,
        VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME,
        pattern VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME,
        pattern VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV,
        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV,
        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV,
        pattern VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV,
        pattern VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV,
        pattern VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV,
        pattern VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV,
        pattern VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV,
        pattern VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV,
        pattern VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV)
       where
import GHC.Ptr                                              (Ptr (..))
import Graphics.Vulkan.Marshal
import Graphics.Vulkan.Marshal.Proc                         (VulkanProc (..))
import Graphics.Vulkan.Types.BaseTypes
import Graphics.Vulkan.Types.Bitmasks
import Graphics.Vulkan.Types.Enum.AccessFlags               (VkAccessBitmask (..))
import Graphics.Vulkan.Types.Enum.CoarseSampleOrderTypeNV
import Graphics.Vulkan.Types.Enum.Device
import Graphics.Vulkan.Types.Enum.DynamicState              (VkDynamicState (..))
import Graphics.Vulkan.Types.Enum.Image
import Graphics.Vulkan.Types.Enum.PhysicalDeviceType
import Graphics.Vulkan.Types.Enum.Pipeline                  (VkPipelineStageBitmask (..))
import Graphics.Vulkan.Types.Enum.SampleCountFlags
import Graphics.Vulkan.Types.Enum.ShadingRatePaletteEntryNV
import Graphics.Vulkan.Types.Enum.StructureType
import Graphics.Vulkan.Types.Handles
import Graphics.Vulkan.Types.Struct.CoarseSample
import Graphics.Vulkan.Types.Struct.Device                  (VkDeviceCreateInfo, VkDeviceQueueCreateInfo)
import Graphics.Vulkan.Types.Struct.Extent                  (VkExtent2D)
import Graphics.Vulkan.Types.Struct.Offset                  (VkOffset2D)
import Graphics.Vulkan.Types.Struct.PhysicalDevice          (VkPhysicalDeviceFeatures2,
                                                             VkPhysicalDeviceLimits,
                                                             VkPhysicalDeviceProperties,
                                                             VkPhysicalDeviceProperties2,
                                                             VkPhysicalDeviceShadingRateImageFeaturesNV,
                                                             VkPhysicalDeviceShadingRateImagePropertiesNV,
                                                             VkPhysicalDeviceSparseProperties)
import Graphics.Vulkan.Types.Struct.PhysicalDeviceFeatures  (VkPhysicalDeviceFeatures)
import Graphics.Vulkan.Types.Struct.Pipeline                (VkPipelineViewportCoarseSampleOrderStateCreateInfoNV,
                                                             VkPipelineViewportShadingRateImageStateCreateInfoNV,
                                                             VkPipelineViewportStateCreateInfo)
import Graphics.Vulkan.Types.Struct.Rect                    (VkRect2D)
import Graphics.Vulkan.Types.Struct.ShadingRatePaletteNV
import Graphics.Vulkan.Types.Struct.Viewport                (VkViewport)

pattern VkCmdBindShadingRateImageNV :: CString

pattern $bVkCmdBindShadingRateImageNV :: CString
$mVkCmdBindShadingRateImageNV :: forall {r}. CString -> (Void# -> r) -> (Void# -> r) -> r
VkCmdBindShadingRateImageNV <-
        (is_VkCmdBindShadingRateImageNV -> True)
  where
    VkCmdBindShadingRateImageNV = CString
_VkCmdBindShadingRateImageNV

{-# INLINE _VkCmdBindShadingRateImageNV #-}

_VkCmdBindShadingRateImageNV :: CString
_VkCmdBindShadingRateImageNV :: CString
_VkCmdBindShadingRateImageNV
  = Addr# -> CString
forall a. Addr# -> Ptr a
Ptr Addr#
"vkCmdBindShadingRateImageNV\NUL"#

{-# INLINE is_VkCmdBindShadingRateImageNV #-}

is_VkCmdBindShadingRateImageNV :: CString -> Bool
is_VkCmdBindShadingRateImageNV :: CString -> Bool
is_VkCmdBindShadingRateImageNV
  = (Ordering
EQ Ordering -> Ordering -> Bool
forall a. Eq a => a -> a -> Bool
==) (Ordering -> Bool) -> (CString -> Ordering) -> CString -> Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CString -> CString -> Ordering
cmpCStrings CString
_VkCmdBindShadingRateImageNV

type VkCmdBindShadingRateImageNV = "vkCmdBindShadingRateImageNV"

-- | Queues: 'graphics'.
--
--   Renderpass: @both@
--
--   > void vkCmdBindShadingRateImageNV
--   >     ( VkCommandBuffer commandBuffer
--   >     , VkImageView imageView
--   >     , VkImageLayout imageLayout
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBindShadingRateImageNV vkCmdBindShadingRateImageNV registry at www.khronos.org>
type HS_vkCmdBindShadingRateImageNV =
     VkCommandBuffer -- ^ commandBuffer
                     -> VkImageView -- ^ imageView
                                    -> VkImageLayout -- ^ imageLayout
                                                     -> IO ()

type PFN_vkCmdBindShadingRateImageNV =
     FunPtr HS_vkCmdBindShadingRateImageNV

foreign import ccall unsafe "dynamic"
               unwrapVkCmdBindShadingRateImageNVUnsafe ::
               PFN_vkCmdBindShadingRateImageNV -> HS_vkCmdBindShadingRateImageNV

foreign import ccall safe "dynamic"
               unwrapVkCmdBindShadingRateImageNVSafe ::
               PFN_vkCmdBindShadingRateImageNV -> HS_vkCmdBindShadingRateImageNV

instance VulkanProc "vkCmdBindShadingRateImageNV" where
    type VkProcType "vkCmdBindShadingRateImageNV" =
         HS_vkCmdBindShadingRateImageNV
    vkProcSymbol :: CString
vkProcSymbol = CString
_VkCmdBindShadingRateImageNV

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe :: FunPtr (VkProcType "vkCmdBindShadingRateImageNV")
-> VkProcType "vkCmdBindShadingRateImageNV"
unwrapVkProcPtrUnsafe = FunPtr (VkProcType "vkCmdBindShadingRateImageNV")
-> VkProcType "vkCmdBindShadingRateImageNV"
PFN_vkCmdBindShadingRateImageNV -> HS_vkCmdBindShadingRateImageNV
unwrapVkCmdBindShadingRateImageNVUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe :: FunPtr (VkProcType "vkCmdBindShadingRateImageNV")
-> VkProcType "vkCmdBindShadingRateImageNV"
unwrapVkProcPtrSafe = FunPtr (VkProcType "vkCmdBindShadingRateImageNV")
-> VkProcType "vkCmdBindShadingRateImageNV"
PFN_vkCmdBindShadingRateImageNV -> HS_vkCmdBindShadingRateImageNV
unwrapVkCmdBindShadingRateImageNVSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkCmdSetViewportShadingRatePaletteNV :: CString

pattern $bVkCmdSetViewportShadingRatePaletteNV :: CString
$mVkCmdSetViewportShadingRatePaletteNV :: forall {r}. CString -> (Void# -> r) -> (Void# -> r) -> r
VkCmdSetViewportShadingRatePaletteNV <-
        (is_VkCmdSetViewportShadingRatePaletteNV -> True)
  where
    VkCmdSetViewportShadingRatePaletteNV
      = CString
_VkCmdSetViewportShadingRatePaletteNV

{-# INLINE _VkCmdSetViewportShadingRatePaletteNV #-}

_VkCmdSetViewportShadingRatePaletteNV :: CString
_VkCmdSetViewportShadingRatePaletteNV :: CString
_VkCmdSetViewportShadingRatePaletteNV
  = Addr# -> CString
forall a. Addr# -> Ptr a
Ptr Addr#
"vkCmdSetViewportShadingRatePaletteNV\NUL"#

{-# INLINE is_VkCmdSetViewportShadingRatePaletteNV #-}

is_VkCmdSetViewportShadingRatePaletteNV :: CString -> Bool
is_VkCmdSetViewportShadingRatePaletteNV :: CString -> Bool
is_VkCmdSetViewportShadingRatePaletteNV
  = (Ordering
EQ Ordering -> Ordering -> Bool
forall a. Eq a => a -> a -> Bool
==) (Ordering -> Bool) -> (CString -> Ordering) -> CString -> Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CString -> CString -> Ordering
cmpCStrings CString
_VkCmdSetViewportShadingRatePaletteNV

type VkCmdSetViewportShadingRatePaletteNV =
     "vkCmdSetViewportShadingRatePaletteNV"

-- | Queues: 'graphics'.
--
--   Renderpass: @both@
--
--   > void vkCmdSetViewportShadingRatePaletteNV
--   >     ( VkCommandBuffer commandBuffer
--   >     , uint32_t firstViewport
--   >     , uint32_t viewportCount
--   >     , const VkShadingRatePaletteNV* pShadingRatePalettes
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdSetViewportShadingRatePaletteNV vkCmdSetViewportShadingRatePaletteNV registry at www.khronos.org>
type HS_vkCmdSetViewportShadingRatePaletteNV =
     VkCommandBuffer -- ^ commandBuffer
                     ->
       Word32 -- ^ firstViewport
              -> Word32 -- ^ viewportCount
                        -> Ptr VkShadingRatePaletteNV -- ^ pShadingRatePalettes
                                                      -> IO ()

type PFN_vkCmdSetViewportShadingRatePaletteNV =
     FunPtr HS_vkCmdSetViewportShadingRatePaletteNV

foreign import ccall unsafe "dynamic"
               unwrapVkCmdSetViewportShadingRatePaletteNVUnsafe ::
               PFN_vkCmdSetViewportShadingRatePaletteNV ->
                 HS_vkCmdSetViewportShadingRatePaletteNV

foreign import ccall safe "dynamic"
               unwrapVkCmdSetViewportShadingRatePaletteNVSafe ::
               PFN_vkCmdSetViewportShadingRatePaletteNV ->
                 HS_vkCmdSetViewportShadingRatePaletteNV

instance VulkanProc "vkCmdSetViewportShadingRatePaletteNV" where
    type VkProcType "vkCmdSetViewportShadingRatePaletteNV" =
         HS_vkCmdSetViewportShadingRatePaletteNV
    vkProcSymbol :: CString
vkProcSymbol = CString
_VkCmdSetViewportShadingRatePaletteNV

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe :: FunPtr (VkProcType "vkCmdSetViewportShadingRatePaletteNV")
-> VkProcType "vkCmdSetViewportShadingRatePaletteNV"
unwrapVkProcPtrUnsafe
      = FunPtr (VkProcType "vkCmdSetViewportShadingRatePaletteNV")
-> VkProcType "vkCmdSetViewportShadingRatePaletteNV"
PFN_vkCmdSetViewportShadingRatePaletteNV
-> HS_vkCmdSetViewportShadingRatePaletteNV
unwrapVkCmdSetViewportShadingRatePaletteNVUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe :: FunPtr (VkProcType "vkCmdSetViewportShadingRatePaletteNV")
-> VkProcType "vkCmdSetViewportShadingRatePaletteNV"
unwrapVkProcPtrSafe
      = FunPtr (VkProcType "vkCmdSetViewportShadingRatePaletteNV")
-> VkProcType "vkCmdSetViewportShadingRatePaletteNV"
PFN_vkCmdSetViewportShadingRatePaletteNV
-> HS_vkCmdSetViewportShadingRatePaletteNV
unwrapVkCmdSetViewportShadingRatePaletteNVSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkCmdSetCoarseSampleOrderNV :: CString

pattern $bVkCmdSetCoarseSampleOrderNV :: CString
$mVkCmdSetCoarseSampleOrderNV :: forall {r}. CString -> (Void# -> r) -> (Void# -> r) -> r
VkCmdSetCoarseSampleOrderNV <-
        (is_VkCmdSetCoarseSampleOrderNV -> True)
  where
    VkCmdSetCoarseSampleOrderNV = CString
_VkCmdSetCoarseSampleOrderNV

{-# INLINE _VkCmdSetCoarseSampleOrderNV #-}

_VkCmdSetCoarseSampleOrderNV :: CString
_VkCmdSetCoarseSampleOrderNV :: CString
_VkCmdSetCoarseSampleOrderNV
  = Addr# -> CString
forall a. Addr# -> Ptr a
Ptr Addr#
"vkCmdSetCoarseSampleOrderNV\NUL"#

{-# INLINE is_VkCmdSetCoarseSampleOrderNV #-}

is_VkCmdSetCoarseSampleOrderNV :: CString -> Bool
is_VkCmdSetCoarseSampleOrderNV :: CString -> Bool
is_VkCmdSetCoarseSampleOrderNV
  = (Ordering
EQ Ordering -> Ordering -> Bool
forall a. Eq a => a -> a -> Bool
==) (Ordering -> Bool) -> (CString -> Ordering) -> CString -> Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CString -> CString -> Ordering
cmpCStrings CString
_VkCmdSetCoarseSampleOrderNV

type VkCmdSetCoarseSampleOrderNV = "vkCmdSetCoarseSampleOrderNV"

-- | Queues: 'graphics'.
--
--   Renderpass: @both@
--
--   > void vkCmdSetCoarseSampleOrderNV
--   >     ( VkCommandBuffer commandBuffer
--   >     , VkCoarseSampleOrderTypeNV sampleOrderType
--   >     , uint32_t customSampleOrderCount
--   >     , const VkCoarseSampleOrderCustomNV* pCustomSampleOrders
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdSetCoarseSampleOrderNV vkCmdSetCoarseSampleOrderNV registry at www.khronos.org>
type HS_vkCmdSetCoarseSampleOrderNV =
     VkCommandBuffer -- ^ commandBuffer
                     ->
       VkCoarseSampleOrderTypeNV -- ^ sampleOrderType
                                 ->
         Word32 -- ^ customSampleOrderCount
                -> Ptr VkCoarseSampleOrderCustomNV -- ^ pCustomSampleOrders
                                                   -> IO ()

type PFN_vkCmdSetCoarseSampleOrderNV =
     FunPtr HS_vkCmdSetCoarseSampleOrderNV

foreign import ccall unsafe "dynamic"
               unwrapVkCmdSetCoarseSampleOrderNVUnsafe ::
               PFN_vkCmdSetCoarseSampleOrderNV -> HS_vkCmdSetCoarseSampleOrderNV

foreign import ccall safe "dynamic"
               unwrapVkCmdSetCoarseSampleOrderNVSafe ::
               PFN_vkCmdSetCoarseSampleOrderNV -> HS_vkCmdSetCoarseSampleOrderNV

instance VulkanProc "vkCmdSetCoarseSampleOrderNV" where
    type VkProcType "vkCmdSetCoarseSampleOrderNV" =
         HS_vkCmdSetCoarseSampleOrderNV
    vkProcSymbol :: CString
vkProcSymbol = CString
_VkCmdSetCoarseSampleOrderNV

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe :: FunPtr (VkProcType "vkCmdSetCoarseSampleOrderNV")
-> VkProcType "vkCmdSetCoarseSampleOrderNV"
unwrapVkProcPtrUnsafe = FunPtr (VkProcType "vkCmdSetCoarseSampleOrderNV")
-> VkProcType "vkCmdSetCoarseSampleOrderNV"
PFN_vkCmdSetCoarseSampleOrderNV -> HS_vkCmdSetCoarseSampleOrderNV
unwrapVkCmdSetCoarseSampleOrderNVUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe :: FunPtr (VkProcType "vkCmdSetCoarseSampleOrderNV")
-> VkProcType "vkCmdSetCoarseSampleOrderNV"
unwrapVkProcPtrSafe = FunPtr (VkProcType "vkCmdSetCoarseSampleOrderNV")
-> VkProcType "vkCmdSetCoarseSampleOrderNV"
PFN_vkCmdSetCoarseSampleOrderNV -> HS_vkCmdSetCoarseSampleOrderNV
unwrapVkCmdSetCoarseSampleOrderNVSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION :: (Num a, Eq a) => a

pattern $bVK_NV_SHADING_RATE_IMAGE_SPEC_VERSION :: forall a. (Num a, Eq a) => a
$mVK_NV_SHADING_RATE_IMAGE_SPEC_VERSION :: forall {r} {a}.
(Num a, Eq a) =>
a -> (Void# -> r) -> (Void# -> r) -> r
VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION = 3

type VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION = 3

pattern VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME :: CString

pattern $bVK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME :: CString
$mVK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME :: forall {r}. CString -> (Void# -> r) -> (Void# -> r) -> r
VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME <-
        (is_VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME -> True)
  where
    VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME
      = CString
_VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME

{-# INLINE _VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME #-}

_VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME :: CString
_VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME :: CString
_VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME
  = Addr# -> CString
forall a. Addr# -> Ptr a
Ptr Addr#
"VK_NV_shading_rate_image\NUL"#

{-# INLINE is_VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME #-}

is_VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME :: CString -> Bool
is_VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME :: CString -> Bool
is_VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME
  = (Ordering
EQ Ordering -> Ordering -> Bool
forall a. Eq a => a -> a -> Bool
==) (Ordering -> Bool) -> (CString -> Ordering) -> CString -> Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CString -> CString -> Ordering
cmpCStrings CString
_VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME

type VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME =
     "VK_NV_shading_rate_image"

pattern VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV
        :: VkStructureType

pattern $bVK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV :: VkStructureType
$mVK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV :: forall {r}. VkStructureType -> (Void# -> r) -> (Void# -> r) -> r
VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV
        = VkStructureType 1000164000

pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV
        :: VkStructureType

pattern $bVK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV :: VkStructureType
$mVK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV :: forall {r}. VkStructureType -> (Void# -> r) -> (Void# -> r) -> r
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV
        = VkStructureType 1000164001

pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV
        :: VkStructureType

pattern $bVK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV :: VkStructureType
$mVK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV :: forall {r}. VkStructureType -> (Void# -> r) -> (Void# -> r) -> r
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV
        = VkStructureType 1000164002

pattern VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV :: VkImageLayout

pattern $bVK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV :: VkImageLayout
$mVK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV :: forall {r}. VkImageLayout -> (Void# -> r) -> (Void# -> r) -> r
VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV =
        VkImageLayout 1000164003

pattern VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV ::
        VkDynamicState

pattern $bVK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV :: VkDynamicState
$mVK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV :: forall {r}. VkDynamicState -> (Void# -> r) -> (Void# -> r) -> r
VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV =
        VkDynamicState 1000164004

-- | bitpos = @23@
pattern VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV ::
        VkAccessBitmask a

pattern $bVK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV :: forall (a :: FlagType). VkAccessBitmask a
$mVK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV :: forall {r} {a :: FlagType}.
VkAccessBitmask a -> (Void# -> r) -> (Void# -> r) -> r
VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV =
        VkAccessBitmask 8388608

-- | bitpos = @8@
pattern VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV ::
        VkImageUsageBitmask a

pattern $bVK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV :: forall (a :: FlagType). VkImageUsageBitmask a
$mVK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV :: forall {r} {a :: FlagType}.
VkImageUsageBitmask a -> (Void# -> r) -> (Void# -> r) -> r
VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV =
        VkImageUsageBitmask 256

-- | bitpos = @22@
pattern VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV ::
        VkPipelineStageBitmask a

pattern $bVK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV :: forall (a :: FlagType). VkPipelineStageBitmask a
$mVK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV :: forall {r} {a :: FlagType}.
VkPipelineStageBitmask a -> (Void# -> r) -> (Void# -> r) -> r
VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV =
        VkPipelineStageBitmask 4194304

pattern VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV
        :: VkStructureType

pattern $bVK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV :: VkStructureType
$mVK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV :: forall {r}. VkStructureType -> (Void# -> r) -> (Void# -> r) -> r
VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV
        = VkStructureType 1000164005

pattern VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV ::
        VkDynamicState

pattern $bVK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV :: VkDynamicState
$mVK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV :: forall {r}. VkDynamicState -> (Void# -> r) -> (Void# -> r) -> r
VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV =
        VkDynamicState 1000164006