gpu-vulkan-core-0.1.0.7: src/Gpu/Vulkan/PhysicalDevice/Struct/Core.hsc
-- This file is automatically generated by the tools/makeStruct.hs
-- % stack runghc --cwd tools/ makeStruct
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TupleSections #-}
{-# LANGUAGE PatternSynonyms, ViewPatterns #-}
{-# OPTIONS_GHC -Wall -fno-warn-tabs #-}
module Gpu.Vulkan.PhysicalDevice.Struct.Core where
import Foreign.Ptr
import Foreign.Marshal.Array
import Foreign.Storable
import Foreign.C.Struct
import Foreign.C.Struct.TypeSynonyms
import Data.Word
import Data.Int
import Gpu.Vulkan.TypeSynonyms.Core
#include <vulkan/vulkan.h>
struct "Limits" #{size VkPhysicalDeviceLimits}
#{alignment VkPhysicalDeviceLimits} [
("maxImageDimension1D", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxImageDimension1D} |],
[| #{poke VkPhysicalDeviceLimits, maxImageDimension1D} |]),
("maxImageDimension2D", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxImageDimension2D} |],
[| #{poke VkPhysicalDeviceLimits, maxImageDimension2D} |]),
("maxImageDimension3D", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxImageDimension3D} |],
[| #{poke VkPhysicalDeviceLimits, maxImageDimension3D} |]),
("maxImageDimensionCube", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxImageDimensionCube} |],
[| #{poke VkPhysicalDeviceLimits, maxImageDimensionCube} |]),
("maxImageArrayLayers", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxImageArrayLayers} |],
[| #{poke VkPhysicalDeviceLimits, maxImageArrayLayers} |]),
("maxTexelBufferElements", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxTexelBufferElements} |],
[| #{poke VkPhysicalDeviceLimits, maxTexelBufferElements} |]),
("maxUniformBufferRange", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxUniformBufferRange} |],
[| #{poke VkPhysicalDeviceLimits, maxUniformBufferRange} |]),
("maxStorageBufferRange", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxStorageBufferRange} |],
[| #{poke VkPhysicalDeviceLimits, maxStorageBufferRange} |]),
("maxPushConstantsSize", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxPushConstantsSize} |],
[| #{poke VkPhysicalDeviceLimits, maxPushConstantsSize} |]),
("maxMemoryAllocationCount", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxMemoryAllocationCount} |],
[| #{poke VkPhysicalDeviceLimits, maxMemoryAllocationCount} |]),
("maxSamplerAllocationCount", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxSamplerAllocationCount} |],
[| #{poke VkPhysicalDeviceLimits, maxSamplerAllocationCount} |]),
("bufferImageGranularity", ''#{type VkDeviceSize},
[| #{peek VkPhysicalDeviceLimits, bufferImageGranularity} |],
[| #{poke VkPhysicalDeviceLimits, bufferImageGranularity} |]),
("sparseAddressSpaceSize", ''#{type VkDeviceSize},
[| #{peek VkPhysicalDeviceLimits, sparseAddressSpaceSize} |],
[| #{poke VkPhysicalDeviceLimits, sparseAddressSpaceSize} |]),
("maxBoundDescriptorSets", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxBoundDescriptorSets} |],
[| #{poke VkPhysicalDeviceLimits, maxBoundDescriptorSets} |]),
("maxPerStageDescriptorSamplers", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxPerStageDescriptorSamplers} |],
[| #{poke VkPhysicalDeviceLimits, maxPerStageDescriptorSamplers} |]),
("maxPerStageDescriptorUniformBuffers", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxPerStageDescriptorUniformBuffers} |],
[| #{poke VkPhysicalDeviceLimits, maxPerStageDescriptorUniformBuffers} |]),
("maxPerStageDescriptorStorageBuffers", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxPerStageDescriptorStorageBuffers} |],
[| #{poke VkPhysicalDeviceLimits, maxPerStageDescriptorStorageBuffers} |]),
("maxPerStageDescriptorSampledImages", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxPerStageDescriptorSampledImages} |],
[| #{poke VkPhysicalDeviceLimits, maxPerStageDescriptorSampledImages} |]),
("maxPerStageDescriptorStorageImages", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxPerStageDescriptorStorageImages} |],
[| #{poke VkPhysicalDeviceLimits, maxPerStageDescriptorStorageImages} |]),
("maxPerStageDescriptorInputAttachments", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxPerStageDescriptorInputAttachments} |],
[| #{poke VkPhysicalDeviceLimits, maxPerStageDescriptorInputAttachments} |]),
("maxPerStageResources", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxPerStageResources} |],
[| #{poke VkPhysicalDeviceLimits, maxPerStageResources} |]),
("maxDescriptorSetSamplers", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxDescriptorSetSamplers} |],
[| #{poke VkPhysicalDeviceLimits, maxDescriptorSetSamplers} |]),
("maxDescriptorSetUniformBuffers", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxDescriptorSetUniformBuffers} |],
[| #{poke VkPhysicalDeviceLimits, maxDescriptorSetUniformBuffers} |]),
("maxDescriptorSetUniformBuffersDynamic", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxDescriptorSetUniformBuffersDynamic} |],
[| #{poke VkPhysicalDeviceLimits, maxDescriptorSetUniformBuffersDynamic} |]),
("maxDescriptorSetStorageBuffers", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxDescriptorSetStorageBuffers} |],
[| #{poke VkPhysicalDeviceLimits, maxDescriptorSetStorageBuffers} |]),
("maxDescriptorSetStorageBuffersDynamic", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxDescriptorSetStorageBuffersDynamic} |],
[| #{poke VkPhysicalDeviceLimits, maxDescriptorSetStorageBuffersDynamic} |]),
("maxDescriptorSetSampledImages", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxDescriptorSetSampledImages} |],
[| #{poke VkPhysicalDeviceLimits, maxDescriptorSetSampledImages} |]),
("maxDescriptorSetStorageImages", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxDescriptorSetStorageImages} |],
[| #{poke VkPhysicalDeviceLimits, maxDescriptorSetStorageImages} |]),
("maxDescriptorSetInputAttachments", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxDescriptorSetInputAttachments} |],
[| #{poke VkPhysicalDeviceLimits, maxDescriptorSetInputAttachments} |]),
("maxVertexInputAttributes", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxVertexInputAttributes} |],
[| #{poke VkPhysicalDeviceLimits, maxVertexInputAttributes} |]),
("maxVertexInputBindings", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxVertexInputBindings} |],
[| #{poke VkPhysicalDeviceLimits, maxVertexInputBindings} |]),
("maxVertexInputAttributeOffset", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxVertexInputAttributeOffset} |],
[| #{poke VkPhysicalDeviceLimits, maxVertexInputAttributeOffset} |]),
("maxVertexInputBindingStride", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxVertexInputBindingStride} |],
[| #{poke VkPhysicalDeviceLimits, maxVertexInputBindingStride} |]),
("maxVertexOutputComponents", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxVertexOutputComponents} |],
[| #{poke VkPhysicalDeviceLimits, maxVertexOutputComponents} |]),
("maxTessellationGenerationLevel", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxTessellationGenerationLevel} |],
[| #{poke VkPhysicalDeviceLimits, maxTessellationGenerationLevel} |]),
("maxTessellationPatchSize", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxTessellationPatchSize} |],
[| #{poke VkPhysicalDeviceLimits, maxTessellationPatchSize} |]),
("maxTessellationControlPerVertexInputComponents", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxTessellationControlPerVertexInputComponents} |],
[| #{poke VkPhysicalDeviceLimits, maxTessellationControlPerVertexInputComponents} |]),
("maxTessellationControlPerVertexOutputComponents", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxTessellationControlPerVertexOutputComponents} |],
[| #{poke VkPhysicalDeviceLimits, maxTessellationControlPerVertexOutputComponents} |]),
("maxTessellationControlPerPatchOutputComponents", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxTessellationControlPerPatchOutputComponents} |],
[| #{poke VkPhysicalDeviceLimits, maxTessellationControlPerPatchOutputComponents} |]),
("maxTessellationControlTotalOutputComponents", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxTessellationControlTotalOutputComponents} |],
[| #{poke VkPhysicalDeviceLimits, maxTessellationControlTotalOutputComponents} |]),
("maxTessellationEvaluationInputComponents", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxTessellationEvaluationInputComponents} |],
[| #{poke VkPhysicalDeviceLimits, maxTessellationEvaluationInputComponents} |]),
("maxTessellationEvaluationOutputComponents", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxTessellationEvaluationOutputComponents} |],
[| #{poke VkPhysicalDeviceLimits, maxTessellationEvaluationOutputComponents} |]),
("maxGeometryShaderInvocations", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxGeometryShaderInvocations} |],
[| #{poke VkPhysicalDeviceLimits, maxGeometryShaderInvocations} |]),
("maxGeometryInputComponents", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxGeometryInputComponents} |],
[| #{poke VkPhysicalDeviceLimits, maxGeometryInputComponents} |]),
("maxGeometryOutputComponents", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxGeometryOutputComponents} |],
[| #{poke VkPhysicalDeviceLimits, maxGeometryOutputComponents} |]),
("maxGeometryOutputVertices", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxGeometryOutputVertices} |],
[| #{poke VkPhysicalDeviceLimits, maxGeometryOutputVertices} |]),
("maxGeometryTotalOutputComponents", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxGeometryTotalOutputComponents} |],
[| #{poke VkPhysicalDeviceLimits, maxGeometryTotalOutputComponents} |]),
("maxFragmentInputComponents", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxFragmentInputComponents} |],
[| #{poke VkPhysicalDeviceLimits, maxFragmentInputComponents} |]),
("maxFragmentOutputAttachments", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxFragmentOutputAttachments} |],
[| #{poke VkPhysicalDeviceLimits, maxFragmentOutputAttachments} |]),
("maxFragmentDualSrcAttachments", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxFragmentDualSrcAttachments} |],
[| #{poke VkPhysicalDeviceLimits, maxFragmentDualSrcAttachments} |]),
("maxFragmentCombinedOutputResources", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxFragmentCombinedOutputResources} |],
[| #{poke VkPhysicalDeviceLimits, maxFragmentCombinedOutputResources} |]),
("maxComputeSharedMemorySize", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxComputeSharedMemorySize} |],
[| #{poke VkPhysicalDeviceLimits, maxComputeSharedMemorySize} |]),
("maxComputeWorkGroupCount", ''ListUint32T,
[| peekArray 3 . #{ptr VkPhysicalDeviceLimits, maxComputeWorkGroupCount}|],
[| pokeArray . #{ptr VkPhysicalDeviceLimits, maxComputeWorkGroupCount} |]),
("maxComputeWorkGroupInvocations", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxComputeWorkGroupInvocations} |],
[| #{poke VkPhysicalDeviceLimits, maxComputeWorkGroupInvocations} |]),
("maxComputeWorkGroupSize", ''ListUint32T,
[| peekArray 3 . #{ptr VkPhysicalDeviceLimits, maxComputeWorkGroupSize}|],
[| pokeArray . #{ptr VkPhysicalDeviceLimits, maxComputeWorkGroupSize} |]),
("subPixelPrecisionBits", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, subPixelPrecisionBits} |],
[| #{poke VkPhysicalDeviceLimits, subPixelPrecisionBits} |]),
("subTexelPrecisionBits", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, subTexelPrecisionBits} |],
[| #{poke VkPhysicalDeviceLimits, subTexelPrecisionBits} |]),
("mipmapPrecisionBits", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, mipmapPrecisionBits} |],
[| #{poke VkPhysicalDeviceLimits, mipmapPrecisionBits} |]),
("maxDrawIndexedIndexValue", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxDrawIndexedIndexValue} |],
[| #{poke VkPhysicalDeviceLimits, maxDrawIndexedIndexValue} |]),
("maxDrawIndirectCount", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxDrawIndirectCount} |],
[| #{poke VkPhysicalDeviceLimits, maxDrawIndirectCount} |]),
("maxSamplerLodBias", ''#{type float},
[| #{peek VkPhysicalDeviceLimits, maxSamplerLodBias} |],
[| #{poke VkPhysicalDeviceLimits, maxSamplerLodBias} |]),
("maxSamplerAnisotropy", ''#{type float},
[| #{peek VkPhysicalDeviceLimits, maxSamplerAnisotropy} |],
[| #{poke VkPhysicalDeviceLimits, maxSamplerAnisotropy} |]),
("maxViewports", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxViewports} |],
[| #{poke VkPhysicalDeviceLimits, maxViewports} |]),
("maxViewportDimensions", ''ListUint32T,
[| peekArray 2 . #{ptr VkPhysicalDeviceLimits, maxViewportDimensions}|],
[| pokeArray . #{ptr VkPhysicalDeviceLimits, maxViewportDimensions} |]),
("viewportBoundsRange", ''ListFloat,
[| peekArray 2 . #{ptr VkPhysicalDeviceLimits, viewportBoundsRange}|],
[| pokeArray . #{ptr VkPhysicalDeviceLimits, viewportBoundsRange} |]),
("viewportSubPixelBits", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, viewportSubPixelBits} |],
[| #{poke VkPhysicalDeviceLimits, viewportSubPixelBits} |]),
("minMemoryMapAlignment", ''#{type size_t},
[| #{peek VkPhysicalDeviceLimits, minMemoryMapAlignment} |],
[| #{poke VkPhysicalDeviceLimits, minMemoryMapAlignment} |]),
("minTexelBufferOffsetAlignment", ''#{type VkDeviceSize},
[| #{peek VkPhysicalDeviceLimits, minTexelBufferOffsetAlignment} |],
[| #{poke VkPhysicalDeviceLimits, minTexelBufferOffsetAlignment} |]),
("minUniformBufferOffsetAlignment", ''#{type VkDeviceSize},
[| #{peek VkPhysicalDeviceLimits, minUniformBufferOffsetAlignment} |],
[| #{poke VkPhysicalDeviceLimits, minUniformBufferOffsetAlignment} |]),
("minStorageBufferOffsetAlignment", ''#{type VkDeviceSize},
[| #{peek VkPhysicalDeviceLimits, minStorageBufferOffsetAlignment} |],
[| #{poke VkPhysicalDeviceLimits, minStorageBufferOffsetAlignment} |]),
("minTexelOffset", ''#{type int32_t},
[| #{peek VkPhysicalDeviceLimits, minTexelOffset} |],
[| #{poke VkPhysicalDeviceLimits, minTexelOffset} |]),
("maxTexelOffset", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxTexelOffset} |],
[| #{poke VkPhysicalDeviceLimits, maxTexelOffset} |]),
("minTexelGatherOffset", ''#{type int32_t},
[| #{peek VkPhysicalDeviceLimits, minTexelGatherOffset} |],
[| #{poke VkPhysicalDeviceLimits, minTexelGatherOffset} |]),
("maxTexelGatherOffset", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxTexelGatherOffset} |],
[| #{poke VkPhysicalDeviceLimits, maxTexelGatherOffset} |]),
("minInterpolationOffset", ''#{type float},
[| #{peek VkPhysicalDeviceLimits, minInterpolationOffset} |],
[| #{poke VkPhysicalDeviceLimits, minInterpolationOffset} |]),
("maxInterpolationOffset", ''#{type float},
[| #{peek VkPhysicalDeviceLimits, maxInterpolationOffset} |],
[| #{poke VkPhysicalDeviceLimits, maxInterpolationOffset} |]),
("subPixelInterpolationOffsetBits", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, subPixelInterpolationOffsetBits} |],
[| #{poke VkPhysicalDeviceLimits, subPixelInterpolationOffsetBits} |]),
("maxFramebufferWidth", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxFramebufferWidth} |],
[| #{poke VkPhysicalDeviceLimits, maxFramebufferWidth} |]),
("maxFramebufferHeight", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxFramebufferHeight} |],
[| #{poke VkPhysicalDeviceLimits, maxFramebufferHeight} |]),
("maxFramebufferLayers", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxFramebufferLayers} |],
[| #{poke VkPhysicalDeviceLimits, maxFramebufferLayers} |]),
("framebufferColorSampleCounts", ''#{type VkSampleCountFlags},
[| #{peek VkPhysicalDeviceLimits, framebufferColorSampleCounts} |],
[| #{poke VkPhysicalDeviceLimits, framebufferColorSampleCounts} |]),
("framebufferDepthSampleCounts", ''#{type VkSampleCountFlags},
[| #{peek VkPhysicalDeviceLimits, framebufferDepthSampleCounts} |],
[| #{poke VkPhysicalDeviceLimits, framebufferDepthSampleCounts} |]),
("framebufferStencilSampleCounts", ''#{type VkSampleCountFlags},
[| #{peek VkPhysicalDeviceLimits, framebufferStencilSampleCounts} |],
[| #{poke VkPhysicalDeviceLimits, framebufferStencilSampleCounts} |]),
("framebufferNoAttachmentsSampleCounts", ''#{type VkSampleCountFlags},
[| #{peek VkPhysicalDeviceLimits, framebufferNoAttachmentsSampleCounts} |],
[| #{poke VkPhysicalDeviceLimits, framebufferNoAttachmentsSampleCounts} |]),
("maxColorAttachments", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxColorAttachments} |],
[| #{poke VkPhysicalDeviceLimits, maxColorAttachments} |]),
("sampledImageColorSampleCounts", ''#{type VkSampleCountFlags},
[| #{peek VkPhysicalDeviceLimits, sampledImageColorSampleCounts} |],
[| #{poke VkPhysicalDeviceLimits, sampledImageColorSampleCounts} |]),
("sampledImageIntegerSampleCounts", ''#{type VkSampleCountFlags},
[| #{peek VkPhysicalDeviceLimits, sampledImageIntegerSampleCounts} |],
[| #{poke VkPhysicalDeviceLimits, sampledImageIntegerSampleCounts} |]),
("sampledImageDepthSampleCounts", ''#{type VkSampleCountFlags},
[| #{peek VkPhysicalDeviceLimits, sampledImageDepthSampleCounts} |],
[| #{poke VkPhysicalDeviceLimits, sampledImageDepthSampleCounts} |]),
("sampledImageStencilSampleCounts", ''#{type VkSampleCountFlags},
[| #{peek VkPhysicalDeviceLimits, sampledImageStencilSampleCounts} |],
[| #{poke VkPhysicalDeviceLimits, sampledImageStencilSampleCounts} |]),
("storageImageSampleCounts", ''#{type VkSampleCountFlags},
[| #{peek VkPhysicalDeviceLimits, storageImageSampleCounts} |],
[| #{poke VkPhysicalDeviceLimits, storageImageSampleCounts} |]),
("maxSampleMaskWords", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxSampleMaskWords} |],
[| #{poke VkPhysicalDeviceLimits, maxSampleMaskWords} |]),
("timestampComputeAndGraphics", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceLimits, timestampComputeAndGraphics} |],
[| #{poke VkPhysicalDeviceLimits, timestampComputeAndGraphics} |]),
("timestampPeriod", ''#{type float},
[| #{peek VkPhysicalDeviceLimits, timestampPeriod} |],
[| #{poke VkPhysicalDeviceLimits, timestampPeriod} |]),
("maxClipDistances", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxClipDistances} |],
[| #{poke VkPhysicalDeviceLimits, maxClipDistances} |]),
("maxCullDistances", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxCullDistances} |],
[| #{poke VkPhysicalDeviceLimits, maxCullDistances} |]),
("maxCombinedClipAndCullDistances", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, maxCombinedClipAndCullDistances} |],
[| #{poke VkPhysicalDeviceLimits, maxCombinedClipAndCullDistances} |]),
("discreteQueuePriorities", ''#{type uint32_t},
[| #{peek VkPhysicalDeviceLimits, discreteQueuePriorities} |],
[| #{poke VkPhysicalDeviceLimits, discreteQueuePriorities} |]),
("pointSizeRange", ''ListFloat,
[| peekArray 2 . #{ptr VkPhysicalDeviceLimits, pointSizeRange}|],
[| pokeArray . #{ptr VkPhysicalDeviceLimits, pointSizeRange} |]),
("lineWidthRange", ''ListFloat,
[| peekArray 2 . #{ptr VkPhysicalDeviceLimits, lineWidthRange}|],
[| pokeArray . #{ptr VkPhysicalDeviceLimits, lineWidthRange} |]),
("pointSizeGranularity", ''#{type float},
[| #{peek VkPhysicalDeviceLimits, pointSizeGranularity} |],
[| #{poke VkPhysicalDeviceLimits, pointSizeGranularity} |]),
("lineWidthGranularity", ''#{type float},
[| #{peek VkPhysicalDeviceLimits, lineWidthGranularity} |],
[| #{poke VkPhysicalDeviceLimits, lineWidthGranularity} |]),
("strictLines", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceLimits, strictLines} |],
[| #{poke VkPhysicalDeviceLimits, strictLines} |]),
("standardSampleLocations", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceLimits, standardSampleLocations} |],
[| #{poke VkPhysicalDeviceLimits, standardSampleLocations} |]),
("optimalBufferCopyOffsetAlignment", ''#{type VkDeviceSize},
[| #{peek VkPhysicalDeviceLimits, optimalBufferCopyOffsetAlignment} |],
[| #{poke VkPhysicalDeviceLimits, optimalBufferCopyOffsetAlignment} |]),
("optimalBufferCopyRowPitchAlignment", ''#{type VkDeviceSize},
[| #{peek VkPhysicalDeviceLimits, optimalBufferCopyRowPitchAlignment} |],
[| #{poke VkPhysicalDeviceLimits, optimalBufferCopyRowPitchAlignment} |]),
("nonCoherentAtomSize", ''#{type VkDeviceSize},
[| #{peek VkPhysicalDeviceLimits, nonCoherentAtomSize} |],
[| #{poke VkPhysicalDeviceLimits, nonCoherentAtomSize} |]) ]
[''Show, ''Storable]
struct "Features" #{size VkPhysicalDeviceFeatures}
#{alignment VkPhysicalDeviceFeatures} [
("robustBufferAccess", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceFeatures, robustBufferAccess} |],
[| #{poke VkPhysicalDeviceFeatures, robustBufferAccess} |]),
("fullDrawIndexUint32", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceFeatures, fullDrawIndexUint32} |],
[| #{poke VkPhysicalDeviceFeatures, fullDrawIndexUint32} |]),
("imageCubeArray", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceFeatures, imageCubeArray} |],
[| #{poke VkPhysicalDeviceFeatures, imageCubeArray} |]),
("independentBlend", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceFeatures, independentBlend} |],
[| #{poke VkPhysicalDeviceFeatures, independentBlend} |]),
("geometryShader", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceFeatures, geometryShader} |],
[| #{poke VkPhysicalDeviceFeatures, geometryShader} |]),
("tessellationShader", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceFeatures, tessellationShader} |],
[| #{poke VkPhysicalDeviceFeatures, tessellationShader} |]),
("sampleRateShading", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceFeatures, sampleRateShading} |],
[| #{poke VkPhysicalDeviceFeatures, sampleRateShading} |]),
("dualSrcBlend", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceFeatures, dualSrcBlend} |],
[| #{poke VkPhysicalDeviceFeatures, dualSrcBlend} |]),
("logicOp", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceFeatures, logicOp} |],
[| #{poke VkPhysicalDeviceFeatures, logicOp} |]),
("multiDrawIndirect", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceFeatures, multiDrawIndirect} |],
[| #{poke VkPhysicalDeviceFeatures, multiDrawIndirect} |]),
("drawIndirectFirstInstance", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceFeatures, drawIndirectFirstInstance} |],
[| #{poke VkPhysicalDeviceFeatures, drawIndirectFirstInstance} |]),
("depthClamp", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceFeatures, depthClamp} |],
[| #{poke VkPhysicalDeviceFeatures, depthClamp} |]),
("depthBiasClamp", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceFeatures, depthBiasClamp} |],
[| #{poke VkPhysicalDeviceFeatures, depthBiasClamp} |]),
("fillModeNonSolid", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceFeatures, fillModeNonSolid} |],
[| #{poke VkPhysicalDeviceFeatures, fillModeNonSolid} |]),
("depthBounds", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceFeatures, depthBounds} |],
[| #{poke VkPhysicalDeviceFeatures, depthBounds} |]),
("wideLines", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceFeatures, wideLines} |],
[| #{poke VkPhysicalDeviceFeatures, wideLines} |]),
("largePoints", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceFeatures, largePoints} |],
[| #{poke VkPhysicalDeviceFeatures, largePoints} |]),
("alphaToOne", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceFeatures, alphaToOne} |],
[| #{poke VkPhysicalDeviceFeatures, alphaToOne} |]),
("multiViewport", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceFeatures, multiViewport} |],
[| #{poke VkPhysicalDeviceFeatures, multiViewport} |]),
("samplerAnisotropy", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceFeatures, samplerAnisotropy} |],
[| #{poke VkPhysicalDeviceFeatures, samplerAnisotropy} |]),
("textureCompressionETC2", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceFeatures, textureCompressionETC2} |],
[| #{poke VkPhysicalDeviceFeatures, textureCompressionETC2} |]),
("textureCompressionASTC_LDR", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceFeatures, textureCompressionASTC_LDR} |],
[| #{poke VkPhysicalDeviceFeatures, textureCompressionASTC_LDR} |]),
("textureCompressionBC", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceFeatures, textureCompressionBC} |],
[| #{poke VkPhysicalDeviceFeatures, textureCompressionBC} |]),
("occlusionQueryPrecise", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceFeatures, occlusionQueryPrecise} |],
[| #{poke VkPhysicalDeviceFeatures, occlusionQueryPrecise} |]),
("pipelineStatisticsQuery", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceFeatures, pipelineStatisticsQuery} |],
[| #{poke VkPhysicalDeviceFeatures, pipelineStatisticsQuery} |]),
("vertexPipelineStoresAndAtomics", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceFeatures, vertexPipelineStoresAndAtomics} |],
[| #{poke VkPhysicalDeviceFeatures, vertexPipelineStoresAndAtomics} |]),
("fragmentStoresAndAtomics", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceFeatures, fragmentStoresAndAtomics} |],
[| #{poke VkPhysicalDeviceFeatures, fragmentStoresAndAtomics} |]),
("shaderTessellationAndGeometryPointSize", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceFeatures, shaderTessellationAndGeometryPointSize} |],
[| #{poke VkPhysicalDeviceFeatures, shaderTessellationAndGeometryPointSize} |]),
("shaderImageGatherExtended", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceFeatures, shaderImageGatherExtended} |],
[| #{poke VkPhysicalDeviceFeatures, shaderImageGatherExtended} |]),
("shaderStorageImageExtendedFormats", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceFeatures, shaderStorageImageExtendedFormats} |],
[| #{poke VkPhysicalDeviceFeatures, shaderStorageImageExtendedFormats} |]),
("shaderStorageImageMultisample", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceFeatures, shaderStorageImageMultisample} |],
[| #{poke VkPhysicalDeviceFeatures, shaderStorageImageMultisample} |]),
("shaderStorageImageReadWithoutFormat", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceFeatures, shaderStorageImageReadWithoutFormat} |],
[| #{poke VkPhysicalDeviceFeatures, shaderStorageImageReadWithoutFormat} |]),
("shaderStorageImageWriteWithoutFormat", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceFeatures, shaderStorageImageWriteWithoutFormat} |],
[| #{poke VkPhysicalDeviceFeatures, shaderStorageImageWriteWithoutFormat} |]),
("shaderUniformBufferArrayDynamicIndexing", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceFeatures, shaderUniformBufferArrayDynamicIndexing} |],
[| #{poke VkPhysicalDeviceFeatures, shaderUniformBufferArrayDynamicIndexing} |]),
("shaderSampledImageArrayDynamicIndexing", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceFeatures, shaderSampledImageArrayDynamicIndexing} |],
[| #{poke VkPhysicalDeviceFeatures, shaderSampledImageArrayDynamicIndexing} |]),
("shaderStorageBufferArrayDynamicIndexing", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceFeatures, shaderStorageBufferArrayDynamicIndexing} |],
[| #{poke VkPhysicalDeviceFeatures, shaderStorageBufferArrayDynamicIndexing} |]),
("shaderStorageImageArrayDynamicIndexing", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceFeatures, shaderStorageImageArrayDynamicIndexing} |],
[| #{poke VkPhysicalDeviceFeatures, shaderStorageImageArrayDynamicIndexing} |]),
("shaderClipDistance", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceFeatures, shaderClipDistance} |],
[| #{poke VkPhysicalDeviceFeatures, shaderClipDistance} |]),
("shaderCullDistance", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceFeatures, shaderCullDistance} |],
[| #{poke VkPhysicalDeviceFeatures, shaderCullDistance} |]),
("shaderFloat64", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceFeatures, shaderFloat64} |],
[| #{poke VkPhysicalDeviceFeatures, shaderFloat64} |]),
("shaderInt64", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceFeatures, shaderInt64} |],
[| #{poke VkPhysicalDeviceFeatures, shaderInt64} |]),
("shaderInt16", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceFeatures, shaderInt16} |],
[| #{poke VkPhysicalDeviceFeatures, shaderInt16} |]),
("shaderResourceResidency", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceFeatures, shaderResourceResidency} |],
[| #{poke VkPhysicalDeviceFeatures, shaderResourceResidency} |]),
("shaderResourceMinLod", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceFeatures, shaderResourceMinLod} |],
[| #{poke VkPhysicalDeviceFeatures, shaderResourceMinLod} |]),
("sparseBinding", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceFeatures, sparseBinding} |],
[| #{poke VkPhysicalDeviceFeatures, sparseBinding} |]),
("sparseResidencyBuffer", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceFeatures, sparseResidencyBuffer} |],
[| #{poke VkPhysicalDeviceFeatures, sparseResidencyBuffer} |]),
("sparseResidencyImage2D", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceFeatures, sparseResidencyImage2D} |],
[| #{poke VkPhysicalDeviceFeatures, sparseResidencyImage2D} |]),
("sparseResidencyImage3D", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceFeatures, sparseResidencyImage3D} |],
[| #{poke VkPhysicalDeviceFeatures, sparseResidencyImage3D} |]),
("sparseResidency2Samples", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceFeatures, sparseResidency2Samples} |],
[| #{poke VkPhysicalDeviceFeatures, sparseResidency2Samples} |]),
("sparseResidency4Samples", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceFeatures, sparseResidency4Samples} |],
[| #{poke VkPhysicalDeviceFeatures, sparseResidency4Samples} |]),
("sparseResidency8Samples", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceFeatures, sparseResidency8Samples} |],
[| #{poke VkPhysicalDeviceFeatures, sparseResidency8Samples} |]),
("sparseResidency16Samples", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceFeatures, sparseResidency16Samples} |],
[| #{poke VkPhysicalDeviceFeatures, sparseResidency16Samples} |]),
("sparseResidencyAliased", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceFeatures, sparseResidencyAliased} |],
[| #{poke VkPhysicalDeviceFeatures, sparseResidencyAliased} |]),
("variableMultisampleRate", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceFeatures, variableMultisampleRate} |],
[| #{poke VkPhysicalDeviceFeatures, variableMultisampleRate} |]),
("inheritedQueries", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceFeatures, inheritedQueries} |],
[| #{poke VkPhysicalDeviceFeatures, inheritedQueries} |]) ]
[''Show, ''Storable]
struct "DescriptorIndexingFeatures" #{size VkPhysicalDeviceDescriptorIndexingFeatures}
#{alignment VkPhysicalDeviceDescriptorIndexingFeatures} [
("sType", ''(), [| const $ pure () |],
[| \p _ -> #{poke VkPhysicalDeviceDescriptorIndexingFeatures, sType} p
(#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES} ::
#{type VkStructureType}) |]),
("pNext", ''PtrVoid,
[| #{peek VkPhysicalDeviceDescriptorIndexingFeatures, pNext} |],
[| #{poke VkPhysicalDeviceDescriptorIndexingFeatures, pNext} |]),
("shaderInputAttachmentArrayDynamicIndexing", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceDescriptorIndexingFeatures, shaderInputAttachmentArrayDynamicIndexing} |],
[| #{poke VkPhysicalDeviceDescriptorIndexingFeatures, shaderInputAttachmentArrayDynamicIndexing} |]),
("shaderUniformTexelBufferArrayDynamicIndexing", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceDescriptorIndexingFeatures, shaderUniformTexelBufferArrayDynamicIndexing} |],
[| #{poke VkPhysicalDeviceDescriptorIndexingFeatures, shaderUniformTexelBufferArrayDynamicIndexing} |]),
("shaderStorageTexelBufferArrayDynamicIndexing", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceDescriptorIndexingFeatures, shaderStorageTexelBufferArrayDynamicIndexing} |],
[| #{poke VkPhysicalDeviceDescriptorIndexingFeatures, shaderStorageTexelBufferArrayDynamicIndexing} |]),
("shaderUniformBufferArrayNonUniformIndexing", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceDescriptorIndexingFeatures, shaderUniformBufferArrayNonUniformIndexing} |],
[| #{poke VkPhysicalDeviceDescriptorIndexingFeatures, shaderUniformBufferArrayNonUniformIndexing} |]),
("shaderSampledImageArrayNonUniformIndexing", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceDescriptorIndexingFeatures, shaderSampledImageArrayNonUniformIndexing} |],
[| #{poke VkPhysicalDeviceDescriptorIndexingFeatures, shaderSampledImageArrayNonUniformIndexing} |]),
("shaderStorageBufferArrayNonUniformIndexing", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceDescriptorIndexingFeatures, shaderStorageBufferArrayNonUniformIndexing} |],
[| #{poke VkPhysicalDeviceDescriptorIndexingFeatures, shaderStorageBufferArrayNonUniformIndexing} |]),
("shaderStorageImageArrayNonUniformIndexing", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceDescriptorIndexingFeatures, shaderStorageImageArrayNonUniformIndexing} |],
[| #{poke VkPhysicalDeviceDescriptorIndexingFeatures, shaderStorageImageArrayNonUniformIndexing} |]),
("shaderInputAttachmentArrayNonUniformIndexing", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceDescriptorIndexingFeatures, shaderInputAttachmentArrayNonUniformIndexing} |],
[| #{poke VkPhysicalDeviceDescriptorIndexingFeatures, shaderInputAttachmentArrayNonUniformIndexing} |]),
("shaderUniformTexelBufferArrayNonUniformIndexing", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceDescriptorIndexingFeatures, shaderUniformTexelBufferArrayNonUniformIndexing} |],
[| #{poke VkPhysicalDeviceDescriptorIndexingFeatures, shaderUniformTexelBufferArrayNonUniformIndexing} |]),
("shaderStorageTexelBufferArrayNonUniformIndexing", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceDescriptorIndexingFeatures, shaderStorageTexelBufferArrayNonUniformIndexing} |],
[| #{poke VkPhysicalDeviceDescriptorIndexingFeatures, shaderStorageTexelBufferArrayNonUniformIndexing} |]),
("descriptorBindingUniformBufferUpdateAfterBind", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceDescriptorIndexingFeatures, descriptorBindingUniformBufferUpdateAfterBind} |],
[| #{poke VkPhysicalDeviceDescriptorIndexingFeatures, descriptorBindingUniformBufferUpdateAfterBind} |]),
("descriptorBindingSampledImageUpdateAfterBind", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceDescriptorIndexingFeatures, descriptorBindingSampledImageUpdateAfterBind} |],
[| #{poke VkPhysicalDeviceDescriptorIndexingFeatures, descriptorBindingSampledImageUpdateAfterBind} |]),
("descriptorBindingStorageImageUpdateAfterBind", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceDescriptorIndexingFeatures, descriptorBindingStorageImageUpdateAfterBind} |],
[| #{poke VkPhysicalDeviceDescriptorIndexingFeatures, descriptorBindingStorageImageUpdateAfterBind} |]),
("descriptorBindingStorageBufferUpdateAfterBind", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceDescriptorIndexingFeatures, descriptorBindingStorageBufferUpdateAfterBind} |],
[| #{poke VkPhysicalDeviceDescriptorIndexingFeatures, descriptorBindingStorageBufferUpdateAfterBind} |]),
("descriptorBindingUniformTexelBufferUpdateAfterBind", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceDescriptorIndexingFeatures, descriptorBindingUniformTexelBufferUpdateAfterBind} |],
[| #{poke VkPhysicalDeviceDescriptorIndexingFeatures, descriptorBindingUniformTexelBufferUpdateAfterBind} |]),
("descriptorBindingStorageTexelBufferUpdateAfterBind", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceDescriptorIndexingFeatures, descriptorBindingStorageTexelBufferUpdateAfterBind} |],
[| #{poke VkPhysicalDeviceDescriptorIndexingFeatures, descriptorBindingStorageTexelBufferUpdateAfterBind} |]),
("descriptorBindingUpdateUnusedWhilePending", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceDescriptorIndexingFeatures, descriptorBindingUpdateUnusedWhilePending} |],
[| #{poke VkPhysicalDeviceDescriptorIndexingFeatures, descriptorBindingUpdateUnusedWhilePending} |]),
("descriptorBindingPartiallyBound", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceDescriptorIndexingFeatures, descriptorBindingPartiallyBound} |],
[| #{poke VkPhysicalDeviceDescriptorIndexingFeatures, descriptorBindingPartiallyBound} |]),
("descriptorBindingVariableDescriptorCount", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceDescriptorIndexingFeatures, descriptorBindingVariableDescriptorCount} |],
[| #{poke VkPhysicalDeviceDescriptorIndexingFeatures, descriptorBindingVariableDescriptorCount} |]),
("runtimeDescriptorArray", ''#{type VkBool32},
[| #{peek VkPhysicalDeviceDescriptorIndexingFeatures, runtimeDescriptorArray} |],
[| #{poke VkPhysicalDeviceDescriptorIndexingFeatures, runtimeDescriptorArray} |]) ]
[''Show, ''Storable]
type PtrFeatures = Ptr Features