packages feed

vulkan-api-1.4.0.0: src-gen/Graphics/Vulkan/Ext/VK_EXT_extended_dynamic_state.hs

{-# OPTIONS_GHC -fno-warn-orphans#-}
{-# OPTIONS_GHC -fno-warn-unused-imports#-}
{-# 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_EXT_extended_dynamic_state
       (-- * Vulkan extension: @VK_EXT_extended_dynamic_state@
        -- |
        --
        -- supported: @vulkan@
        --
        -- contact: @Piers Daniell @pdaniell-nv@
        --
        -- author: @EXT@
        --
        -- type: @device@
        --
        -- Extension number: @268@
        --
        -- 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(..),
        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,
        VkPhysicalDeviceExtendedDynamicStateFeaturesEXT,
        VkPhysicalDeviceFeatures, VkPhysicalDeviceFeatures2,
        VkStructureType(..), -- > #include "vk_platform.h"
                             VkCmdSetCullModeEXT,
        pattern VkCmdSetCullModeEXT, HS_vkCmdSetCullModeEXT,
        PFN_vkCmdSetCullModeEXT, VkCmdSetFrontFaceEXT,
        pattern VkCmdSetFrontFaceEXT, HS_vkCmdSetFrontFaceEXT,
        PFN_vkCmdSetFrontFaceEXT, VkCmdSetPrimitiveTopologyEXT,
        pattern VkCmdSetPrimitiveTopologyEXT,
        HS_vkCmdSetPrimitiveTopologyEXT, PFN_vkCmdSetPrimitiveTopologyEXT,
        VkCmdSetViewportWithCountEXT, pattern VkCmdSetViewportWithCountEXT,
        HS_vkCmdSetViewportWithCountEXT, PFN_vkCmdSetViewportWithCountEXT,
        VkCmdSetScissorWithCountEXT, pattern VkCmdSetScissorWithCountEXT,
        HS_vkCmdSetScissorWithCountEXT, PFN_vkCmdSetScissorWithCountEXT,
        VkCmdBindVertexBuffers2EXT, pattern VkCmdBindVertexBuffers2EXT,
        HS_vkCmdBindVertexBuffers2EXT, PFN_vkCmdBindVertexBuffers2EXT,
        VkCmdSetDepthTestEnableEXT, pattern VkCmdSetDepthTestEnableEXT,
        HS_vkCmdSetDepthTestEnableEXT, PFN_vkCmdSetDepthTestEnableEXT,
        VkCmdSetDepthWriteEnableEXT, pattern VkCmdSetDepthWriteEnableEXT,
        HS_vkCmdSetDepthWriteEnableEXT, PFN_vkCmdSetDepthWriteEnableEXT,
        VkCmdSetDepthCompareOpEXT, pattern VkCmdSetDepthCompareOpEXT,
        HS_vkCmdSetDepthCompareOpEXT, PFN_vkCmdSetDepthCompareOpEXT,
        VkCmdSetDepthBoundsTestEnableEXT,
        pattern VkCmdSetDepthBoundsTestEnableEXT,
        HS_vkCmdSetDepthBoundsTestEnableEXT,
        PFN_vkCmdSetDepthBoundsTestEnableEXT, VkCmdSetStencilTestEnableEXT,
        pattern VkCmdSetStencilTestEnableEXT,
        HS_vkCmdSetStencilTestEnableEXT, PFN_vkCmdSetStencilTestEnableEXT,
        VkCmdSetStencilOpEXT, pattern VkCmdSetStencilOpEXT,
        HS_vkCmdSetStencilOpEXT, PFN_vkCmdSetStencilOpEXT, VkCompareOp(..),
        VkCullModeBitmask(..), VkCullModeFlagBits(), VkCullModeFlags(),
        VkFrontFace(..), VkPrimitiveTopology(..), VkStencilFaceBitmask(..),
        VkStencilOp(..), VkStencilFaceFlagBits(), VkStencilFaceFlags(),
        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(), VkExtent2D,
        VkExtent3D, VkOffset2D, VkOffset3D, VkRect2D, VkRectLayerKHR,
        VkViewport, VkViewportSwizzleNV, VkViewportWScalingNV,
        VK_EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION,
        pattern VK_EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION,
        VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME,
        pattern VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME,
        pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT,
        pattern VK_DYNAMIC_STATE_CULL_MODE_EXT,
        pattern VK_DYNAMIC_STATE_FRONT_FACE_EXT,
        pattern VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT,
        pattern VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT,
        pattern VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT,
        pattern VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT,
        pattern VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT,
        pattern VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT,
        pattern VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT,
        pattern VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT,
        pattern VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT,
        pattern VK_DYNAMIC_STATE_STENCIL_OP_EXT)
       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.CompareOp
import Graphics.Vulkan.Types.Enum.CullModeFlags
import Graphics.Vulkan.Types.Enum.Device
import Graphics.Vulkan.Types.Enum.DynamicState             (VkDynamicState (..))
import Graphics.Vulkan.Types.Enum.FrontFace
import Graphics.Vulkan.Types.Enum.PrimitiveTopology
import Graphics.Vulkan.Types.Enum.Stencil
import Graphics.Vulkan.Types.Enum.StructureType
import Graphics.Vulkan.Types.Handles
import Graphics.Vulkan.Types.Struct.Device                 (VkDeviceCreateInfo, VkDeviceQueueCreateInfo)
import Graphics.Vulkan.Types.Struct.Extent
import Graphics.Vulkan.Types.Struct.Offset
import Graphics.Vulkan.Types.Struct.PhysicalDevice         (VkPhysicalDeviceExtendedDynamicStateFeaturesEXT,
                                                            VkPhysicalDeviceFeatures2)
import Graphics.Vulkan.Types.Struct.PhysicalDeviceFeatures (VkPhysicalDeviceFeatures)
import Graphics.Vulkan.Types.Struct.Rect
import Graphics.Vulkan.Types.Struct.Viewport

pattern VkCmdSetCullModeEXT :: CString

pattern VkCmdSetCullModeEXT <- (is_VkCmdSetCullModeEXT -> True)
  where
    VkCmdSetCullModeEXT = _VkCmdSetCullModeEXT

{-# INLINE _VkCmdSetCullModeEXT #-}

_VkCmdSetCullModeEXT :: CString
_VkCmdSetCullModeEXT = Ptr "vkCmdSetCullModeEXT\NUL"#

{-# INLINE is_VkCmdSetCullModeEXT #-}

is_VkCmdSetCullModeEXT :: CString -> Bool
is_VkCmdSetCullModeEXT = (EQ ==) . cmpCStrings _VkCmdSetCullModeEXT

type VkCmdSetCullModeEXT = "vkCmdSetCullModeEXT"

-- | Queues: 'graphics'.
--
--   Renderpass: @both@
--
--   > void vkCmdSetCullModeEXT
--   >     ( VkCommandBuffer commandBuffer
--   >     , VkCullModeFlags cullMode
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdSetCullModeEXT vkCmdSetCullModeEXT registry at www.khronos.org>
type HS_vkCmdSetCullModeEXT =
     VkCommandBuffer -- ^ commandBuffer
                     -> VkCullModeFlags -- ^ cullMode
                                        -> IO ()

type PFN_vkCmdSetCullModeEXT = FunPtr HS_vkCmdSetCullModeEXT

foreign import ccall unsafe "dynamic"
               unwrapVkCmdSetCullModeEXTUnsafe ::
               PFN_vkCmdSetCullModeEXT -> HS_vkCmdSetCullModeEXT

foreign import ccall safe "dynamic" unwrapVkCmdSetCullModeEXTSafe
               :: PFN_vkCmdSetCullModeEXT -> HS_vkCmdSetCullModeEXT

instance VulkanProc "vkCmdSetCullModeEXT" where
    type VkProcType "vkCmdSetCullModeEXT" = HS_vkCmdSetCullModeEXT
    vkProcSymbol = _VkCmdSetCullModeEXT

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe = unwrapVkCmdSetCullModeEXTUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe = unwrapVkCmdSetCullModeEXTSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkCmdSetFrontFaceEXT :: CString

pattern VkCmdSetFrontFaceEXT <- (is_VkCmdSetFrontFaceEXT -> True)
  where
    VkCmdSetFrontFaceEXT = _VkCmdSetFrontFaceEXT

{-# INLINE _VkCmdSetFrontFaceEXT #-}

_VkCmdSetFrontFaceEXT :: CString
_VkCmdSetFrontFaceEXT = Ptr "vkCmdSetFrontFaceEXT\NUL"#

{-# INLINE is_VkCmdSetFrontFaceEXT #-}

is_VkCmdSetFrontFaceEXT :: CString -> Bool
is_VkCmdSetFrontFaceEXT
  = (EQ ==) . cmpCStrings _VkCmdSetFrontFaceEXT

type VkCmdSetFrontFaceEXT = "vkCmdSetFrontFaceEXT"

-- | Queues: 'graphics'.
--
--   Renderpass: @both@
--
--   > void vkCmdSetFrontFaceEXT
--   >     ( VkCommandBuffer commandBuffer
--   >     , VkFrontFace frontFace
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdSetFrontFaceEXT vkCmdSetFrontFaceEXT registry at www.khronos.org>
type HS_vkCmdSetFrontFaceEXT =
     VkCommandBuffer -- ^ commandBuffer
                     -> VkFrontFace -- ^ frontFace
                                    -> IO ()

type PFN_vkCmdSetFrontFaceEXT = FunPtr HS_vkCmdSetFrontFaceEXT

foreign import ccall unsafe "dynamic"
               unwrapVkCmdSetFrontFaceEXTUnsafe ::
               PFN_vkCmdSetFrontFaceEXT -> HS_vkCmdSetFrontFaceEXT

foreign import ccall safe "dynamic" unwrapVkCmdSetFrontFaceEXTSafe
               :: PFN_vkCmdSetFrontFaceEXT -> HS_vkCmdSetFrontFaceEXT

instance VulkanProc "vkCmdSetFrontFaceEXT" where
    type VkProcType "vkCmdSetFrontFaceEXT" = HS_vkCmdSetFrontFaceEXT
    vkProcSymbol = _VkCmdSetFrontFaceEXT

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe = unwrapVkCmdSetFrontFaceEXTUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe = unwrapVkCmdSetFrontFaceEXTSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkCmdSetPrimitiveTopologyEXT :: CString

pattern VkCmdSetPrimitiveTopologyEXT <-
        (is_VkCmdSetPrimitiveTopologyEXT -> True)
  where
    VkCmdSetPrimitiveTopologyEXT = _VkCmdSetPrimitiveTopologyEXT

{-# INLINE _VkCmdSetPrimitiveTopologyEXT #-}

_VkCmdSetPrimitiveTopologyEXT :: CString
_VkCmdSetPrimitiveTopologyEXT
  = Ptr "vkCmdSetPrimitiveTopologyEXT\NUL"#

{-# INLINE is_VkCmdSetPrimitiveTopologyEXT #-}

is_VkCmdSetPrimitiveTopologyEXT :: CString -> Bool
is_VkCmdSetPrimitiveTopologyEXT
  = (EQ ==) . cmpCStrings _VkCmdSetPrimitiveTopologyEXT

type VkCmdSetPrimitiveTopologyEXT = "vkCmdSetPrimitiveTopologyEXT"

-- | Queues: 'graphics'.
--
--   Renderpass: @both@
--
--   > void vkCmdSetPrimitiveTopologyEXT
--   >     ( VkCommandBuffer commandBuffer
--   >     , VkPrimitiveTopology primitiveTopology
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdSetPrimitiveTopologyEXT vkCmdSetPrimitiveTopologyEXT registry at www.khronos.org>
type HS_vkCmdSetPrimitiveTopologyEXT =
     VkCommandBuffer -- ^ commandBuffer
                     -> VkPrimitiveTopology -- ^ primitiveTopology
                                            -> IO ()

type PFN_vkCmdSetPrimitiveTopologyEXT =
     FunPtr HS_vkCmdSetPrimitiveTopologyEXT

foreign import ccall unsafe "dynamic"
               unwrapVkCmdSetPrimitiveTopologyEXTUnsafe ::
               PFN_vkCmdSetPrimitiveTopologyEXT -> HS_vkCmdSetPrimitiveTopologyEXT

foreign import ccall safe "dynamic"
               unwrapVkCmdSetPrimitiveTopologyEXTSafe ::
               PFN_vkCmdSetPrimitiveTopologyEXT -> HS_vkCmdSetPrimitiveTopologyEXT

instance VulkanProc "vkCmdSetPrimitiveTopologyEXT" where
    type VkProcType "vkCmdSetPrimitiveTopologyEXT" =
         HS_vkCmdSetPrimitiveTopologyEXT
    vkProcSymbol = _VkCmdSetPrimitiveTopologyEXT

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe = unwrapVkCmdSetPrimitiveTopologyEXTUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe = unwrapVkCmdSetPrimitiveTopologyEXTSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkCmdSetViewportWithCountEXT :: CString

pattern VkCmdSetViewportWithCountEXT <-
        (is_VkCmdSetViewportWithCountEXT -> True)
  where
    VkCmdSetViewportWithCountEXT = _VkCmdSetViewportWithCountEXT

{-# INLINE _VkCmdSetViewportWithCountEXT #-}

_VkCmdSetViewportWithCountEXT :: CString
_VkCmdSetViewportWithCountEXT
  = Ptr "vkCmdSetViewportWithCountEXT\NUL"#

{-# INLINE is_VkCmdSetViewportWithCountEXT #-}

is_VkCmdSetViewportWithCountEXT :: CString -> Bool
is_VkCmdSetViewportWithCountEXT
  = (EQ ==) . cmpCStrings _VkCmdSetViewportWithCountEXT

type VkCmdSetViewportWithCountEXT = "vkCmdSetViewportWithCountEXT"

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

type PFN_vkCmdSetViewportWithCountEXT =
     FunPtr HS_vkCmdSetViewportWithCountEXT

foreign import ccall unsafe "dynamic"
               unwrapVkCmdSetViewportWithCountEXTUnsafe ::
               PFN_vkCmdSetViewportWithCountEXT -> HS_vkCmdSetViewportWithCountEXT

foreign import ccall safe "dynamic"
               unwrapVkCmdSetViewportWithCountEXTSafe ::
               PFN_vkCmdSetViewportWithCountEXT -> HS_vkCmdSetViewportWithCountEXT

instance VulkanProc "vkCmdSetViewportWithCountEXT" where
    type VkProcType "vkCmdSetViewportWithCountEXT" =
         HS_vkCmdSetViewportWithCountEXT
    vkProcSymbol = _VkCmdSetViewportWithCountEXT

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe = unwrapVkCmdSetViewportWithCountEXTUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe = unwrapVkCmdSetViewportWithCountEXTSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkCmdSetScissorWithCountEXT :: CString

pattern VkCmdSetScissorWithCountEXT <-
        (is_VkCmdSetScissorWithCountEXT -> True)
  where
    VkCmdSetScissorWithCountEXT = _VkCmdSetScissorWithCountEXT

{-# INLINE _VkCmdSetScissorWithCountEXT #-}

_VkCmdSetScissorWithCountEXT :: CString
_VkCmdSetScissorWithCountEXT
  = Ptr "vkCmdSetScissorWithCountEXT\NUL"#

{-# INLINE is_VkCmdSetScissorWithCountEXT #-}

is_VkCmdSetScissorWithCountEXT :: CString -> Bool
is_VkCmdSetScissorWithCountEXT
  = (EQ ==) . cmpCStrings _VkCmdSetScissorWithCountEXT

type VkCmdSetScissorWithCountEXT = "vkCmdSetScissorWithCountEXT"

-- | Queues: 'graphics'.
--
--   Renderpass: @both@
--
--   > void vkCmdSetScissorWithCountEXT
--   >     ( VkCommandBuffer commandBuffer
--   >     , uint32_t scissorCount
--   >     , const VkRect2D* pScissors
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdSetScissorWithCountEXT vkCmdSetScissorWithCountEXT registry at www.khronos.org>
type HS_vkCmdSetScissorWithCountEXT =
     VkCommandBuffer -- ^ commandBuffer
                     -> Word32 -- ^ scissorCount
                               -> Ptr VkRect2D -- ^ pScissors
                                               -> IO ()

type PFN_vkCmdSetScissorWithCountEXT =
     FunPtr HS_vkCmdSetScissorWithCountEXT

foreign import ccall unsafe "dynamic"
               unwrapVkCmdSetScissorWithCountEXTUnsafe ::
               PFN_vkCmdSetScissorWithCountEXT -> HS_vkCmdSetScissorWithCountEXT

foreign import ccall safe "dynamic"
               unwrapVkCmdSetScissorWithCountEXTSafe ::
               PFN_vkCmdSetScissorWithCountEXT -> HS_vkCmdSetScissorWithCountEXT

instance VulkanProc "vkCmdSetScissorWithCountEXT" where
    type VkProcType "vkCmdSetScissorWithCountEXT" =
         HS_vkCmdSetScissorWithCountEXT
    vkProcSymbol = _VkCmdSetScissorWithCountEXT

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe = unwrapVkCmdSetScissorWithCountEXTUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe = unwrapVkCmdSetScissorWithCountEXTSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkCmdBindVertexBuffers2EXT :: CString

pattern VkCmdBindVertexBuffers2EXT <-
        (is_VkCmdBindVertexBuffers2EXT -> True)
  where
    VkCmdBindVertexBuffers2EXT = _VkCmdBindVertexBuffers2EXT

{-# INLINE _VkCmdBindVertexBuffers2EXT #-}

_VkCmdBindVertexBuffers2EXT :: CString
_VkCmdBindVertexBuffers2EXT = Ptr "vkCmdBindVertexBuffers2EXT\NUL"#

{-# INLINE is_VkCmdBindVertexBuffers2EXT #-}

is_VkCmdBindVertexBuffers2EXT :: CString -> Bool
is_VkCmdBindVertexBuffers2EXT
  = (EQ ==) . cmpCStrings _VkCmdBindVertexBuffers2EXT

type VkCmdBindVertexBuffers2EXT = "vkCmdBindVertexBuffers2EXT"

-- | Queues: 'graphics'.
--
--   Renderpass: @both@
--
--   > void vkCmdBindVertexBuffers2EXT
--   >     ( VkCommandBuffer commandBuffer
--   >     , uint32_t firstBinding
--   >     , uint32_t bindingCount
--   >     , const VkBuffer* pBuffers
--   >     , const VkDeviceSize* pOffsets
--   >     , const VkDeviceSize* pSizes
--   >     , const VkDeviceSize* pStrides
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBindVertexBuffers2EXT vkCmdBindVertexBuffers2EXT registry at www.khronos.org>
type HS_vkCmdBindVertexBuffers2EXT =
     VkCommandBuffer -- ^ commandBuffer
                     ->
       Word32 -- ^ firstBinding
              ->
         Word32 -- ^ bindingCount
                ->
           Ptr VkBuffer -- ^ pBuffers
                        ->
             Ptr VkDeviceSize -- ^ pOffsets
                              -> Ptr VkDeviceSize -- ^ pSizes
                                                  -> Ptr VkDeviceSize -- ^ pStrides
                                                                      -> IO ()

type PFN_vkCmdBindVertexBuffers2EXT =
     FunPtr HS_vkCmdBindVertexBuffers2EXT

foreign import ccall unsafe "dynamic"
               unwrapVkCmdBindVertexBuffers2EXTUnsafe ::
               PFN_vkCmdBindVertexBuffers2EXT -> HS_vkCmdBindVertexBuffers2EXT

foreign import ccall safe "dynamic"
               unwrapVkCmdBindVertexBuffers2EXTSafe ::
               PFN_vkCmdBindVertexBuffers2EXT -> HS_vkCmdBindVertexBuffers2EXT

instance VulkanProc "vkCmdBindVertexBuffers2EXT" where
    type VkProcType "vkCmdBindVertexBuffers2EXT" =
         HS_vkCmdBindVertexBuffers2EXT
    vkProcSymbol = _VkCmdBindVertexBuffers2EXT

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe = unwrapVkCmdBindVertexBuffers2EXTUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe = unwrapVkCmdBindVertexBuffers2EXTSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkCmdSetDepthTestEnableEXT :: CString

pattern VkCmdSetDepthTestEnableEXT <-
        (is_VkCmdSetDepthTestEnableEXT -> True)
  where
    VkCmdSetDepthTestEnableEXT = _VkCmdSetDepthTestEnableEXT

{-# INLINE _VkCmdSetDepthTestEnableEXT #-}

_VkCmdSetDepthTestEnableEXT :: CString
_VkCmdSetDepthTestEnableEXT = Ptr "vkCmdSetDepthTestEnableEXT\NUL"#

{-# INLINE is_VkCmdSetDepthTestEnableEXT #-}

is_VkCmdSetDepthTestEnableEXT :: CString -> Bool
is_VkCmdSetDepthTestEnableEXT
  = (EQ ==) . cmpCStrings _VkCmdSetDepthTestEnableEXT

type VkCmdSetDepthTestEnableEXT = "vkCmdSetDepthTestEnableEXT"

-- | Queues: 'graphics'.
--
--   Renderpass: @both@
--
--   > void vkCmdSetDepthTestEnableEXT
--   >     ( VkCommandBuffer commandBuffer
--   >     , VkBool32 depthTestEnable
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdSetDepthTestEnableEXT vkCmdSetDepthTestEnableEXT registry at www.khronos.org>
type HS_vkCmdSetDepthTestEnableEXT =
     VkCommandBuffer -- ^ commandBuffer
                     -> VkBool32 -- ^ depthTestEnable
                                 -> IO ()

type PFN_vkCmdSetDepthTestEnableEXT =
     FunPtr HS_vkCmdSetDepthTestEnableEXT

foreign import ccall unsafe "dynamic"
               unwrapVkCmdSetDepthTestEnableEXTUnsafe ::
               PFN_vkCmdSetDepthTestEnableEXT -> HS_vkCmdSetDepthTestEnableEXT

foreign import ccall safe "dynamic"
               unwrapVkCmdSetDepthTestEnableEXTSafe ::
               PFN_vkCmdSetDepthTestEnableEXT -> HS_vkCmdSetDepthTestEnableEXT

instance VulkanProc "vkCmdSetDepthTestEnableEXT" where
    type VkProcType "vkCmdSetDepthTestEnableEXT" =
         HS_vkCmdSetDepthTestEnableEXT
    vkProcSymbol = _VkCmdSetDepthTestEnableEXT

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe = unwrapVkCmdSetDepthTestEnableEXTUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe = unwrapVkCmdSetDepthTestEnableEXTSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkCmdSetDepthWriteEnableEXT :: CString

pattern VkCmdSetDepthWriteEnableEXT <-
        (is_VkCmdSetDepthWriteEnableEXT -> True)
  where
    VkCmdSetDepthWriteEnableEXT = _VkCmdSetDepthWriteEnableEXT

{-# INLINE _VkCmdSetDepthWriteEnableEXT #-}

_VkCmdSetDepthWriteEnableEXT :: CString
_VkCmdSetDepthWriteEnableEXT
  = Ptr "vkCmdSetDepthWriteEnableEXT\NUL"#

{-# INLINE is_VkCmdSetDepthWriteEnableEXT #-}

is_VkCmdSetDepthWriteEnableEXT :: CString -> Bool
is_VkCmdSetDepthWriteEnableEXT
  = (EQ ==) . cmpCStrings _VkCmdSetDepthWriteEnableEXT

type VkCmdSetDepthWriteEnableEXT = "vkCmdSetDepthWriteEnableEXT"

-- | Queues: 'graphics'.
--
--   Renderpass: @both@
--
--   > void vkCmdSetDepthWriteEnableEXT
--   >     ( VkCommandBuffer commandBuffer
--   >     , VkBool32 depthWriteEnable
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdSetDepthWriteEnableEXT vkCmdSetDepthWriteEnableEXT registry at www.khronos.org>
type HS_vkCmdSetDepthWriteEnableEXT =
     VkCommandBuffer -- ^ commandBuffer
                     -> VkBool32 -- ^ depthWriteEnable
                                 -> IO ()

type PFN_vkCmdSetDepthWriteEnableEXT =
     FunPtr HS_vkCmdSetDepthWriteEnableEXT

foreign import ccall unsafe "dynamic"
               unwrapVkCmdSetDepthWriteEnableEXTUnsafe ::
               PFN_vkCmdSetDepthWriteEnableEXT -> HS_vkCmdSetDepthWriteEnableEXT

foreign import ccall safe "dynamic"
               unwrapVkCmdSetDepthWriteEnableEXTSafe ::
               PFN_vkCmdSetDepthWriteEnableEXT -> HS_vkCmdSetDepthWriteEnableEXT

instance VulkanProc "vkCmdSetDepthWriteEnableEXT" where
    type VkProcType "vkCmdSetDepthWriteEnableEXT" =
         HS_vkCmdSetDepthWriteEnableEXT
    vkProcSymbol = _VkCmdSetDepthWriteEnableEXT

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe = unwrapVkCmdSetDepthWriteEnableEXTUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe = unwrapVkCmdSetDepthWriteEnableEXTSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkCmdSetDepthCompareOpEXT :: CString

pattern VkCmdSetDepthCompareOpEXT <-
        (is_VkCmdSetDepthCompareOpEXT -> True)
  where
    VkCmdSetDepthCompareOpEXT = _VkCmdSetDepthCompareOpEXT

{-# INLINE _VkCmdSetDepthCompareOpEXT #-}

_VkCmdSetDepthCompareOpEXT :: CString
_VkCmdSetDepthCompareOpEXT = Ptr "vkCmdSetDepthCompareOpEXT\NUL"#

{-# INLINE is_VkCmdSetDepthCompareOpEXT #-}

is_VkCmdSetDepthCompareOpEXT :: CString -> Bool
is_VkCmdSetDepthCompareOpEXT
  = (EQ ==) . cmpCStrings _VkCmdSetDepthCompareOpEXT

type VkCmdSetDepthCompareOpEXT = "vkCmdSetDepthCompareOpEXT"

-- | Queues: 'graphics'.
--
--   Renderpass: @both@
--
--   > void vkCmdSetDepthCompareOpEXT
--   >     ( VkCommandBuffer commandBuffer
--   >     , VkCompareOp depthCompareOp
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdSetDepthCompareOpEXT vkCmdSetDepthCompareOpEXT registry at www.khronos.org>
type HS_vkCmdSetDepthCompareOpEXT =
     VkCommandBuffer -- ^ commandBuffer
                     -> VkCompareOp -- ^ depthCompareOp
                                    -> IO ()

type PFN_vkCmdSetDepthCompareOpEXT =
     FunPtr HS_vkCmdSetDepthCompareOpEXT

foreign import ccall unsafe "dynamic"
               unwrapVkCmdSetDepthCompareOpEXTUnsafe ::
               PFN_vkCmdSetDepthCompareOpEXT -> HS_vkCmdSetDepthCompareOpEXT

foreign import ccall safe "dynamic"
               unwrapVkCmdSetDepthCompareOpEXTSafe ::
               PFN_vkCmdSetDepthCompareOpEXT -> HS_vkCmdSetDepthCompareOpEXT

instance VulkanProc "vkCmdSetDepthCompareOpEXT" where
    type VkProcType "vkCmdSetDepthCompareOpEXT" =
         HS_vkCmdSetDepthCompareOpEXT
    vkProcSymbol = _VkCmdSetDepthCompareOpEXT

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe = unwrapVkCmdSetDepthCompareOpEXTUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe = unwrapVkCmdSetDepthCompareOpEXTSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkCmdSetDepthBoundsTestEnableEXT :: CString

pattern VkCmdSetDepthBoundsTestEnableEXT <-
        (is_VkCmdSetDepthBoundsTestEnableEXT -> True)
  where
    VkCmdSetDepthBoundsTestEnableEXT
      = _VkCmdSetDepthBoundsTestEnableEXT

{-# INLINE _VkCmdSetDepthBoundsTestEnableEXT #-}

_VkCmdSetDepthBoundsTestEnableEXT :: CString
_VkCmdSetDepthBoundsTestEnableEXT
  = Ptr "vkCmdSetDepthBoundsTestEnableEXT\NUL"#

{-# INLINE is_VkCmdSetDepthBoundsTestEnableEXT #-}

is_VkCmdSetDepthBoundsTestEnableEXT :: CString -> Bool
is_VkCmdSetDepthBoundsTestEnableEXT
  = (EQ ==) . cmpCStrings _VkCmdSetDepthBoundsTestEnableEXT

type VkCmdSetDepthBoundsTestEnableEXT =
     "vkCmdSetDepthBoundsTestEnableEXT"

-- | Queues: 'graphics'.
--
--   Renderpass: @both@
--
--   > void vkCmdSetDepthBoundsTestEnableEXT
--   >     ( VkCommandBuffer commandBuffer
--   >     , VkBool32 depthBoundsTestEnable
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdSetDepthBoundsTestEnableEXT vkCmdSetDepthBoundsTestEnableEXT registry at www.khronos.org>
type HS_vkCmdSetDepthBoundsTestEnableEXT =
     VkCommandBuffer -- ^ commandBuffer
                     -> VkBool32 -- ^ depthBoundsTestEnable
                                 -> IO ()

type PFN_vkCmdSetDepthBoundsTestEnableEXT =
     FunPtr HS_vkCmdSetDepthBoundsTestEnableEXT

foreign import ccall unsafe "dynamic"
               unwrapVkCmdSetDepthBoundsTestEnableEXTUnsafe ::
               PFN_vkCmdSetDepthBoundsTestEnableEXT ->
                 HS_vkCmdSetDepthBoundsTestEnableEXT

foreign import ccall safe "dynamic"
               unwrapVkCmdSetDepthBoundsTestEnableEXTSafe ::
               PFN_vkCmdSetDepthBoundsTestEnableEXT ->
                 HS_vkCmdSetDepthBoundsTestEnableEXT

instance VulkanProc "vkCmdSetDepthBoundsTestEnableEXT" where
    type VkProcType "vkCmdSetDepthBoundsTestEnableEXT" =
         HS_vkCmdSetDepthBoundsTestEnableEXT
    vkProcSymbol = _VkCmdSetDepthBoundsTestEnableEXT

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe
      = unwrapVkCmdSetDepthBoundsTestEnableEXTUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe = unwrapVkCmdSetDepthBoundsTestEnableEXTSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkCmdSetStencilTestEnableEXT :: CString

pattern VkCmdSetStencilTestEnableEXT <-
        (is_VkCmdSetStencilTestEnableEXT -> True)
  where
    VkCmdSetStencilTestEnableEXT = _VkCmdSetStencilTestEnableEXT

{-# INLINE _VkCmdSetStencilTestEnableEXT #-}

_VkCmdSetStencilTestEnableEXT :: CString
_VkCmdSetStencilTestEnableEXT
  = Ptr "vkCmdSetStencilTestEnableEXT\NUL"#

{-# INLINE is_VkCmdSetStencilTestEnableEXT #-}

is_VkCmdSetStencilTestEnableEXT :: CString -> Bool
is_VkCmdSetStencilTestEnableEXT
  = (EQ ==) . cmpCStrings _VkCmdSetStencilTestEnableEXT

type VkCmdSetStencilTestEnableEXT = "vkCmdSetStencilTestEnableEXT"

-- | Queues: 'graphics'.
--
--   Renderpass: @both@
--
--   > void vkCmdSetStencilTestEnableEXT
--   >     ( VkCommandBuffer commandBuffer
--   >     , VkBool32 stencilTestEnable
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdSetStencilTestEnableEXT vkCmdSetStencilTestEnableEXT registry at www.khronos.org>
type HS_vkCmdSetStencilTestEnableEXT =
     VkCommandBuffer -- ^ commandBuffer
                     -> VkBool32 -- ^ stencilTestEnable
                                 -> IO ()

type PFN_vkCmdSetStencilTestEnableEXT =
     FunPtr HS_vkCmdSetStencilTestEnableEXT

foreign import ccall unsafe "dynamic"
               unwrapVkCmdSetStencilTestEnableEXTUnsafe ::
               PFN_vkCmdSetStencilTestEnableEXT -> HS_vkCmdSetStencilTestEnableEXT

foreign import ccall safe "dynamic"
               unwrapVkCmdSetStencilTestEnableEXTSafe ::
               PFN_vkCmdSetStencilTestEnableEXT -> HS_vkCmdSetStencilTestEnableEXT

instance VulkanProc "vkCmdSetStencilTestEnableEXT" where
    type VkProcType "vkCmdSetStencilTestEnableEXT" =
         HS_vkCmdSetStencilTestEnableEXT
    vkProcSymbol = _VkCmdSetStencilTestEnableEXT

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe = unwrapVkCmdSetStencilTestEnableEXTUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe = unwrapVkCmdSetStencilTestEnableEXTSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

pattern VkCmdSetStencilOpEXT :: CString

pattern VkCmdSetStencilOpEXT <- (is_VkCmdSetStencilOpEXT -> True)
  where
    VkCmdSetStencilOpEXT = _VkCmdSetStencilOpEXT

{-# INLINE _VkCmdSetStencilOpEXT #-}

_VkCmdSetStencilOpEXT :: CString
_VkCmdSetStencilOpEXT = Ptr "vkCmdSetStencilOpEXT\NUL"#

{-# INLINE is_VkCmdSetStencilOpEXT #-}

is_VkCmdSetStencilOpEXT :: CString -> Bool
is_VkCmdSetStencilOpEXT
  = (EQ ==) . cmpCStrings _VkCmdSetStencilOpEXT

type VkCmdSetStencilOpEXT = "vkCmdSetStencilOpEXT"

-- | Queues: 'graphics'.
--
--   Renderpass: @both@
--
--   > void vkCmdSetStencilOpEXT
--   >     ( VkCommandBuffer commandBuffer
--   >     , VkStencilFaceFlags faceMask
--   >     , VkStencilOp failOp
--   >     , VkStencilOp passOp
--   >     , VkStencilOp depthFailOp
--   >     , VkCompareOp compareOp
--   >     )
--
--   <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdSetStencilOpEXT vkCmdSetStencilOpEXT registry at www.khronos.org>
type HS_vkCmdSetStencilOpEXT =
     VkCommandBuffer -- ^ commandBuffer
                     ->
       VkStencilFaceFlags -- ^ faceMask
                          ->
         VkStencilOp -- ^ failOp
                     -> VkStencilOp -- ^ passOp
                                    -> VkStencilOp -- ^ depthFailOp
                                                   -> VkCompareOp -- ^ compareOp
                                                                  -> IO ()

type PFN_vkCmdSetStencilOpEXT = FunPtr HS_vkCmdSetStencilOpEXT

foreign import ccall unsafe "dynamic"
               unwrapVkCmdSetStencilOpEXTUnsafe ::
               PFN_vkCmdSetStencilOpEXT -> HS_vkCmdSetStencilOpEXT

foreign import ccall safe "dynamic" unwrapVkCmdSetStencilOpEXTSafe
               :: PFN_vkCmdSetStencilOpEXT -> HS_vkCmdSetStencilOpEXT

instance VulkanProc "vkCmdSetStencilOpEXT" where
    type VkProcType "vkCmdSetStencilOpEXT" = HS_vkCmdSetStencilOpEXT
    vkProcSymbol = _VkCmdSetStencilOpEXT

    {-# INLINE vkProcSymbol #-}
    unwrapVkProcPtrUnsafe = unwrapVkCmdSetStencilOpEXTUnsafe

    {-# INLINE unwrapVkProcPtrUnsafe #-}
    unwrapVkProcPtrSafe = unwrapVkCmdSetStencilOpEXTSafe

    {-# INLINE unwrapVkProcPtrSafe #-}

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

pattern VK_EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION = 1

type VK_EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION = 1

pattern VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME :: CString

pattern VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME <-
        (is_VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME -> True)
  where
    VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME
      = _VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME

{-# INLINE _VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME #-}

_VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME :: CString
_VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME
  = Ptr "VK_EXT_extended_dynamic_state\NUL"#

{-# INLINE is_VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME #-}

is_VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME :: CString -> Bool
is_VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME
  = (EQ ==) .
      cmpCStrings _VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME

type VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME =
     "VK_EXT_extended_dynamic_state"

pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT
        :: VkStructureType

pattern VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT
        = VkStructureType 1000267000

pattern VK_DYNAMIC_STATE_CULL_MODE_EXT :: VkDynamicState

pattern VK_DYNAMIC_STATE_CULL_MODE_EXT = VkDynamicState 1000267000

pattern VK_DYNAMIC_STATE_FRONT_FACE_EXT :: VkDynamicState

pattern VK_DYNAMIC_STATE_FRONT_FACE_EXT = VkDynamicState 1000267001

pattern VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT :: VkDynamicState

pattern VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT =
        VkDynamicState 1000267002

pattern VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT :: VkDynamicState

pattern VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT =
        VkDynamicState 1000267003

pattern VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT :: VkDynamicState

pattern VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT =
        VkDynamicState 1000267004

pattern VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT ::
        VkDynamicState

pattern VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT =
        VkDynamicState 1000267005

pattern VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT :: VkDynamicState

pattern VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT =
        VkDynamicState 1000267006

pattern VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT :: VkDynamicState

pattern VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT =
        VkDynamicState 1000267007

pattern VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT :: VkDynamicState

pattern VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT =
        VkDynamicState 1000267008

pattern VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT ::
        VkDynamicState

pattern VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT =
        VkDynamicState 1000267009

pattern VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT :: VkDynamicState

pattern VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT =
        VkDynamicState 1000267010

pattern VK_DYNAMIC_STATE_STENCIL_OP_EXT :: VkDynamicState

pattern VK_DYNAMIC_STATE_STENCIL_OP_EXT = VkDynamicState 1000267011