-- 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 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 "Vulkan12Features" #{size VkPhysicalDeviceVulkan12Features} #{alignment VkPhysicalDeviceVulkan12Features} [ ("sType", ''(), [| const $ pure () |], [| \p _ -> #{poke VkPhysicalDeviceVulkan12Features, sType} p (#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES} :: #{type VkStructureType}) |]), ("pNext", ''PtrVoid, [| #{peek VkPhysicalDeviceVulkan12Features, pNext} |], [| #{poke VkPhysicalDeviceVulkan12Features, pNext} |]), ("samplerMirrorClampToEdge", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan12Features, samplerMirrorClampToEdge} |], [| #{poke VkPhysicalDeviceVulkan12Features, samplerMirrorClampToEdge} |]), ("drawIndirectCount", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan12Features, drawIndirectCount} |], [| #{poke VkPhysicalDeviceVulkan12Features, drawIndirectCount} |]), ("storageBuffer8BitAccess", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan12Features, storageBuffer8BitAccess} |], [| #{poke VkPhysicalDeviceVulkan12Features, storageBuffer8BitAccess} |]), ("uniformAndStorageBuffer8BitAccess", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan12Features, uniformAndStorageBuffer8BitAccess} |], [| #{poke VkPhysicalDeviceVulkan12Features, uniformAndStorageBuffer8BitAccess} |]), ("storagePushConstant8", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan12Features, storagePushConstant8} |], [| #{poke VkPhysicalDeviceVulkan12Features, storagePushConstant8} |]), ("shaderBufferInt64Atomics", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan12Features, shaderBufferInt64Atomics} |], [| #{poke VkPhysicalDeviceVulkan12Features, shaderBufferInt64Atomics} |]), ("shaderSharedInt64Atomics", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan12Features, shaderSharedInt64Atomics} |], [| #{poke VkPhysicalDeviceVulkan12Features, shaderSharedInt64Atomics} |]), ("shaderFloat16", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan12Features, shaderFloat16} |], [| #{poke VkPhysicalDeviceVulkan12Features, shaderFloat16} |]), ("shaderInt8", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan12Features, shaderInt8} |], [| #{poke VkPhysicalDeviceVulkan12Features, shaderInt8} |]), ("descriptorIndexing", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan12Features, descriptorIndexing} |], [| #{poke VkPhysicalDeviceVulkan12Features, descriptorIndexing} |]), ("shaderInputAttachmentArrayDynamicIndexing", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan12Features, shaderInputAttachmentArrayDynamicIndexing} |], [| #{poke VkPhysicalDeviceVulkan12Features, shaderInputAttachmentArrayDynamicIndexing} |]), ("shaderUniformTexelBufferArrayDynamicIndexing", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan12Features, shaderUniformTexelBufferArrayDynamicIndexing} |], [| #{poke VkPhysicalDeviceVulkan12Features, shaderUniformTexelBufferArrayDynamicIndexing} |]), ("shaderStorageTexelBufferArrayDynamicIndexing", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan12Features, shaderStorageTexelBufferArrayDynamicIndexing} |], [| #{poke VkPhysicalDeviceVulkan12Features, shaderStorageTexelBufferArrayDynamicIndexing} |]), ("shaderUniformBufferArrayNonUniformIndexing", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan12Features, shaderUniformBufferArrayNonUniformIndexing} |], [| #{poke VkPhysicalDeviceVulkan12Features, shaderUniformBufferArrayNonUniformIndexing} |]), ("shaderSampledImageArrayNonUniformIndexing", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan12Features, shaderSampledImageArrayNonUniformIndexing} |], [| #{poke VkPhysicalDeviceVulkan12Features, shaderSampledImageArrayNonUniformIndexing} |]), ("shaderStorageBufferArrayNonUniformIndexing", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan12Features, shaderStorageBufferArrayNonUniformIndexing} |], [| #{poke VkPhysicalDeviceVulkan12Features, shaderStorageBufferArrayNonUniformIndexing} |]), ("shaderStorageImageArrayNonUniformIndexing", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan12Features, shaderStorageImageArrayNonUniformIndexing} |], [| #{poke VkPhysicalDeviceVulkan12Features, shaderStorageImageArrayNonUniformIndexing} |]), ("shaderInputAttachmentArrayNonUniformIndexing", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan12Features, shaderInputAttachmentArrayNonUniformIndexing} |], [| #{poke VkPhysicalDeviceVulkan12Features, shaderInputAttachmentArrayNonUniformIndexing} |]), ("shaderUniformTexelBufferArrayNonUniformIndexing", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan12Features, shaderUniformTexelBufferArrayNonUniformIndexing} |], [| #{poke VkPhysicalDeviceVulkan12Features, shaderUniformTexelBufferArrayNonUniformIndexing} |]), ("shaderStorageTexelBufferArrayNonUniformIndexing", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan12Features, shaderStorageTexelBufferArrayNonUniformIndexing} |], [| #{poke VkPhysicalDeviceVulkan12Features, shaderStorageTexelBufferArrayNonUniformIndexing} |]), ("descriptorBindingUniformBufferUpdateAfterBind", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan12Features, descriptorBindingUniformBufferUpdateAfterBind} |], [| #{poke VkPhysicalDeviceVulkan12Features, descriptorBindingUniformBufferUpdateAfterBind} |]), ("descriptorBindingSampledImageUpdateAfterBind", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan12Features, descriptorBindingSampledImageUpdateAfterBind} |], [| #{poke VkPhysicalDeviceVulkan12Features, descriptorBindingSampledImageUpdateAfterBind} |]), ("descriptorBindingStorageImageUpdateAfterBind", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan12Features, descriptorBindingStorageImageUpdateAfterBind} |], [| #{poke VkPhysicalDeviceVulkan12Features, descriptorBindingStorageImageUpdateAfterBind} |]), ("descriptorBindingStorageBufferUpdateAfterBind", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan12Features, descriptorBindingStorageBufferUpdateAfterBind} |], [| #{poke VkPhysicalDeviceVulkan12Features, descriptorBindingStorageBufferUpdateAfterBind} |]), ("descriptorBindingUniformTexelBufferUpdateAfterBind", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan12Features, descriptorBindingUniformTexelBufferUpdateAfterBind} |], [| #{poke VkPhysicalDeviceVulkan12Features, descriptorBindingUniformTexelBufferUpdateAfterBind} |]), ("descriptorBindingStorageTexelBufferUpdateAfterBind", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan12Features, descriptorBindingStorageTexelBufferUpdateAfterBind} |], [| #{poke VkPhysicalDeviceVulkan12Features, descriptorBindingStorageTexelBufferUpdateAfterBind} |]), ("descriptorBindingUpdateUnusedWhilePending", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan12Features, descriptorBindingUpdateUnusedWhilePending} |], [| #{poke VkPhysicalDeviceVulkan12Features, descriptorBindingUpdateUnusedWhilePending} |]), ("descriptorBindingPartiallyBound", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan12Features, descriptorBindingPartiallyBound} |], [| #{poke VkPhysicalDeviceVulkan12Features, descriptorBindingPartiallyBound} |]), ("descriptorBindingVariableDescriptorCount", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan12Features, descriptorBindingVariableDescriptorCount} |], [| #{poke VkPhysicalDeviceVulkan12Features, descriptorBindingVariableDescriptorCount} |]), ("runtimeDescriptorArray", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan12Features, runtimeDescriptorArray} |], [| #{poke VkPhysicalDeviceVulkan12Features, runtimeDescriptorArray} |]), ("samplerFilterMinmax", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan12Features, samplerFilterMinmax} |], [| #{poke VkPhysicalDeviceVulkan12Features, samplerFilterMinmax} |]), ("scalarBlockLayout", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan12Features, scalarBlockLayout} |], [| #{poke VkPhysicalDeviceVulkan12Features, scalarBlockLayout} |]), ("imagelessFramebuffer", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan12Features, imagelessFramebuffer} |], [| #{poke VkPhysicalDeviceVulkan12Features, imagelessFramebuffer} |]), ("uniformBufferStandardLayout", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan12Features, uniformBufferStandardLayout} |], [| #{poke VkPhysicalDeviceVulkan12Features, uniformBufferStandardLayout} |]), ("shaderSubgroupExtendedTypes", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan12Features, shaderSubgroupExtendedTypes} |], [| #{poke VkPhysicalDeviceVulkan12Features, shaderSubgroupExtendedTypes} |]), ("separateDepthStencilLayouts", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan12Features, separateDepthStencilLayouts} |], [| #{poke VkPhysicalDeviceVulkan12Features, separateDepthStencilLayouts} |]), ("hostQueryReset", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan12Features, hostQueryReset} |], [| #{poke VkPhysicalDeviceVulkan12Features, hostQueryReset} |]), ("timelineSemaphore", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan12Features, timelineSemaphore} |], [| #{poke VkPhysicalDeviceVulkan12Features, timelineSemaphore} |]), ("bufferDeviceAddress", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan12Features, bufferDeviceAddress} |], [| #{poke VkPhysicalDeviceVulkan12Features, bufferDeviceAddress} |]), ("bufferDeviceAddressCaptureReplay", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan12Features, bufferDeviceAddressCaptureReplay} |], [| #{poke VkPhysicalDeviceVulkan12Features, bufferDeviceAddressCaptureReplay} |]), ("bufferDeviceAddressMultiDevice", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan12Features, bufferDeviceAddressMultiDevice} |], [| #{poke VkPhysicalDeviceVulkan12Features, bufferDeviceAddressMultiDevice} |]), ("vulkanMemoryModel", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan12Features, vulkanMemoryModel} |], [| #{poke VkPhysicalDeviceVulkan12Features, vulkanMemoryModel} |]), ("vulkanMemoryModelDeviceScope", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan12Features, vulkanMemoryModelDeviceScope} |], [| #{poke VkPhysicalDeviceVulkan12Features, vulkanMemoryModelDeviceScope} |]), ("vulkanMemoryModelAvailabilityVisibilityChains", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan12Features, vulkanMemoryModelAvailabilityVisibilityChains} |], [| #{poke VkPhysicalDeviceVulkan12Features, vulkanMemoryModelAvailabilityVisibilityChains} |]), ("shaderOutputViewportIndex", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan12Features, shaderOutputViewportIndex} |], [| #{poke VkPhysicalDeviceVulkan12Features, shaderOutputViewportIndex} |]), ("shaderOutputLayer", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan12Features, shaderOutputLayer} |], [| #{poke VkPhysicalDeviceVulkan12Features, shaderOutputLayer} |]), ("subgroupBroadcastDynamicId", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan12Features, subgroupBroadcastDynamicId} |], [| #{poke VkPhysicalDeviceVulkan12Features, subgroupBroadcastDynamicId} |]) ] [''Show, ''Storable] struct "Vulkan13Features" #{size VkPhysicalDeviceVulkan13Features} #{alignment VkPhysicalDeviceVulkan13Features} [ ("sType", ''(), [| const $ pure () |], [| \p _ -> #{poke VkPhysicalDeviceVulkan13Features, sType} p (#{const VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES} :: #{type VkStructureType}) |]), ("pNext", ''PtrVoid, [| #{peek VkPhysicalDeviceVulkan13Features, pNext} |], [| #{poke VkPhysicalDeviceVulkan13Features, pNext} |]), ("robustImageAccess", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan13Features, robustImageAccess} |], [| #{poke VkPhysicalDeviceVulkan13Features, robustImageAccess} |]), ("inlineUniformBlock", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan13Features, inlineUniformBlock} |], [| #{poke VkPhysicalDeviceVulkan13Features, inlineUniformBlock} |]), ("descriptorBindingInlineUniformBlockUpdateAfterBind", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan13Features, descriptorBindingInlineUniformBlockUpdateAfterBind} |], [| #{poke VkPhysicalDeviceVulkan13Features, descriptorBindingInlineUniformBlockUpdateAfterBind} |]), ("pipelineCreationCacheControl", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan13Features, pipelineCreationCacheControl} |], [| #{poke VkPhysicalDeviceVulkan13Features, pipelineCreationCacheControl} |]), ("privateData", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan13Features, privateData} |], [| #{poke VkPhysicalDeviceVulkan13Features, privateData} |]), ("shaderDemoteToHelperInvocation", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan13Features, shaderDemoteToHelperInvocation} |], [| #{poke VkPhysicalDeviceVulkan13Features, shaderDemoteToHelperInvocation} |]), ("shaderTerminateInvocation", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan13Features, shaderTerminateInvocation} |], [| #{poke VkPhysicalDeviceVulkan13Features, shaderTerminateInvocation} |]), ("subgroupSizeControl", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan13Features, subgroupSizeControl} |], [| #{poke VkPhysicalDeviceVulkan13Features, subgroupSizeControl} |]), ("computeFullSubgroups", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan13Features, computeFullSubgroups} |], [| #{poke VkPhysicalDeviceVulkan13Features, computeFullSubgroups} |]), ("synchronization2", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan13Features, synchronization2} |], [| #{poke VkPhysicalDeviceVulkan13Features, synchronization2} |]), ("textureCompressionASTC_HDR", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan13Features, textureCompressionASTC_HDR} |], [| #{poke VkPhysicalDeviceVulkan13Features, textureCompressionASTC_HDR} |]), ("shaderZeroInitializeWorkgroupMemory", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan13Features, shaderZeroInitializeWorkgroupMemory} |], [| #{poke VkPhysicalDeviceVulkan13Features, shaderZeroInitializeWorkgroupMemory} |]), ("dynamicRendering", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan13Features, dynamicRendering} |], [| #{poke VkPhysicalDeviceVulkan13Features, dynamicRendering} |]), ("shaderIntegerDotProduct", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan13Features, shaderIntegerDotProduct} |], [| #{poke VkPhysicalDeviceVulkan13Features, shaderIntegerDotProduct} |]), ("maintenance4", ''#{type VkBool32}, [| #{peek VkPhysicalDeviceVulkan13Features, maintenance4} |], [| #{poke VkPhysicalDeviceVulkan13Features, maintenance4} |]) ] [''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