vulkan 3.6.6 → 3.6.7
raw patch · 33 files changed
+3555/−69 lines, 33 files
Files
- changelog.md +3/−0
- src/Vulkan/CStruct/Extends.hs +20/−0
- src/Vulkan/Core10/CommandBufferBuilding.hs +4/−1
- src/Vulkan/Core10/DescriptorSet.hs +7/−0
- src/Vulkan/Core10/Device.hs +8/−0
- src/Vulkan/Core10/DeviceInitialization.hs +6/−2
- src/Vulkan/Core10/Enums/Filter.hs +1/−0
- src/Vulkan/Core10/Enums/FormatFeatureFlagBits.hs +15/−9
- src/Vulkan/Core10/Enums/ImageLayout.hs +5/−0
- src/Vulkan/Core10/Enums/PipelineStageFlagBits.hs +4/−2
- src/Vulkan/Core10/Enums/PrimitiveTopology.hs +6/−1
- src/Vulkan/Core10/Enums/StructureType.hs +91/−0
- src/Vulkan/Core10/Event.hs +9/−0
- src/Vulkan/Core10/FundamentalTypes.hs +10/−0
- src/Vulkan/Core10/FundamentalTypes.hs-boot +2/−0
- src/Vulkan/Core10/Handles.hs +14/−0
- src/Vulkan/Core10/Image.hs +29/−0
- src/Vulkan/Core10/ImageView.hs +14/−0
- src/Vulkan/Core10/Pipeline.hs +81/−30
- src/Vulkan/Core10/Sampler.hs +5/−0
- src/Vulkan/Core11/Enums/PeerMemoryFeatureFlagBits.hs +2/−10
- src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory_capabilities.hs +1/−1
- src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs +5/−0
- src/Vulkan/Core12/Promoted_From_VK_KHR_create_renderpass2.hs +2/−2
- src/Vulkan/Dynamic.hs +25/−1
- src/Vulkan/Extensions.hs +4/−0
- src/Vulkan/Extensions/VK_EXT_hdr_metadata.hs +6/−6
- src/Vulkan/Extensions/VK_KHR_copy_commands2.hs +2728/−0
- src/Vulkan/Extensions/VK_KHR_copy_commands2.hs-boot +104/−0
- src/Vulkan/Extensions/VK_KHR_portability_subset.hs +315/−0
- src/Vulkan/Extensions/VK_KHR_portability_subset.hs-boot +23/−0
- src/Vulkan/Version.hs +2/−2
- vulkan.cabal +4/−2
changelog.md view
@@ -2,6 +2,9 @@ ## WIP +## [3.6.7] - 2020-09-25+ - Bump API version to v1.2.154+ ## [3.6.6] - 2020-08-27 - Bump API version to 1.2.152 - NoDuplicateRecordFields for Vulkan.Dynamic
src/Vulkan/CStruct/Extends.hs view
@@ -85,11 +85,14 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (BindShaderGroupIndirectCommandNV) import {-# SOURCE #-} Vulkan.Core10.SparseResourceMemoryManagement (BindSparseInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_NV_device_generated_commands (BindVertexBufferIndirectCommandNV)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (BlitImageInfo2KHR) import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (BufferCopy)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (BufferCopy2KHR) import {-# SOURCE #-} Vulkan.Core10.Buffer (BufferCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_buffer_device_address (BufferDeviceAddressCreateInfoEXT) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address (BufferDeviceAddressInfo) import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (BufferImageCopy)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (BufferImageCopy2KHR) import {-# SOURCE #-} Vulkan.Core10.OtherTypes (BufferMemoryBarrier) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2 (BufferMemoryRequirementsInfo2) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address (BufferOpaqueCaptureAddressCreateInfo)@@ -114,7 +117,11 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_cooperative_matrix (CooperativeMatrixPropertiesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing (CopyAccelerationStructureInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing (CopyAccelerationStructureToMemoryInfoKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (CopyBufferInfo2KHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (CopyBufferToImageInfo2KHR) import {-# SOURCE #-} Vulkan.Core10.DescriptorSet (CopyDescriptorSet)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (CopyImageInfo2KHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (CopyImageToBufferInfo2KHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing (CopyMemoryToAccelerationStructureInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_semaphore_win32 (D3D12FenceSubmitInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_debug_marker (DebugMarkerMarkerInfoEXT)@@ -231,7 +238,9 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_headless_surface (HeadlessSurfaceCreateInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_MVK_ios_surface (IOSSurfaceCreateInfoMVK) import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (ImageBlit)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (ImageBlit2KHR) import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (ImageCopy)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (ImageCopy2KHR) import {-# SOURCE #-} Vulkan.Core10.Image (ImageCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_drm_format_modifier (ImageDrmFormatModifierExplicitCreateInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_image_drm_format_modifier (ImageDrmFormatModifierListCreateInfoEXT)@@ -244,6 +253,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_imagepipe_surface (ImagePipeSurfaceCreateInfoFUCHSIA) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion (ImagePlaneMemoryRequirementsInfo) import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (ImageResolve)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (ImageResolve2KHR) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2 (ImageSparseMemoryRequirementsInfo2) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage (ImageStencilUsageCreateInfo) import {-# SOURCE #-} Vulkan.Core10.SparseResourceMemoryManagement (ImageSubresource)@@ -377,6 +387,8 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control (PhysicalDevicePipelineCreationCacheControlFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_executable_properties (PhysicalDevicePipelineExecutablePropertiesFeaturesKHR) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance2 (PhysicalDevicePointClippingProperties)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_portability_subset (PhysicalDevicePortabilitySubsetFeaturesKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_portability_subset (PhysicalDevicePortabilitySubsetPropertiesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_private_data (PhysicalDevicePrivateDataFeaturesEXT) import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (PhysicalDeviceProperties) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 (PhysicalDeviceProperties2)@@ -507,6 +519,7 @@ import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_multiview (RenderPassMultiviewCreateInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (RenderPassSampleLocationsBeginInfoEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_QCOM_render_pass_transform (RenderPassTransformBeginInfoQCOM)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (ResolveImageInfo2KHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (SampleLocationEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (SampleLocationsInfoEXT) import {-# SOURCE #-} Vulkan.Core10.Sampler (SamplerCreateInfo)@@ -802,6 +815,7 @@ Extends DeviceCreateInfo DeviceDiagnosticsConfigCreateInfoNV = () Extends DeviceCreateInfo PhysicalDeviceRobustness2FeaturesEXT = () Extends DeviceCreateInfo PhysicalDeviceImageRobustnessFeaturesEXT = ()+ Extends DeviceCreateInfo PhysicalDevicePortabilitySubsetFeaturesKHR = () Extends DeviceCreateInfo PhysicalDevice4444FormatsFeaturesEXT = () Extends DeviceQueueCreateInfo DeviceQueueGlobalPriorityCreateInfoEXT = () Extends FenceCreateInfo ExportFenceCreateInfo = ()@@ -919,6 +933,7 @@ Extends PhysicalDeviceFeatures2 PhysicalDeviceDiagnosticsConfigFeaturesNV = () Extends PhysicalDeviceFeatures2 PhysicalDeviceRobustness2FeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDeviceImageRobustnessFeaturesEXT = ()+ Extends PhysicalDeviceFeatures2 PhysicalDevicePortabilitySubsetFeaturesKHR = () Extends PhysicalDeviceFeatures2 PhysicalDevice4444FormatsFeaturesEXT = () Extends PhysicalDeviceImageFormatInfo2 PhysicalDeviceExternalImageFormatInfo = () Extends PhysicalDeviceImageFormatInfo2 ImageFormatListCreateInfo = ()@@ -968,6 +983,7 @@ Extends PhysicalDeviceProperties2 PhysicalDeviceVulkan12Properties = () Extends PhysicalDeviceProperties2 PhysicalDeviceCustomBorderColorPropertiesEXT = () Extends PhysicalDeviceProperties2 PhysicalDeviceRobustness2PropertiesEXT = ()+ Extends PhysicalDeviceProperties2 PhysicalDevicePortabilitySubsetPropertiesKHR = () Extends PhysicalDeviceSurfaceInfo2KHR SurfaceFullScreenExclusiveInfoEXT = () Extends PhysicalDeviceSurfaceInfo2KHR SurfaceFullScreenExclusiveWin32InfoEXT = () Extends PipelineColorBlendStateCreateInfo PipelineColorBlendAdvancedStateCreateInfoEXT = ()@@ -1381,6 +1397,8 @@ STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT -> go @PhysicalDeviceRobustness2FeaturesEXT STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT -> go @PhysicalDeviceRobustness2PropertiesEXT STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT -> go @PhysicalDeviceImageRobustnessFeaturesEXT+ STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR -> go @PhysicalDevicePortabilitySubsetFeaturesKHR+ STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR -> go @PhysicalDevicePortabilitySubsetPropertiesKHR STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT -> go @PhysicalDevice4444FormatsFeaturesEXT t -> throwIO $ IOError Nothing InvalidArgument "peekChainHead" ("Unrecognized struct type: " <> show t) Nothing Nothing where@@ -1678,6 +1696,8 @@ {-# complete (::&) :: PhysicalDeviceRobustness2FeaturesEXT #-} {-# complete (::&) :: PhysicalDeviceRobustness2PropertiesEXT #-} {-# complete (::&) :: PhysicalDeviceImageRobustnessFeaturesEXT #-}+{-# complete (::&) :: PhysicalDevicePortabilitySubsetFeaturesKHR #-}+{-# complete (::&) :: PhysicalDevicePortabilitySubsetPropertiesKHR #-} {-# complete (::&) :: PhysicalDevice4444FormatsFeaturesEXT #-} -- | View the head and tail of a 'Chain', see '::&'
src/Vulkan/Core10/CommandBufferBuilding.hs view
@@ -9209,8 +9209,11 @@ -- = See Also -- -- 'BufferImageCopy',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.BufferImageCopy2KHR', -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlags', 'ImageBlit',--- 'ImageCopy', 'ImageResolve'+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.ImageBlit2KHR', 'ImageCopy',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.ImageCopy2KHR', 'ImageResolve',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.ImageResolve2KHR' data ImageSubresourceLayers = ImageSubresourceLayers { -- | @aspectMask@ is a combination of -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits', selecting
src/Vulkan/Core10/DescriptorSet.hs view
@@ -981,6 +981,13 @@ -- or (for three-plane formats only) -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT' --+-- - If the @VK_KHR_portability_subset@ extension is enabled, and+-- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR'::@mutableComparisonSamplers@+-- is 'Vulkan.Core10.FundamentalTypes.FALSE', then @sampler@ /must/+-- have been created with+-- 'Vulkan.Core10.Sampler.SamplerCreateInfo'::@compareEnable@ set to+-- 'Vulkan.Core10.FundamentalTypes.FALSE'.+-- -- == Valid Usage (Implicit) -- -- - Both of @imageView@, and @sampler@ that are valid handles of
src/Vulkan/Core10/Device.hs view
@@ -118,6 +118,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_performance_query (PhysicalDevicePerformanceQueryFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control (PhysicalDevicePipelineCreationCacheControlFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_executable_properties (PhysicalDevicePipelineExecutablePropertiesFeaturesKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_portability_subset (PhysicalDevicePortabilitySubsetFeaturesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_private_data (PhysicalDevicePrivateDataFeaturesEXT) import {-# SOURCE #-} Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory (PhysicalDeviceProtectedMemoryFeatures) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing (PhysicalDeviceRayTracingFeaturesKHR)@@ -591,6 +592,11 @@ -- 'Vulkan.Core12.PhysicalDeviceVulkan12Features'::@shaderOutputLayer@ -- /must/ both be 'Vulkan.Core10.FundamentalTypes.TRUE' --+-- - If the @VK_KHR_portability_subset@ extension is included in+-- @pProperties@ of+-- 'Vulkan.Core10.ExtensionDiscovery.enumerateDeviceExtensionProperties',+-- @ppEnabledExtensions@ /must/ include \"VK_KHR_portability_subset\".+-- -- == Valid Usage (Implicit) -- -- - @sType@ /must/ be@@ -641,6 +647,7 @@ -- 'Vulkan.Extensions.VK_KHR_performance_query.PhysicalDevicePerformanceQueryFeaturesKHR', -- 'Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control.PhysicalDevicePipelineCreationCacheControlFeaturesEXT', -- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PhysicalDevicePipelineExecutablePropertiesFeaturesKHR',+-- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR', -- 'Vulkan.Extensions.VK_EXT_private_data.PhysicalDevicePrivateDataFeaturesEXT', -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.PhysicalDeviceProtectedMemoryFeatures', -- 'Vulkan.Extensions.VK_KHR_ray_tracing.PhysicalDeviceRayTracingFeaturesKHR',@@ -745,6 +752,7 @@ extends :: forall e b proxy. Typeable e => proxy e -> (Extends DeviceCreateInfo e => b) -> Maybe b extends _ f | Just Refl <- eqT @e @PhysicalDevice4444FormatsFeaturesEXT = Just f+ | Just Refl <- eqT @e @PhysicalDevicePortabilitySubsetFeaturesKHR = Just f | Just Refl <- eqT @e @PhysicalDeviceImageRobustnessFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceRobustness2FeaturesEXT = Just f | Just Refl <- eqT @e @DeviceDiagnosticsConfigCreateInfoNV = Just f
src/Vulkan/Core10/DeviceInitialization.hs view
@@ -4280,14 +4280,18 @@ standardSampleLocations :: Bool , -- | @optimalBufferCopyOffsetAlignment@ is the optimal buffer offset -- alignment in bytes for- -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyBufferToImage' and+ -- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdCopyBufferToImage2KHR',+ -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyBufferToImage',+ -- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdCopyImageToBuffer2KHR', and -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyImageToBuffer'. The per -- texel alignment requirements are enforced, but applications /should/ use -- the optimal alignment for optimal performance and power use. optimalBufferCopyOffsetAlignment :: DeviceSize , -- | @optimalBufferCopyRowPitchAlignment@ is the optimal buffer row pitch -- alignment in bytes for- -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyBufferToImage' and+ -- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdCopyBufferToImage2KHR',+ -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyBufferToImage',+ -- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdCopyImageToBuffer2KHR', and -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyImageToBuffer'. Row pitch is -- the number of bytes between texels with the same X coordinate in -- adjacent rows (Y coordinates differ by one). The per texel alignment
src/Vulkan/Core10/Enums/Filter.hs view
@@ -28,6 +28,7 @@ -- -- = See Also --+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.BlitImageInfo2KHR', -- 'Vulkan.Core10.Sampler.SamplerCreateInfo', -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.SamplerYcbcrConversionCreateInfo', -- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage'
src/Vulkan/Core10/Enums/FormatFeatureFlagBits.hs view
@@ -84,11 +84,13 @@ -- -- - 'FORMAT_FEATURE_BLIT_SRC_BIT' specifies that an image /can/ be used -- as @srcImage@ for the--- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' command.+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdBlitImage2KHR' and+-- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' commands. -- -- - 'FORMAT_FEATURE_BLIT_DST_BIT' specifies that an image /can/ be used -- as @dstImage@ for the--- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' command.+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdBlitImage2KHR' and+-- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' commands. -- -- - 'FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT' specifies that if -- 'FORMAT_FEATURE_SAMPLED_IMAGE_BIT' is also set, an image view /can/@@ -98,6 +100,7 @@ -- 'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'. -- If 'FORMAT_FEATURE_BLIT_SRC_BIT' is also set, an image can be used -- as the @srcImage@ to+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdBlitImage2KHR' and -- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' with a @filter@ -- of 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR'. This bit /must/ only -- be exposed for formats that also support the@@ -279,12 +282,14 @@ -- input attachment. pattern FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = FormatFeatureFlagBits 0x00000200 -- | 'FORMAT_FEATURE_BLIT_SRC_BIT' specifies that an image /can/ be used as--- @srcImage@ for the 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage'--- command.+-- @srcImage@ for the+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdBlitImage2KHR' and+-- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' commands. pattern FORMAT_FEATURE_BLIT_SRC_BIT = FormatFeatureFlagBits 0x00000400 -- | 'FORMAT_FEATURE_BLIT_DST_BIT' specifies that an image /can/ be used as--- @dstImage@ for the 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage'--- command.+-- @dstImage@ for the+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdBlitImage2KHR' and+-- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' commands. pattern FORMAT_FEATURE_BLIT_DST_BIT = FormatFeatureFlagBits 0x00000800 -- | 'FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT' specifies that if -- 'FORMAT_FEATURE_SAMPLED_IMAGE_BIT' is also set, an image view /can/ be@@ -292,9 +297,10 @@ -- 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR', or @mipmapMode@ set to -- 'Vulkan.Core10.Enums.SamplerMipmapMode.SAMPLER_MIPMAP_MODE_LINEAR'. If -- 'FORMAT_FEATURE_BLIT_SRC_BIT' is also set, an image can be used as the--- @srcImage@ to 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' with a--- @filter@ of 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR'. This bit /must/--- only be exposed for formats that also support the+-- @srcImage@ to 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdBlitImage2KHR'+-- and 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' with a @filter@+-- of 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR'. This bit /must/ only be+-- exposed for formats that also support the -- 'FORMAT_FEATURE_SAMPLED_IMAGE_BIT' or 'FORMAT_FEATURE_BLIT_SRC_BIT'. -- -- If the format being queried is a depth\/stencil format, this bit only
src/Vulkan/Core10/Enums/ImageLayout.hs view
@@ -66,9 +66,14 @@ -- 'Vulkan.Core10.Pass.AttachmentReference', -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.AttachmentReference2', -- 'Vulkan.Core12.Promoted_From_VK_KHR_separate_depth_stencil_layouts.AttachmentReferenceStencilLayout',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.BlitImageInfo2KHR',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.CopyBufferToImageInfo2KHR',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.CopyImageInfo2KHR',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.CopyImageToBufferInfo2KHR', -- 'Vulkan.Core10.DescriptorSet.DescriptorImageInfo', -- 'Vulkan.Core10.Image.ImageCreateInfo', -- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.ResolveImageInfo2KHR', -- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdBindShadingRateImageNV', -- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage', -- 'Vulkan.Core10.CommandBufferBuilding.cmdClearColorImage',
src/Vulkan/Core10/Enums/PipelineStageFlagBits.hs view
@@ -113,9 +113,11 @@ -- including -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyQueryPoolResults' ----- - 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage'+-- - 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdBlitImage2KHR' and+-- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage' ----- - 'Vulkan.Core10.CommandBufferBuilding.cmdResolveImage'+-- - 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdResolveImage2KHR' and+-- 'Vulkan.Core10.CommandBufferBuilding.cmdResolveImage' -- -- - All -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#clears clear commands>,
src/Vulkan/Core10/Enums/PrimitiveTopology.hs view
@@ -87,7 +87,12 @@ pattern PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = PrimitiveTopology 4 -- | 'PRIMITIVE_TOPOLOGY_TRIANGLE_FAN' specifies a series of -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-triangle-fans connected triangle primitives>--- with all triangles sharing a common vertex.+-- with all triangles sharing a common vertex. If the+-- @VK_KHR_portability_subset@ extension is enabled, and+-- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR'::@triangleFans@+-- is 'Vulkan.Core10.FundamentalTypes.FALSE', then triangle fans are not+-- supported by the implementation, and 'PRIMITIVE_TOPOLOGY_TRIANGLE_FAN'+-- /must/ not be used. pattern PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = PrimitiveTopology 5 -- | 'PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY' specifies a series of -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-line-lists-with-adjacency separate line primitives with adjacency>.
src/Vulkan/Core10/Enums/StructureType.hs view
@@ -50,6 +50,17 @@ , STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO , STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT+ , STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR+ , STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR+ , STRUCTURE_TYPE_IMAGE_BLIT_2_KHR+ , STRUCTURE_TYPE_IMAGE_COPY_2_KHR+ , STRUCTURE_TYPE_BUFFER_COPY_2_KHR+ , STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR+ , STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR+ , STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR+ , STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR+ , STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR+ , STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR , STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT , STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT@@ -172,6 +183,8 @@ , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV , STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV , STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR , STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT , STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT , STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT@@ -514,9 +527,12 @@ -- 'Vulkan.Extensions.VK_KHR_swapchain.BindImageMemorySwapchainInfoKHR', -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.BindImagePlaneMemoryInfo', -- 'Vulkan.Core10.SparseResourceMemoryManagement.BindSparseInfo',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.BlitImageInfo2KHR',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.BufferCopy2KHR', -- 'Vulkan.Core10.Buffer.BufferCreateInfo', -- 'Vulkan.Extensions.VK_EXT_buffer_device_address.BufferDeviceAddressCreateInfoEXT', -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.BufferDeviceAddressInfo',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.BufferImageCopy2KHR', -- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.BufferMemoryRequirementsInfo2', -- 'Vulkan.Core12.Promoted_From_VK_KHR_buffer_device_address.BufferOpaqueCaptureAddressCreateInfo',@@ -534,7 +550,11 @@ -- 'Vulkan.Extensions.VK_NV_cooperative_matrix.CooperativeMatrixPropertiesNV', -- 'Vulkan.Extensions.VK_KHR_ray_tracing.CopyAccelerationStructureInfoKHR', -- 'Vulkan.Extensions.VK_KHR_ray_tracing.CopyAccelerationStructureToMemoryInfoKHR',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.CopyBufferInfo2KHR',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.CopyBufferToImageInfo2KHR', -- 'Vulkan.Core10.DescriptorSet.CopyDescriptorSet',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.CopyImageInfo2KHR',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.CopyImageToBufferInfo2KHR', -- 'Vulkan.Extensions.VK_KHR_ray_tracing.CopyMemoryToAccelerationStructureInfoKHR', -- 'Vulkan.Extensions.VK_KHR_external_semaphore_win32.D3D12FenceSubmitInfoKHR', -- 'Vulkan.Extensions.VK_EXT_debug_marker.DebugMarkerMarkerInfoEXT',@@ -626,6 +646,8 @@ -- 'Vulkan.Extensions.VK_EXT_hdr_metadata.HdrMetadataEXT', -- 'Vulkan.Extensions.VK_EXT_headless_surface.HeadlessSurfaceCreateInfoEXT', -- 'Vulkan.Extensions.VK_MVK_ios_surface.IOSSurfaceCreateInfoMVK',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.ImageBlit2KHR',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.ImageCopy2KHR', -- 'Vulkan.Core10.Image.ImageCreateInfo', -- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.ImageDrmFormatModifierExplicitCreateInfoEXT', -- 'Vulkan.Extensions.VK_EXT_image_drm_format_modifier.ImageDrmFormatModifierListCreateInfoEXT',@@ -636,6 +658,7 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.ImageMemoryRequirementsInfo2', -- 'Vulkan.Extensions.VK_FUCHSIA_imagepipe_surface.ImagePipeSurfaceCreateInfoFUCHSIA', -- 'Vulkan.Core11.Promoted_From_VK_KHR_sampler_ycbcr_conversion.ImagePlaneMemoryRequirementsInfo',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.ImageResolve2KHR', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.ImageSparseMemoryRequirementsInfo2', -- 'Vulkan.Core12.Promoted_From_VK_EXT_separate_stencil_usage.ImageStencilUsageCreateInfo', -- 'Vulkan.Extensions.VK_KHR_swapchain.ImageSwapchainCreateInfoKHR',@@ -753,6 +776,8 @@ -- 'Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control.PhysicalDevicePipelineCreationCacheControlFeaturesEXT', -- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PhysicalDevicePipelineExecutablePropertiesFeaturesKHR', -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.PhysicalDevicePointClippingProperties',+-- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR',+-- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetPropertiesKHR', -- 'Vulkan.Extensions.VK_EXT_private_data.PhysicalDevicePrivateDataFeaturesEXT', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2', -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.PhysicalDeviceProtectedMemoryFeatures',@@ -872,6 +897,7 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_multiview.RenderPassMultiviewCreateInfo', -- 'Vulkan.Extensions.VK_EXT_sample_locations.RenderPassSampleLocationsBeginInfoEXT', -- 'Vulkan.Extensions.VK_QCOM_render_pass_transform.RenderPassTransformBeginInfoQCOM',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.ResolveImageInfo2KHR', -- 'Vulkan.Extensions.VK_EXT_sample_locations.SampleLocationsInfoEXT', -- 'Vulkan.Core10.Sampler.SamplerCreateInfo', -- 'Vulkan.Extensions.VK_EXT_custom_border_color.SamplerCustomBorderColorCreateInfoEXT',@@ -1027,6 +1053,28 @@ pattern STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT = StructureType 1000346000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT = StructureType 1000340000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR"+pattern STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR = StructureType 1000337010+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR"+pattern STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR = StructureType 1000337009+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR"+pattern STRUCTURE_TYPE_IMAGE_BLIT_2_KHR = StructureType 1000337008+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR"+pattern STRUCTURE_TYPE_IMAGE_COPY_2_KHR = StructureType 1000337007+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR"+pattern STRUCTURE_TYPE_BUFFER_COPY_2_KHR = StructureType 1000337006+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR"+pattern STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR = StructureType 1000337005+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR"+pattern STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR = StructureType 1000337004+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR"+pattern STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR = StructureType 1000337003+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR"+pattern STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR = StructureType 1000337002+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR"+pattern STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR = StructureType 1000337001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR"+pattern STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR = StructureType 1000337000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT = StructureType 1000335000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT"@@ -1271,6 +1319,10 @@ pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV = StructureType 1000164001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV" pattern STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV = StructureType 1000164000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR = StructureType 1000163001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR = StructureType 1000163000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT" pattern STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = StructureType 1000160001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT"@@ -1862,6 +1914,17 @@ STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO, STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT, STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT,+ STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR,+ STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR,+ STRUCTURE_TYPE_IMAGE_BLIT_2_KHR,+ STRUCTURE_TYPE_IMAGE_COPY_2_KHR,+ STRUCTURE_TYPE_BUFFER_COPY_2_KHR,+ STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR,+ STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR,+ STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR,+ STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR,+ STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR,+ STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR, STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT, STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT, STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT,@@ -1984,6 +2047,8 @@ STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV, STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV, STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR, STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT, STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT, STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT,@@ -2308,6 +2373,17 @@ STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO -> showString "STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO" STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT -> showString "STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT" STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT -> showString "STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT"+ STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR -> showString "STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR"+ STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR -> showString "STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR"+ STRUCTURE_TYPE_IMAGE_BLIT_2_KHR -> showString "STRUCTURE_TYPE_IMAGE_BLIT_2_KHR"+ STRUCTURE_TYPE_IMAGE_COPY_2_KHR -> showString "STRUCTURE_TYPE_IMAGE_COPY_2_KHR"+ STRUCTURE_TYPE_BUFFER_COPY_2_KHR -> showString "STRUCTURE_TYPE_BUFFER_COPY_2_KHR"+ STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR -> showString "STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR"+ STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR -> showString "STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR"+ STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR -> showString "STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR"+ STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR -> showString "STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR"+ STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR -> showString "STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR"+ STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR -> showString "STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR" STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT -> showString "STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT" STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT -> showString "STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT" STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT -> showString "STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT"@@ -2430,6 +2506,8 @@ STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV -> showString "STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV" STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV -> showString "STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV" STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV -> showString "STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV"+ STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR -> showString "STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR"+ STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR -> showString "STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR" STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT -> showString "STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT" STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT -> showString "STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT" STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT -> showString "STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT"@@ -2754,6 +2832,17 @@ , ("STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO", pure STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO) , ("STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT", pure STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT) , ("STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT", pure STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT)+ , ("STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR", pure STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR)+ , ("STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR", pure STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR)+ , ("STRUCTURE_TYPE_IMAGE_BLIT_2_KHR", pure STRUCTURE_TYPE_IMAGE_BLIT_2_KHR)+ , ("STRUCTURE_TYPE_IMAGE_COPY_2_KHR", pure STRUCTURE_TYPE_IMAGE_COPY_2_KHR)+ , ("STRUCTURE_TYPE_BUFFER_COPY_2_KHR", pure STRUCTURE_TYPE_BUFFER_COPY_2_KHR)+ , ("STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR", pure STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR)+ , ("STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR", pure STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR)+ , ("STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR", pure STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR)+ , ("STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR", pure STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR)+ , ("STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR", pure STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR)+ , ("STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR", pure STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR) , ("STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT", pure STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT) , ("STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT", pure STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT) , ("STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT", pure STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT)@@ -2876,6 +2965,8 @@ , ("STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV", pure STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV) , ("STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV", pure STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV) , ("STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV", pure STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV)+ , ("STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR", pure STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR)+ , ("STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR", pure STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR) , ("STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT", pure STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT) , ("STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT", pure STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT) , ("STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT", pure STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT)
src/Vulkan/Core10/Event.hs view
@@ -75,6 +75,15 @@ -- -- When created, the event object is in the unsignaled state. --+-- == Valid Usage+--+-- - If the @VK_KHR_portability_subset@ extension is enabled, and+-- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR'::@events@+-- is 'Vulkan.Core10.FundamentalTypes.FALSE', then the implementation+-- does not support+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-events events>,+-- and 'createEvent' /must/ not be used.+-- -- == Valid Usage (Implicit) -- -- - @device@ /must/ be a valid 'Vulkan.Core10.Handles.Device' handle
src/Vulkan/Core10/FundamentalTypes.hs view
@@ -118,9 +118,13 @@ -- = See Also -- -- 'Vulkan.Core10.CommandBufferBuilding.BufferImageCopy',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.BufferImageCopy2KHR', -- 'Vulkan.Core10.CommandBufferBuilding.ImageBlit',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.ImageBlit2KHR', -- 'Vulkan.Core10.CommandBufferBuilding.ImageCopy',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.ImageCopy2KHR', -- 'Vulkan.Core10.CommandBufferBuilding.ImageResolve',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.ImageResolve2KHR', -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageMemoryBind' data Offset3D = Offset3D { -- | @x@ is the x offset.@@ -239,10 +243,13 @@ -- = See Also -- -- 'Vulkan.Core10.CommandBufferBuilding.BufferImageCopy',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.BufferImageCopy2KHR', -- 'Vulkan.Core10.CommandBufferBuilding.ImageCopy',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.ImageCopy2KHR', -- 'Vulkan.Core10.Image.ImageCreateInfo', -- 'Vulkan.Core10.DeviceInitialization.ImageFormatProperties', -- 'Vulkan.Core10.CommandBufferBuilding.ImageResolve',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.ImageResolve2KHR', -- 'Vulkan.Core10.DeviceInitialization.QueueFamilyProperties', -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageFormatProperties', -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageMemoryBind'@@ -434,6 +441,7 @@ -- 'Vulkan.Extensions.VK_KHR_performance_query.PhysicalDevicePerformanceQueryPropertiesKHR', -- 'Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control.PhysicalDevicePipelineCreationCacheControlFeaturesEXT', -- 'Vulkan.Extensions.VK_KHR_pipeline_executable_properties.PhysicalDevicePipelineExecutablePropertiesFeaturesKHR',+-- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR', -- 'Vulkan.Extensions.VK_EXT_private_data.PhysicalDevicePrivateDataFeaturesEXT', -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.PhysicalDeviceProtectedMemoryFeatures', -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.PhysicalDeviceProtectedMemoryProperties',@@ -600,8 +608,10 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2.BindBufferMemoryInfo', -- 'Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2.BindImageMemoryInfo', -- 'Vulkan.Core10.CommandBufferBuilding.BufferCopy',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.BufferCopy2KHR', -- 'Vulkan.Core10.Buffer.BufferCreateInfo', -- 'Vulkan.Core10.CommandBufferBuilding.BufferImageCopy',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.BufferImageCopy2KHR', -- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier', -- 'Vulkan.Core10.BufferView.BufferViewCreateInfo', -- 'Vulkan.Extensions.VK_EXT_conditional_rendering.ConditionalRenderingBeginInfoEXT',
src/Vulkan/Core10/FundamentalTypes.hs-boot view
@@ -83,8 +83,10 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2.BindBufferMemoryInfo', -- 'Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2.BindImageMemoryInfo', -- 'Vulkan.Core10.CommandBufferBuilding.BufferCopy',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.BufferCopy2KHR', -- 'Vulkan.Core10.Buffer.BufferCreateInfo', -- 'Vulkan.Core10.CommandBufferBuilding.BufferImageCopy',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.BufferImageCopy2KHR', -- 'Vulkan.Core10.OtherTypes.BufferMemoryBarrier', -- 'Vulkan.Core10.BufferView.BufferViewCreateInfo', -- 'Vulkan.Extensions.VK_EXT_conditional_rendering.ConditionalRenderingBeginInfoEXT',
src/Vulkan/Core10/Handles.hs view
@@ -478,6 +478,7 @@ -- 'Vulkan.Core10.CommandBufferBuilding.cmdBindVertexBuffers', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.cmdBindVertexBuffers2EXT', -- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdBlitImage2KHR', -- 'Vulkan.Extensions.VK_KHR_ray_tracing.cmdBuildAccelerationStructureIndirectKHR', -- 'Vulkan.Extensions.VK_KHR_ray_tracing.cmdBuildAccelerationStructureKHR', -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdBuildAccelerationStructureNV',@@ -488,9 +489,13 @@ -- 'Vulkan.Extensions.VK_NV_ray_tracing.cmdCopyAccelerationStructureNV', -- 'Vulkan.Extensions.VK_KHR_ray_tracing.cmdCopyAccelerationStructureToMemoryKHR', -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyBuffer',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdCopyBuffer2KHR', -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyBufferToImage',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdCopyBufferToImage2KHR', -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyImage',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdCopyImage2KHR', -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyImageToBuffer',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdCopyImageToBuffer2KHR', -- 'Vulkan.Extensions.VK_KHR_ray_tracing.cmdCopyMemoryToAccelerationStructureKHR', -- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyQueryPoolResults', -- 'Vulkan.Extensions.VK_EXT_debug_marker.cmdDebugMarkerBeginEXT',@@ -537,6 +542,7 @@ -- 'Vulkan.Core10.CommandBufferBuilding.cmdResetEvent', -- 'Vulkan.Core10.CommandBufferBuilding.cmdResetQueryPool', -- 'Vulkan.Core10.CommandBufferBuilding.cmdResolveImage',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.cmdResolveImage2KHR', -- 'Vulkan.Core10.CommandBufferBuilding.cmdSetBlendConstants', -- 'Vulkan.Extensions.VK_NV_device_diagnostic_checkpoints.cmdSetCheckpointNV', -- 'Vulkan.Extensions.VK_NV_shading_rate_image.cmdSetCoarseSampleOrderNV',@@ -657,6 +663,9 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.BufferMemoryRequirementsInfo2', -- 'Vulkan.Core10.BufferView.BufferViewCreateInfo', -- 'Vulkan.Extensions.VK_EXT_conditional_rendering.ConditionalRenderingBeginInfoEXT',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.CopyBufferInfo2KHR',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.CopyBufferToImageInfo2KHR',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.CopyImageToBufferInfo2KHR', -- 'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationMemoryAllocateInfoNV', -- 'Vulkan.Core10.DescriptorSet.DescriptorBufferInfo', -- 'Vulkan.Extensions.VK_NV_device_generated_commands.GeneratedCommandsInfoNV',@@ -729,12 +738,17 @@ -- = See Also -- -- 'Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2.BindImageMemoryInfo',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.BlitImageInfo2KHR',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.CopyBufferToImageInfo2KHR',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.CopyImageInfo2KHR',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.CopyImageToBufferInfo2KHR', -- 'Vulkan.Extensions.VK_NV_dedicated_allocation.DedicatedAllocationMemoryAllocateInfoNV', -- 'Vulkan.Core10.OtherTypes.ImageMemoryBarrier', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.ImageMemoryRequirementsInfo2', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.ImageSparseMemoryRequirementsInfo2', -- 'Vulkan.Core10.ImageView.ImageViewCreateInfo', -- 'Vulkan.Core11.Promoted_From_VK_KHR_dedicated_allocation.MemoryDedicatedAllocateInfo',+-- 'Vulkan.Extensions.VK_KHR_copy_commands2.ResolveImageInfo2KHR', -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageMemoryBindInfo', -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageOpaqueMemoryBindInfo', -- 'Vulkan.Core10.MemoryManagement.bindImageMemory',
src/Vulkan/Core10/Image.hs view
@@ -310,6 +310,23 @@ -- @arrayLayers@ specified in 'ImageCreateInfo' when @image@ was -- created --+-- - If @format@ is a color format, the @aspectMask@ member of+-- @pSubresource@ /must/ be+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'+--+-- - If @format@ has a depth component, the @aspectMask@ member of+-- @pSubresource@ /must/ contain+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT'+--+-- - If @format@ has a stencil component, the @aspectMask@ member of+-- @pSubresource@ /must/ contain+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'+--+-- - If @format@ does not contain a stencil or depth component, the+-- @aspectMask@ member of @pSubresource@ /must/ not contain+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_DEPTH_BIT' or+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_STENCIL_BIT'+-- -- - If the @tiling@ of the @image@ is -- 'Vulkan.Core10.Enums.ImageTiling.IMAGE_TILING_LINEAR' and its -- @format@ is a@@ -1223,6 +1240,18 @@ -- - If @flags@ contains -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT', -- @mipLevels@ /must/ be @1@+--+-- - If the @VK_KHR_portability_subset@ extension is enabled, and+-- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR'::@imageView2DOn3DImage@+-- is 'Vulkan.Core10.FundamentalTypes.FALSE', @flags@ /must/ not+-- contain+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT'.+--+-- - If the @VK_KHR_portability_subset@ extension is enabled, and+-- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR'::@multisampleArrayImage@+-- is 'Vulkan.Core10.FundamentalTypes.FALSE', and @samples@ is not+-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT', then+-- @arrayLayers@ /must/ be @1@. -- -- = Valid Usage (Implicit) --
src/Vulkan/Core10/ImageView.hs view
@@ -1069,6 +1069,20 @@ -- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', the remaining -- number of layers /must/ be a multiple of @6@ --+-- - If the @VK_KHR_portability_subset@ extension is enabled, and+-- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR'::@imageViewFormatSwizzle@+-- is 'Vulkan.Core10.FundamentalTypes.FALSE', all elements of+-- @components@ /must/ be+-- 'Vulkan.Core10.Enums.ComponentSwizzle.COMPONENT_SWIZZLE_IDENTITY'.+--+-- - If the @VK_KHR_portability_subset@ extension is enabled, and+-- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR'::@imageViewFormatReinterpretation@+-- is 'Vulkan.Core10.FundamentalTypes.FALSE', the+-- 'Vulkan.Core10.Enums.Format.Format' in @format@ /must/ not contain a+-- different number of components, or a different number of bits in+-- each component, than the format of the 'Vulkan.Core10.Handles.Image'+-- in @image@.+-- -- == Valid Usage (Implicit) -- -- - @sType@ /must/ be
src/Vulkan/Core10/Pipeline.hs view
@@ -37,8 +37,6 @@ , PrimitiveTopology(..) , CompareOp(..) , PolygonMode(..)- , CullModeFlagBits(..)- , CullModeFlags , FrontFace(..) , BlendFactor(..) , BlendOp(..)@@ -46,6 +44,8 @@ , LogicOp(..) , VertexInputRate(..) , DynamicState(..)+ , CullModeFlagBits(..)+ , CullModeFlags , ShaderStageFlagBits(..) , ShaderStageFlags , PipelineCreateFlagBits(..)@@ -1387,30 +1387,36 @@ -- | VkVertexInputBindingDescription - Structure specifying vertex input -- binding description --+-- == Valid Usage+--+-- - @binding@ /must/ be less than+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindings@+--+-- - @stride@ /must/ be less than or equal to+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindingStride@+--+-- - If the @VK_KHR_portability_subset@ extension is enabled, @stride@+-- /must/ be a multiple of, and at least as large as,+-- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetPropertiesKHR'::@minVertexInputBindingStrideAlignment@.+-- -- == Valid Usage (Implicit) --+-- - @inputRate@ /must/ be a valid+-- 'Vulkan.Core10.Enums.VertexInputRate.VertexInputRate' value+-- -- = See Also -- -- 'PipelineVertexInputStateCreateInfo', -- 'Vulkan.Core10.Enums.VertexInputRate.VertexInputRate' data VertexInputBindingDescription = VertexInputBindingDescription { -- | @binding@ is the binding number that this structure describes.- --- -- @binding@ /must/ be less than- -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindings@ binding :: Word32 , -- | @stride@ is the distance in bytes between two consecutive elements -- within the buffer.- --- -- @stride@ /must/ be less than or equal to- -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindingStride@ stride :: Word32 , -- | @inputRate@ is a 'Vulkan.Core10.Enums.VertexInputRate.VertexInputRate' -- value specifying whether vertex attribute addressing is a function of -- the vertex index or of the instance index.- --- -- @inputRate@ /must/ be a valid- -- 'Vulkan.Core10.Enums.VertexInputRate.VertexInputRate' value inputRate :: VertexInputRate } deriving (Typeable, Eq)@@ -1458,41 +1464,50 @@ -- | VkVertexInputAttributeDescription - Structure specifying vertex input -- attribute description --+-- == Valid Usage+--+-- - @location@ /must/ be less than+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputAttributes@+--+-- - @binding@ /must/ be less than+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindings@+--+-- - @offset@ /must/ be less than or equal to+-- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputAttributeOffset@+--+-- - @format@ /must/ be allowed as a vertex buffer format, as specified+-- by the+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_VERTEX_BUFFER_BIT'+-- flag in+-- 'Vulkan.Core10.DeviceInitialization.FormatProperties'::@bufferFeatures@+-- returned by+-- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceFormatProperties'+--+-- - If the @VK_KHR_portability_subset@ extension is enabled, and+-- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR'::@vertexAttributeAccessBeyondStride@+-- is 'Vulkan.Core10.FundamentalTypes.FALSE', the sum of @offset@ plus+-- the size of the vertex attribute data described by @format@ /must/+-- not be greater than @stride@ in the 'VertexInputBindingDescription'+-- referenced in @binding@.+-- -- == Valid Usage (Implicit) --+-- - @format@ /must/ be a valid 'Vulkan.Core10.Enums.Format.Format' value+-- -- = See Also -- -- 'Vulkan.Core10.Enums.Format.Format', -- 'PipelineVertexInputStateCreateInfo' data VertexInputAttributeDescription = VertexInputAttributeDescription { -- | @location@ is the shader binding location number for this attribute.- --- -- @location@ /must/ be less than- -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputAttributes@ location :: Word32 , -- | @binding@ is the binding number which this attribute takes its data -- from.- --- -- @binding@ /must/ be less than- -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputBindings@ binding :: Word32 , -- | @format@ is the size and type of the vertex attribute data.- --- -- @format@ /must/ be allowed as a vertex buffer format, as specified by- -- the- -- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_VERTEX_BUFFER_BIT'- -- flag in- -- 'Vulkan.Core10.DeviceInitialization.FormatProperties'::@bufferFeatures@- -- returned by- -- 'Vulkan.Core10.DeviceInitialization.getPhysicalDeviceFormatProperties'- --- -- @format@ /must/ be a valid 'Vulkan.Core10.Enums.Format.Format' value format :: Format , -- | @offset@ is a byte offset of this attribute relative to the start of an -- element in the vertex input binding.- --- -- @offset@ /must/ be less than or equal to- -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxVertexInputAttributeOffset@ offset :: Word32 } deriving (Typeable, Eq)@@ -1711,6 +1726,11 @@ -- feature is not enabled, @topology@ /must/ not be -- 'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_PATCH_LIST' --+-- - If the @VK_KHR_portability_subset@ extension is enabled, and+-- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR'::@triangleFans@+-- is 'Vulkan.Core10.FundamentalTypes.FALSE', @topology@ /must/ not be+-- 'Vulkan.Core10.Enums.PrimitiveTopology.PRIMITIVE_TOPOLOGY_TRIANGLE_FAN'.+-- -- == Valid Usage (Implicit) -- -- - @sType@ /must/ be@@ -2103,6 +2123,13 @@ -- @polygonMode@ /must/ not be -- 'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_FILL_RECTANGLE_NV' --+-- - If the @VK_KHR_portability_subset@ extension is enabled, and+-- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR'::@pointPolygons@+-- is 'Vulkan.Core10.FundamentalTypes.FALSE', and+-- @rasterizerDiscardEnable@ is 'Vulkan.Core10.FundamentalTypes.FALSE',+-- @polygonMode@ /must/ not be+-- 'Vulkan.Core10.Enums.PolygonMode.POLYGON_MODE_POINT'.+-- -- == Valid Usage (Implicit) -- -- - @sType@ /must/ be@@ -2550,6 +2577,20 @@ -- or equal to -- 'Vulkan.Extensions.VK_EXT_blend_operation_advanced.PhysicalDeviceBlendOperationAdvancedPropertiesEXT'::advancedBlendMaxColorAttachments --+-- - If the @VK_KHR_portability_subset@ extension is enabled, and+-- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR'::@constantAlphaColorBlendFactors@+-- is 'Vulkan.Core10.FundamentalTypes.FALSE', @srcColorBlendFactor@+-- /must/ not be+-- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_ALPHA' or+-- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA'.+--+-- - If the @VK_KHR_portability_subset@ extension is enabled, and+-- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR'::@constantAlphaColorBlendFactors@+-- is 'Vulkan.Core10.FundamentalTypes.FALSE', @dstColorBlendFactor@+-- /must/ not be+-- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_CONSTANT_ALPHA' or+-- 'Vulkan.Core10.Enums.BlendFactor.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA'.+-- -- == Valid Usage (Implicit) -- -- - @srcColorBlendFactor@ /must/ be a valid@@ -3018,6 +3059,16 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-depthBounds depth bounds testing> -- feature is not enabled, @depthBoundsTestEnable@ /must/ be -- 'Vulkan.Core10.FundamentalTypes.FALSE'+--+-- - If the @VK_KHR_portability_subset@ extension is enabled, and+-- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR'::@separateStencilMaskRef@+-- is 'Vulkan.Core10.FundamentalTypes.FALSE', and the value of+-- 'PipelineDepthStencilStateCreateInfo'::@stencilTestEnable@ is+-- 'Vulkan.Core10.FundamentalTypes.TRUE', and the value of+-- 'PipelineRasterizationStateCreateInfo'::@cullMode@ is+-- 'Vulkan.Core10.Enums.CullModeFlagBits.CULL_MODE_NONE', the value of+-- @reference@ in each of the 'StencilOpState' structs in @front@ and+-- @back@ /must/ be the same. -- -- == Valid Usage (Implicit) --
src/Vulkan/Core10/Sampler.hs view
@@ -302,6 +302,11 @@ -- - The absolute value of @mipLodBias@ /must/ be less than or equal to -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceLimits'::@maxSamplerLodBias@ --+-- - If the @VK_KHR_portability_subset@ extension is enabled, and+-- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetFeaturesKHR'::@samplerMipLodBias@+-- is 'Vulkan.Core10.FundamentalTypes.FALSE', @mipLodBias@ /must/ be+-- zero.+-- -- - @maxLod@ /must/ be greater than or equal to @minLod@ -- -- - If the
src/Vulkan/Core11/Enums/PeerMemoryFeatureFlagBits.hs view
@@ -52,18 +52,10 @@ deriving newtype (Eq, Ord, Storable, Zero, Bits) -- | 'PEER_MEMORY_FEATURE_COPY_SRC_BIT' specifies that the memory /can/ be--- accessed as the source of a--- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyBuffer',--- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyImage',--- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyBufferToImage', or--- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyImageToBuffer' command.+-- accessed as the source of any @vkCmdCopy*@ command. pattern PEER_MEMORY_FEATURE_COPY_SRC_BIT = PeerMemoryFeatureFlagBits 0x00000001 -- | 'PEER_MEMORY_FEATURE_COPY_DST_BIT' specifies that the memory /can/ be--- accessed as the destination of a--- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyBuffer',--- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyImage',--- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyBufferToImage', or--- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyImageToBuffer' command.+-- accessed as the destination of any @vkCmdCopy*@ command. pattern PEER_MEMORY_FEATURE_COPY_DST_BIT = PeerMemoryFeatureFlagBits 0x00000002 -- | 'PEER_MEMORY_FEATURE_GENERIC_SRC_BIT' specifies that the memory /can/ be -- read as any memory access type.
src/Vulkan/Core11/Promoted_From_VK_KHR_external_memory_capabilities.hs view
@@ -524,7 +524,7 @@ -- or the same Vulkan driver running on two logically different devices). -- -- Khronos\' conformance testing can not guarantee that @deviceUUID@ values--- are actually unique, so implementers should make their own best efforts+-- are actually unique, so implementors should make their own best efforts -- to ensure this. In particular, hard-coded @deviceUUID@ values, -- especially all-@0@ bits, /should/ never be used. --
src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs view
@@ -150,6 +150,8 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_pipeline_creation_cache_control (PhysicalDevicePipelineCreationCacheControlFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_pipeline_executable_properties (PhysicalDevicePipelineExecutablePropertiesFeaturesKHR) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_maintenance2 (PhysicalDevicePointClippingProperties)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_portability_subset (PhysicalDevicePortabilitySubsetFeaturesKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_portability_subset (PhysicalDevicePortabilitySubsetPropertiesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_private_data (PhysicalDevicePrivateDataFeaturesEXT) import Vulkan.Core10.DeviceInitialization (PhysicalDeviceProperties) import {-# SOURCE #-} Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory (PhysicalDeviceProtectedMemoryFeatures)@@ -642,6 +644,7 @@ extends :: forall e b proxy. Typeable e => proxy e -> (Extends PhysicalDeviceFeatures2 e => b) -> Maybe b extends _ f | Just Refl <- eqT @e @PhysicalDevice4444FormatsFeaturesEXT = Just f+ | Just Refl <- eqT @e @PhysicalDevicePortabilitySubsetFeaturesKHR = Just f | Just Refl <- eqT @e @PhysicalDeviceImageRobustnessFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceRobustness2FeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceDiagnosticsConfigFeaturesNV = Just f@@ -781,6 +784,7 @@ -- 'Vulkan.Extensions.VK_EXT_pci_bus_info.PhysicalDevicePCIBusInfoPropertiesEXT', -- 'Vulkan.Extensions.VK_KHR_performance_query.PhysicalDevicePerformanceQueryPropertiesKHR', -- 'Vulkan.Core11.Promoted_From_VK_KHR_maintenance2.PhysicalDevicePointClippingProperties',+-- 'Vulkan.Extensions.VK_KHR_portability_subset.PhysicalDevicePortabilitySubsetPropertiesKHR', -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.PhysicalDeviceProtectedMemoryProperties', -- 'Vulkan.Extensions.VK_KHR_push_descriptor.PhysicalDevicePushDescriptorPropertiesKHR', -- 'Vulkan.Extensions.VK_KHR_ray_tracing.PhysicalDeviceRayTracingPropertiesKHR',@@ -832,6 +836,7 @@ getNext PhysicalDeviceProperties2{..} = next extends :: forall e b proxy. Typeable e => proxy e -> (Extends PhysicalDeviceProperties2 e => b) -> Maybe b extends _ f+ | Just Refl <- eqT @e @PhysicalDevicePortabilitySubsetPropertiesKHR = Just f | Just Refl <- eqT @e @PhysicalDeviceRobustness2PropertiesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceCustomBorderColorPropertiesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceVulkan12Properties = Just f
src/Vulkan/Core12/Promoted_From_VK_KHR_create_renderpass2.hs view
@@ -1802,8 +1802,8 @@ -- 'SubpassDescription2' structures describing each subpass. subpasses :: Vector (SomeStruct SubpassDescription2) , -- | @pDependencies@ is a pointer to an array of @dependencyCount@- -- 'Vulkan.Core10.Pass.SubpassDependency' structures describing- -- dependencies between pairs of subpasses.+ -- 'SubpassDependency2' structures describing dependencies between pairs of+ -- subpasses. dependencies :: Vector SubpassDependency2 , -- | @pCorrelatedViewMasks@ is a pointer to an array of view masks indicating -- sets of views that /may/ be more efficient to render concurrently.
src/Vulkan/Dynamic.hs view
@@ -44,6 +44,7 @@ import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2 (BindBufferMemoryInfo) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_bind_memory2 (BindImageMemoryInfo) import {-# SOURCE #-} Vulkan.Core10.SparseResourceMemoryManagement (BindSparseInfo)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (BlitImageInfo2KHR) import {-# SOURCE #-} Vulkan.Core10.FundamentalTypes (Bool32) import {-# SOURCE #-} Vulkan.Core10.Handles (Buffer) import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (BufferCopy)@@ -77,7 +78,11 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing (CopyAccelerationStructureInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing (CopyAccelerationStructureModeKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing (CopyAccelerationStructureToMemoryInfoKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (CopyBufferInfo2KHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (CopyBufferToImageInfo2KHR) import {-# SOURCE #-} Vulkan.Core10.DescriptorSet (CopyDescriptorSet)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (CopyImageInfo2KHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (CopyImageToBufferInfo2KHR) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_ray_tracing (CopyMemoryToAccelerationStructureInfoKHR) import {-# SOURCE #-} Vulkan.Core10.Enums.CullModeFlagBits (CullModeFlags) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_debug_marker (DebugMarkerMarkerInfoEXT)@@ -277,6 +282,7 @@ import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (RenderPassBeginInfo) import {-# SOURCE #-} Vulkan.Core10.Pass (RenderPassCreateInfo) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2 (RenderPassCreateInfo2)+import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_copy_commands2 (ResolveImageInfo2KHR) import {-# SOURCE #-} Vulkan.Core10.Enums.Result (Result) import {-# SOURCE #-} Vulkan.Core10.Enums.SampleCountFlagBits (SampleCountFlagBits) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (SampleLocationsInfoEXT)@@ -913,6 +919,12 @@ , pVkDestroyPrivateDataSlotEXT :: FunPtr (Ptr Device_T -> PrivateDataSlotEXT -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) , pVkSetPrivateDataEXT :: FunPtr (Ptr Device_T -> ObjectType -> ("objectHandle" ::: Word64) -> PrivateDataSlotEXT -> ("data" ::: Word64) -> IO Result) , pVkGetPrivateDataEXT :: FunPtr (Ptr Device_T -> ObjectType -> ("objectHandle" ::: Word64) -> PrivateDataSlotEXT -> ("pData" ::: Ptr Word64) -> IO ())+ , pVkCmdCopyBuffer2KHR :: FunPtr (Ptr CommandBuffer_T -> ("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR) -> IO ())+ , pVkCmdCopyImage2KHR :: FunPtr (Ptr CommandBuffer_T -> ("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR) -> IO ())+ , pVkCmdBlitImage2KHR :: FunPtr (Ptr CommandBuffer_T -> ("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR) -> IO ())+ , pVkCmdCopyBufferToImage2KHR :: FunPtr (Ptr CommandBuffer_T -> ("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR) -> IO ())+ , pVkCmdCopyImageToBuffer2KHR :: FunPtr (Ptr CommandBuffer_T -> ("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR) -> IO ())+ , pVkCmdResolveImage2KHR :: FunPtr (Ptr CommandBuffer_T -> ("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR) -> IO ()) } deriving instance Eq DeviceCmds@@ -957,7 +969,7 @@ nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr- nullFunPtr+ nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr foreign import ccall #if !defined(SAFE_FOREIGN_CALLS)@@ -1275,6 +1287,12 @@ vkDestroyPrivateDataSlotEXT <- getDeviceProcAddr' handle (Ptr "vkDestroyPrivateDataSlotEXT"#) vkSetPrivateDataEXT <- getDeviceProcAddr' handle (Ptr "vkSetPrivateDataEXT"#) vkGetPrivateDataEXT <- getDeviceProcAddr' handle (Ptr "vkGetPrivateDataEXT"#)+ vkCmdCopyBuffer2KHR <- getDeviceProcAddr' handle (Ptr "vkCmdCopyBuffer2KHR"#)+ vkCmdCopyImage2KHR <- getDeviceProcAddr' handle (Ptr "vkCmdCopyImage2KHR"#)+ vkCmdBlitImage2KHR <- getDeviceProcAddr' handle (Ptr "vkCmdBlitImage2KHR"#)+ vkCmdCopyBufferToImage2KHR <- getDeviceProcAddr' handle (Ptr "vkCmdCopyBufferToImage2KHR"#)+ vkCmdCopyImageToBuffer2KHR <- getDeviceProcAddr' handle (Ptr "vkCmdCopyImageToBuffer2KHR"#)+ vkCmdResolveImage2KHR <- getDeviceProcAddr' handle (Ptr "vkCmdResolveImage2KHR"#) pure $ DeviceCmds handle (castFunPtr @_ @(Ptr Device_T -> ("pName" ::: Ptr CChar) -> IO PFN_vkVoidFunction) vkGetDeviceProcAddr) (castFunPtr @_ @(Ptr Device_T -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyDevice)@@ -1580,4 +1598,10 @@ (castFunPtr @_ @(Ptr Device_T -> PrivateDataSlotEXT -> ("pAllocator" ::: Ptr AllocationCallbacks) -> IO ()) vkDestroyPrivateDataSlotEXT) (castFunPtr @_ @(Ptr Device_T -> ObjectType -> ("objectHandle" ::: Word64) -> PrivateDataSlotEXT -> ("data" ::: Word64) -> IO Result) vkSetPrivateDataEXT) (castFunPtr @_ @(Ptr Device_T -> ObjectType -> ("objectHandle" ::: Word64) -> PrivateDataSlotEXT -> ("pData" ::: Ptr Word64) -> IO ()) vkGetPrivateDataEXT)+ (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pCopyBufferInfo" ::: Ptr CopyBufferInfo2KHR) -> IO ()) vkCmdCopyBuffer2KHR)+ (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pCopyImageInfo" ::: Ptr CopyImageInfo2KHR) -> IO ()) vkCmdCopyImage2KHR)+ (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pBlitImageInfo" ::: Ptr BlitImageInfo2KHR) -> IO ()) vkCmdBlitImage2KHR)+ (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pCopyBufferToImageInfo" ::: Ptr CopyBufferToImageInfo2KHR) -> IO ()) vkCmdCopyBufferToImage2KHR)+ (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pCopyImageToBufferInfo" ::: Ptr CopyImageToBufferInfo2KHR) -> IO ()) vkCmdCopyImageToBuffer2KHR)+ (castFunPtr @_ @(Ptr CommandBuffer_T -> ("pResolveImageInfo" ::: Ptr ResolveImageInfo2KHR) -> IO ()) vkCmdResolveImage2KHR)
src/Vulkan/Extensions.hs view
@@ -106,6 +106,7 @@ , module Vulkan.Extensions.VK_KHR_android_surface , module Vulkan.Extensions.VK_KHR_bind_memory2 , module Vulkan.Extensions.VK_KHR_buffer_device_address+ , module Vulkan.Extensions.VK_KHR_copy_commands2 , module Vulkan.Extensions.VK_KHR_create_renderpass2 , module Vulkan.Extensions.VK_KHR_dedicated_allocation , module Vulkan.Extensions.VK_KHR_deferred_host_operations@@ -143,6 +144,7 @@ , module Vulkan.Extensions.VK_KHR_performance_query , module Vulkan.Extensions.VK_KHR_pipeline_executable_properties , module Vulkan.Extensions.VK_KHR_pipeline_library+ , module Vulkan.Extensions.VK_KHR_portability_subset , module Vulkan.Extensions.VK_KHR_push_descriptor , module Vulkan.Extensions.VK_KHR_ray_tracing , module Vulkan.Extensions.VK_KHR_relaxed_block_layout@@ -319,6 +321,7 @@ import Vulkan.Extensions.VK_KHR_android_surface import Vulkan.Extensions.VK_KHR_bind_memory2 import Vulkan.Extensions.VK_KHR_buffer_device_address+import Vulkan.Extensions.VK_KHR_copy_commands2 import Vulkan.Extensions.VK_KHR_create_renderpass2 import Vulkan.Extensions.VK_KHR_dedicated_allocation import Vulkan.Extensions.VK_KHR_deferred_host_operations@@ -356,6 +359,7 @@ import Vulkan.Extensions.VK_KHR_performance_query import Vulkan.Extensions.VK_KHR_pipeline_executable_properties import Vulkan.Extensions.VK_KHR_pipeline_library+import Vulkan.Extensions.VK_KHR_portability_subset import Vulkan.Extensions.VK_KHR_push_descriptor import Vulkan.Extensions.VK_KHR_ray_tracing import Vulkan.Extensions.VK_KHR_relaxed_block_layout
src/Vulkan/Extensions/VK_EXT_hdr_metadata.hs view
@@ -172,21 +172,21 @@ -- 'Vulkan.Core10.Enums.StructureType.StructureType', 'XYColorEXT', -- 'setHdrMetadataEXT' data HdrMetadataEXT = HdrMetadataEXT- { -- | @displayPrimaryRed@ is the mastering display’s red primary in+ { -- | @displayPrimaryRed@ is the reference monitor’s red primary in -- chromaticity coordinates displayPrimaryRed :: XYColorEXT- , -- | @displayPrimaryGreen@ is the mastering display’s green primary in+ , -- | @displayPrimaryGreen@ is the reference monitor’s green primary in -- chromaticity coordinates displayPrimaryGreen :: XYColorEXT- , -- | @displayPrimaryBlue@ is the mastering display’s blue primary in+ , -- | @displayPrimaryBlue@ is the reference monitor’s blue primary in -- chromaticity coordinates displayPrimaryBlue :: XYColorEXT- , -- | @whitePoint@ is the mastering display’s white-point in chromaticity+ , -- | @whitePoint@ is the reference monitor’s white-point in chromaticity -- coordinates whitePoint :: XYColorEXT- , -- | @maxLuminance@ is the maximum luminance of the mastering display in nits+ , -- | @maxLuminance@ is the maximum luminance of the reference monitor in nits maxLuminance :: Float- , -- | @minLuminance@ is the minimum luminance of the mastering display in nits+ , -- | @minLuminance@ is the minimum luminance of the reference monitor in nits minLuminance :: Float , -- | @maxContentLightLevel@ is content’s maximum luminance in nits maxContentLightLevel :: Float
+ src/Vulkan/Extensions/VK_KHR_copy_commands2.hs view
@@ -0,0 +1,2728 @@+{-# language CPP #-}+module Vulkan.Extensions.VK_KHR_copy_commands2 ( cmdCopyBuffer2KHR+ , cmdCopyImage2KHR+ , cmdBlitImage2KHR+ , cmdCopyBufferToImage2KHR+ , cmdCopyImageToBuffer2KHR+ , cmdResolveImage2KHR+ , BufferCopy2KHR(..)+ , ImageCopy2KHR(..)+ , ImageBlit2KHR(..)+ , BufferImageCopy2KHR(..)+ , ImageResolve2KHR(..)+ , CopyBufferInfo2KHR(..)+ , CopyImageInfo2KHR(..)+ , BlitImageInfo2KHR(..)+ , CopyBufferToImageInfo2KHR(..)+ , CopyImageToBufferInfo2KHR(..)+ , ResolveImageInfo2KHR(..)+ , KHR_COPY_COMMANDS_2_SPEC_VERSION+ , pattern KHR_COPY_COMMANDS_2_SPEC_VERSION+ , KHR_COPY_COMMANDS_2_EXTENSION_NAME+ , pattern KHR_COPY_COMMANDS_2_EXTENSION_NAME+ ) where++import Vulkan.CStruct.Utils (FixedArray)+import Control.Monad (unless)+import Control.Monad.IO.Class (liftIO)+import Foreign.Marshal.Alloc (allocaBytesAligned)+import GHC.IO (throwIO)+import GHC.Ptr (nullFunPtr)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Control.Monad.Trans.Class (lift)+import Control.Monad.Trans.Cont (evalContT)+import Data.Vector (generateM)+import qualified Data.Vector (imapM_)+import qualified Data.Vector (length)+import Control.Monad.IO.Class (MonadIO)+import Data.String (IsString)+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import GHC.IO.Exception (IOErrorType(..))+import GHC.IO.Exception (IOException(..))+import Foreign.Ptr (FunPtr)+import Foreign.Ptr (Ptr)+import Data.Word (Word32)+import Data.Kind (Type)+import Control.Monad.Trans.Cont (ContT(..))+import Data.Vector (Vector)+import Vulkan.CStruct.Utils (advancePtrBytes)+import Vulkan.CStruct.Utils (lowerArrayPtr)+import Vulkan.Core10.Handles (Buffer)+import Vulkan.Core10.Handles (CommandBuffer)+import Vulkan.Core10.Handles (CommandBuffer(..))+import Vulkan.Core10.Handles (CommandBuffer_T)+import Vulkan.Dynamic (DeviceCmds(pVkCmdBlitImage2KHR))+import Vulkan.Dynamic (DeviceCmds(pVkCmdCopyBuffer2KHR))+import Vulkan.Dynamic (DeviceCmds(pVkCmdCopyBufferToImage2KHR))+import Vulkan.Dynamic (DeviceCmds(pVkCmdCopyImage2KHR))+import Vulkan.Dynamic (DeviceCmds(pVkCmdCopyImageToBuffer2KHR))+import Vulkan.Dynamic (DeviceCmds(pVkCmdResolveImage2KHR))+import Vulkan.Core10.FundamentalTypes (DeviceSize)+import Vulkan.Core10.FundamentalTypes (Extent3D)+import Vulkan.Core10.Enums.Filter (Filter)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.Core10.Handles (Image)+import Vulkan.Core10.Enums.ImageLayout (ImageLayout)+import Vulkan.Core10.CommandBufferBuilding (ImageSubresourceLayers)+import Vulkan.Core10.FundamentalTypes (Offset3D)+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BUFFER_COPY_2_KHR))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_BLIT_2_KHR))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_COPY_2_KHR))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR))+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdCopyBuffer2KHR+ :: FunPtr (Ptr CommandBuffer_T -> Ptr CopyBufferInfo2KHR -> IO ()) -> Ptr CommandBuffer_T -> Ptr CopyBufferInfo2KHR -> IO ()++-- | vkCmdCopyBuffer2KHR - Copy data between buffer regions+--+-- = Description+--+-- This command is functionally identical to+-- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyBuffer', but includes+-- extensible sub-structures that include @sType@ and @pNext@ parameters,+-- allowing them to be more easily extended.+--+-- == Valid Usage+--+-- - If @commandBuffer@ is an unprotected command buffer, then+-- @srcBuffer@ /must/ not be a protected buffer+--+-- - If @commandBuffer@ is an unprotected command buffer, then+-- @dstBuffer@ /must/ not be a protected buffer+--+-- - If @commandBuffer@ is a protected command buffer, then @dstBuffer@+-- /must/ not be an unprotected buffer+--+-- == Valid Usage (Implicit)+--+-- - @commandBuffer@ /must/ be a valid+-- 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - @pCopyBufferInfo@ /must/ be a valid pointer to a valid+-- 'CopyBufferInfo2KHR' structure+--+-- - @commandBuffer@ /must/ be in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- - The 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support transfer, graphics, or compute+-- operations+--+-- - This command /must/ only be called outside of a render pass instance+--+-- == Host Synchronization+--+-- - Host access to @commandBuffer@ /must/ be externally synchronized+--+-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-types Pipeline Type> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+=====================================================================================================================================++-- | Primary | Outside | Transfer | Transfer |+-- | Secondary | | Graphics | |+-- | | | Compute | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- 'Vulkan.Core10.Handles.CommandBuffer', 'CopyBufferInfo2KHR'+cmdCopyBuffer2KHR :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @pCopyBufferInfo@ is a pointer to a 'CopyBufferInfo2KHR' structure+ -- describing the copy parameters.+ CopyBufferInfo2KHR+ -> io ()+cmdCopyBuffer2KHR commandBuffer copyBufferInfo = liftIO . evalContT $ do+ let vkCmdCopyBuffer2KHRPtr = pVkCmdCopyBuffer2KHR (deviceCmds (commandBuffer :: CommandBuffer))+ lift $ unless (vkCmdCopyBuffer2KHRPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyBuffer2KHR is null" Nothing Nothing+ let vkCmdCopyBuffer2KHR' = mkVkCmdCopyBuffer2KHR vkCmdCopyBuffer2KHRPtr+ pCopyBufferInfo <- ContT $ withCStruct (copyBufferInfo)+ lift $ vkCmdCopyBuffer2KHR' (commandBufferHandle (commandBuffer)) pCopyBufferInfo+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdCopyImage2KHR+ :: FunPtr (Ptr CommandBuffer_T -> Ptr CopyImageInfo2KHR -> IO ()) -> Ptr CommandBuffer_T -> Ptr CopyImageInfo2KHR -> IO ()++-- | vkCmdCopyImage2KHR - Copy data between images+--+-- = Description+--+-- This command is functionally identical to+-- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyImage', but includes+-- extensible sub-structures that include @sType@ and @pNext@ parameters,+-- allowing them to be more easily extended.+--+-- == Valid Usage+--+-- - If @commandBuffer@ is an unprotected command buffer, then @srcImage@+-- /must/ not be a protected image+--+-- - If @commandBuffer@ is an unprotected command buffer, then @dstImage@+-- /must/ not be a protected image+--+-- - If @commandBuffer@ is a protected command buffer, then @dstImage@+-- /must/ not be an unprotected image+--+-- == Valid Usage (Implicit)+--+-- - @commandBuffer@ /must/ be a valid+-- 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - @pCopyImageInfo@ /must/ be a valid pointer to a valid+-- 'CopyImageInfo2KHR' structure+--+-- - @commandBuffer@ /must/ be in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- - The 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support transfer, graphics, or compute+-- operations+--+-- - This command /must/ only be called outside of a render pass instance+--+-- == Host Synchronization+--+-- - Host access to @commandBuffer@ /must/ be externally synchronized+--+-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-types Pipeline Type> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+=====================================================================================================================================++-- | Primary | Outside | Transfer | Transfer |+-- | Secondary | | Graphics | |+-- | | | Compute | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- 'Vulkan.Core10.Handles.CommandBuffer', 'CopyImageInfo2KHR'+cmdCopyImage2KHR :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @pCopyImageInfo@ is a pointer to a 'CopyImageInfo2KHR' structure+ -- describing the copy parameters.+ CopyImageInfo2KHR+ -> io ()+cmdCopyImage2KHR commandBuffer copyImageInfo = liftIO . evalContT $ do+ let vkCmdCopyImage2KHRPtr = pVkCmdCopyImage2KHR (deviceCmds (commandBuffer :: CommandBuffer))+ lift $ unless (vkCmdCopyImage2KHRPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyImage2KHR is null" Nothing Nothing+ let vkCmdCopyImage2KHR' = mkVkCmdCopyImage2KHR vkCmdCopyImage2KHRPtr+ pCopyImageInfo <- ContT $ withCStruct (copyImageInfo)+ lift $ vkCmdCopyImage2KHR' (commandBufferHandle (commandBuffer)) pCopyImageInfo+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdBlitImage2KHR+ :: FunPtr (Ptr CommandBuffer_T -> Ptr BlitImageInfo2KHR -> IO ()) -> Ptr CommandBuffer_T -> Ptr BlitImageInfo2KHR -> IO ()++-- | vkCmdBlitImage2KHR - Copy regions of an image, potentially performing+-- format conversion,+--+-- = Description+--+-- This command is functionally identical to+-- 'Vulkan.Core10.CommandBufferBuilding.cmdBlitImage', but includes+-- extensible sub-structures that include @sType@ and @pNext@ parameters,+-- allowing them to be more easily extended.+--+-- == Valid Usage+--+-- - If @commandBuffer@ is an unprotected command buffer, then @srcImage@+-- /must/ not be a protected image+--+-- - If @commandBuffer@ is an unprotected command buffer, then @dstImage@+-- /must/ not be a protected image+--+-- - If @commandBuffer@ is a protected command buffer, then @dstImage@+-- /must/ not be an unprotected image+--+-- == Valid Usage (Implicit)+--+-- - @commandBuffer@ /must/ be a valid+-- 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - @pBlitImageInfo@ /must/ be a valid pointer to a valid+-- 'BlitImageInfo2KHR' structure+--+-- - @commandBuffer@ /must/ be in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- - The 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support graphics operations+--+-- - This command /must/ only be called outside of a render pass instance+--+-- == Host Synchronization+--+-- - Host access to @commandBuffer@ /must/ be externally synchronized+--+-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-types Pipeline Type> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+=====================================================================================================================================++-- | Primary | Outside | Graphics | Transfer |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- 'BlitImageInfo2KHR', 'Vulkan.Core10.Handles.CommandBuffer'+cmdBlitImage2KHR :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @pBlitImageInfo@ is a pointer to a 'BlitImageInfo2KHR' structure+ -- describing the blit parameters.+ BlitImageInfo2KHR+ -> io ()+cmdBlitImage2KHR commandBuffer blitImageInfo = liftIO . evalContT $ do+ let vkCmdBlitImage2KHRPtr = pVkCmdBlitImage2KHR (deviceCmds (commandBuffer :: CommandBuffer))+ lift $ unless (vkCmdBlitImage2KHRPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdBlitImage2KHR is null" Nothing Nothing+ let vkCmdBlitImage2KHR' = mkVkCmdBlitImage2KHR vkCmdBlitImage2KHRPtr+ pBlitImageInfo <- ContT $ withCStruct (blitImageInfo)+ lift $ vkCmdBlitImage2KHR' (commandBufferHandle (commandBuffer)) pBlitImageInfo+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdCopyBufferToImage2KHR+ :: FunPtr (Ptr CommandBuffer_T -> Ptr CopyBufferToImageInfo2KHR -> IO ()) -> Ptr CommandBuffer_T -> Ptr CopyBufferToImageInfo2KHR -> IO ()++-- | vkCmdCopyBufferToImage2KHR - Copy data from a buffer into an image+--+-- = Description+--+-- This command is functionally identical to+-- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyBufferToImage', but includes+-- extensible sub-structures that include @sType@ and @pNext@ parameters,+-- allowing them to be more easily extended.+--+-- == Valid Usage+--+-- - If @commandBuffer@ is an unprotected command buffer, then+-- @srcBuffer@ /must/ not be a protected buffer+--+-- - If @commandBuffer@ is an unprotected command buffer, then @dstImage@+-- /must/ not be a protected image+--+-- - If @commandBuffer@ is a protected command buffer, then @dstImage@+-- /must/ not be an unprotected image+--+-- == Valid Usage (Implicit)+--+-- - @commandBuffer@ /must/ be a valid+-- 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - @pCopyBufferToImageInfo@ /must/ be a valid pointer to a valid+-- 'CopyBufferToImageInfo2KHR' structure+--+-- - @commandBuffer@ /must/ be in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- - The 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support transfer, graphics, or compute+-- operations+--+-- - This command /must/ only be called outside of a render pass instance+--+-- == Host Synchronization+--+-- - Host access to @commandBuffer@ /must/ be externally synchronized+--+-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-types Pipeline Type> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+=====================================================================================================================================++-- | Primary | Outside | Transfer | Transfer |+-- | Secondary | | Graphics | |+-- | | | Compute | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- 'Vulkan.Core10.Handles.CommandBuffer', 'CopyBufferToImageInfo2KHR'+cmdCopyBufferToImage2KHR :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @pCopyBufferToImageInfo@ is a pointer to a 'CopyBufferToImageInfo2KHR'+ -- structure describing the copy parameters.+ CopyBufferToImageInfo2KHR+ -> io ()+cmdCopyBufferToImage2KHR commandBuffer copyBufferToImageInfo = liftIO . evalContT $ do+ let vkCmdCopyBufferToImage2KHRPtr = pVkCmdCopyBufferToImage2KHR (deviceCmds (commandBuffer :: CommandBuffer))+ lift $ unless (vkCmdCopyBufferToImage2KHRPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyBufferToImage2KHR is null" Nothing Nothing+ let vkCmdCopyBufferToImage2KHR' = mkVkCmdCopyBufferToImage2KHR vkCmdCopyBufferToImage2KHRPtr+ pCopyBufferToImageInfo <- ContT $ withCStruct (copyBufferToImageInfo)+ lift $ vkCmdCopyBufferToImage2KHR' (commandBufferHandle (commandBuffer)) pCopyBufferToImageInfo+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdCopyImageToBuffer2KHR+ :: FunPtr (Ptr CommandBuffer_T -> Ptr CopyImageToBufferInfo2KHR -> IO ()) -> Ptr CommandBuffer_T -> Ptr CopyImageToBufferInfo2KHR -> IO ()++-- | vkCmdCopyImageToBuffer2KHR - Copy image data into a buffer+--+-- = Description+--+-- This command is functionally identical to+-- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyImageToBuffer', but includes+-- extensible sub-structures that include @sType@ and @pNext@ parameters,+-- allowing them to be more easily extended.+--+-- == Valid Usage+--+-- - If @commandBuffer@ is an unprotected command buffer, then @srcImage@+-- /must/ not be a protected image+--+-- - If @commandBuffer@ is an unprotected command buffer, then+-- @dstBuffer@ /must/ not be a protected buffer+--+-- - If @commandBuffer@ is a protected command buffer, then @dstBuffer@+-- /must/ not be an unprotected buffer+--+-- == Valid Usage (Implicit)+--+-- - @commandBuffer@ /must/ be a valid+-- 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - @pCopyImageToBufferInfo@ /must/ be a valid pointer to a valid+-- 'CopyImageToBufferInfo2KHR' structure+--+-- - @commandBuffer@ /must/ be in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- - The 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support transfer, graphics, or compute+-- operations+--+-- - This command /must/ only be called outside of a render pass instance+--+-- == Host Synchronization+--+-- - Host access to @commandBuffer@ /must/ be externally synchronized+--+-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-types Pipeline Type> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+=====================================================================================================================================++-- | Primary | Outside | Transfer | Transfer |+-- | Secondary | | Graphics | |+-- | | | Compute | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- 'Vulkan.Core10.Handles.CommandBuffer', 'CopyImageToBufferInfo2KHR'+cmdCopyImageToBuffer2KHR :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @pCopyImageToBufferInfo@ is a pointer to a 'cmdCopyImageToBuffer2KHR'+ -- structure describing the copy parameters.+ CopyImageToBufferInfo2KHR+ -> io ()+cmdCopyImageToBuffer2KHR commandBuffer copyImageToBufferInfo = liftIO . evalContT $ do+ let vkCmdCopyImageToBuffer2KHRPtr = pVkCmdCopyImageToBuffer2KHR (deviceCmds (commandBuffer :: CommandBuffer))+ lift $ unless (vkCmdCopyImageToBuffer2KHRPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdCopyImageToBuffer2KHR is null" Nothing Nothing+ let vkCmdCopyImageToBuffer2KHR' = mkVkCmdCopyImageToBuffer2KHR vkCmdCopyImageToBuffer2KHRPtr+ pCopyImageToBufferInfo <- ContT $ withCStruct (copyImageToBufferInfo)+ lift $ vkCmdCopyImageToBuffer2KHR' (commandBufferHandle (commandBuffer)) pCopyImageToBufferInfo+ pure $ ()+++foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkCmdResolveImage2KHR+ :: FunPtr (Ptr CommandBuffer_T -> Ptr ResolveImageInfo2KHR -> IO ()) -> Ptr CommandBuffer_T -> Ptr ResolveImageInfo2KHR -> IO ()++-- | vkCmdResolveImage2KHR - Resolve regions of an image+--+-- = Description+--+-- This command is functionally identical to+-- 'Vulkan.Core10.CommandBufferBuilding.cmdResolveImage', but includes+-- extensible sub-structures that include @sType@ and @pNext@ parameters,+-- allowing them to be more easily extended.+--+-- == Valid Usage+--+-- - If @commandBuffer@ is an unprotected command buffer, then @srcImage@+-- /must/ not be a protected image+--+-- - If @commandBuffer@ is an unprotected command buffer, then @dstImage@+-- /must/ not be a protected image+--+-- - If @commandBuffer@ is a protected command buffer, then @dstImage@+-- /must/ not be an unprotected image+--+-- == Valid Usage (Implicit)+--+-- - @commandBuffer@ /must/ be a valid+-- 'Vulkan.Core10.Handles.CommandBuffer' handle+--+-- - @pResolveImageInfo@ /must/ be a valid pointer to a valid+-- 'ResolveImageInfo2KHR' structure+--+-- - @commandBuffer@ /must/ be in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#commandbuffers-lifecycle recording state>+--+-- - The 'Vulkan.Core10.Handles.CommandPool' that @commandBuffer@ was+-- allocated from /must/ support graphics operations+--+-- - This command /must/ only be called outside of a render pass instance+--+-- == Host Synchronization+--+-- - Host access to @commandBuffer@ /must/ be externally synchronized+--+-- - Host access to the 'Vulkan.Core10.Handles.CommandPool' that+-- @commandBuffer@ was allocated from /must/ be externally synchronized+--+-- == Command Properties+--+-- \'+--+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++-- | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkCommandBufferLevel Command Buffer Levels> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkCmdBeginRenderPass Render Pass Scope> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkQueueFlagBits Supported Queue Types> | <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-pipeline-stages-types Pipeline Type> |+-- +============================================================================================================================+========================================================================================================================+=======================================================================================================================+=====================================================================================================================================++-- | Primary | Outside | Graphics | Transfer |+-- | Secondary | | | |+-- +----------------------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------++--+-- = See Also+--+-- 'Vulkan.Core10.Handles.CommandBuffer', 'ResolveImageInfo2KHR'+cmdResolveImage2KHR :: forall io+ . (MonadIO io)+ => -- | @commandBuffer@ is the command buffer into which the command will be+ -- recorded.+ CommandBuffer+ -> -- | @pResolveImageInfo@ is a pointer to a 'ResolveImageInfo2KHR' structure+ -- describing the resolve parameters.+ ResolveImageInfo2KHR+ -> io ()+cmdResolveImage2KHR commandBuffer resolveImageInfo = liftIO . evalContT $ do+ let vkCmdResolveImage2KHRPtr = pVkCmdResolveImage2KHR (deviceCmds (commandBuffer :: CommandBuffer))+ lift $ unless (vkCmdResolveImage2KHRPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkCmdResolveImage2KHR is null" Nothing Nothing+ let vkCmdResolveImage2KHR' = mkVkCmdResolveImage2KHR vkCmdResolveImage2KHRPtr+ pResolveImageInfo <- ContT $ withCStruct (resolveImageInfo)+ lift $ vkCmdResolveImage2KHR' (commandBufferHandle (commandBuffer)) pResolveImageInfo+ pure $ ()+++-- | VkBufferCopy2KHR - Structure specifying a buffer copy operation+--+-- == Valid Usage+--+-- - The @size@ /must/ be greater than @0@+--+-- == Valid Usage (Implicit)+--+-- - @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BUFFER_COPY_2_KHR'+--+-- - @pNext@ /must/ be @NULL@+--+-- = See Also+--+-- 'CopyBufferInfo2KHR', 'Vulkan.Core10.FundamentalTypes.DeviceSize',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data BufferCopy2KHR = BufferCopy2KHR+ { -- | @srcOffset@ is the starting offset in bytes from the start of+ -- @srcBuffer@.+ srcOffset :: DeviceSize+ , -- | @dstOffset@ is the starting offset in bytes from the start of+ -- @dstBuffer@.+ dstOffset :: DeviceSize+ , -- | @size@ is the number of bytes to copy.+ size :: DeviceSize+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (BufferCopy2KHR)+#endif+deriving instance Show BufferCopy2KHR++instance ToCStruct BufferCopy2KHR where+ withCStruct x f = allocaBytesAligned 40 8 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p BufferCopy2KHR{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_COPY_2_KHR)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (srcOffset)+ poke ((p `plusPtr` 24 :: Ptr DeviceSize)) (dstOffset)+ poke ((p `plusPtr` 32 :: Ptr DeviceSize)) (size)+ f+ cStructSize = 40+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_COPY_2_KHR)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (zero)+ poke ((p `plusPtr` 24 :: Ptr DeviceSize)) (zero)+ poke ((p `plusPtr` 32 :: Ptr DeviceSize)) (zero)+ f++instance FromCStruct BufferCopy2KHR where+ peekCStruct p = do+ srcOffset <- peek @DeviceSize ((p `plusPtr` 16 :: Ptr DeviceSize))+ dstOffset <- peek @DeviceSize ((p `plusPtr` 24 :: Ptr DeviceSize))+ size <- peek @DeviceSize ((p `plusPtr` 32 :: Ptr DeviceSize))+ pure $ BufferCopy2KHR+ srcOffset dstOffset size++instance Storable BufferCopy2KHR where+ sizeOf ~_ = 40+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero BufferCopy2KHR where+ zero = BufferCopy2KHR+ zero+ zero+ zero+++-- | VkImageCopy2KHR - Structure specifying an image copy operation+--+-- == Valid Usage+--+-- - The number of slices of the @extent@ (for 3D) or layers of the+-- @srcSubresource@ (for non-3D) /must/ match the number of slices of+-- the @extent@ (for 3D) or layers of the @dstSubresource@ (for non-3D)+--+-- == Valid Usage (Implicit)+--+-- - @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_COPY_2_KHR'+--+-- - @pNext@ /must/ be @NULL@+--+-- - @srcSubresource@ /must/ be a valid+-- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers'+-- structure+--+-- - @dstSubresource@ /must/ be a valid+-- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers'+-- structure+--+-- = See Also+--+-- 'CopyImageInfo2KHR', 'Vulkan.Core10.FundamentalTypes.Extent3D',+-- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers',+-- 'Vulkan.Core10.FundamentalTypes.Offset3D',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data ImageCopy2KHR = ImageCopy2KHR+ { -- | @srcSubresource@ and @dstSubresource@ are+ -- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers' structures+ -- specifying the image subresources of the images used for the source and+ -- destination image data, respectively.+ srcSubresource :: ImageSubresourceLayers+ , -- | @srcOffset@ and @dstOffset@ select the initial @x@, @y@, and @z@ offsets+ -- in texels of the sub-regions of the source and destination image data.+ srcOffset :: Offset3D+ , -- No documentation found for Nested "VkImageCopy2KHR" "dstSubresource"+ dstSubresource :: ImageSubresourceLayers+ , -- No documentation found for Nested "VkImageCopy2KHR" "dstOffset"+ dstOffset :: Offset3D+ , -- | @extent@ is the size in texels of the image to copy in @width@, @height@+ -- and @depth@.+ extent :: Extent3D+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ImageCopy2KHR)+#endif+deriving instance Show ImageCopy2KHR++instance ToCStruct ImageCopy2KHR where+ withCStruct x f = allocaBytesAligned 88 8 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p ImageCopy2KHR{..} f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_COPY_2_KHR)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ ContT $ pokeCStruct ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers)) (srcSubresource) . ($ ())+ ContT $ pokeCStruct ((p `plusPtr` 32 :: Ptr Offset3D)) (srcOffset) . ($ ())+ ContT $ pokeCStruct ((p `plusPtr` 44 :: Ptr ImageSubresourceLayers)) (dstSubresource) . ($ ())+ ContT $ pokeCStruct ((p `plusPtr` 60 :: Ptr Offset3D)) (dstOffset) . ($ ())+ ContT $ pokeCStruct ((p `plusPtr` 72 :: Ptr Extent3D)) (extent) . ($ ())+ lift $ f+ cStructSize = 88+ cStructAlignment = 8+ pokeZeroCStruct p f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_COPY_2_KHR)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ ContT $ pokeCStruct ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers)) (zero) . ($ ())+ ContT $ pokeCStruct ((p `plusPtr` 32 :: Ptr Offset3D)) (zero) . ($ ())+ ContT $ pokeCStruct ((p `plusPtr` 44 :: Ptr ImageSubresourceLayers)) (zero) . ($ ())+ ContT $ pokeCStruct ((p `plusPtr` 60 :: Ptr Offset3D)) (zero) . ($ ())+ ContT $ pokeCStruct ((p `plusPtr` 72 :: Ptr Extent3D)) (zero) . ($ ())+ lift $ f++instance FromCStruct ImageCopy2KHR where+ peekCStruct p = do+ srcSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers))+ srcOffset <- peekCStruct @Offset3D ((p `plusPtr` 32 :: Ptr Offset3D))+ dstSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 44 :: Ptr ImageSubresourceLayers))+ dstOffset <- peekCStruct @Offset3D ((p `plusPtr` 60 :: Ptr Offset3D))+ extent <- peekCStruct @Extent3D ((p `plusPtr` 72 :: Ptr Extent3D))+ pure $ ImageCopy2KHR+ srcSubresource srcOffset dstSubresource dstOffset extent++instance Zero ImageCopy2KHR where+ zero = ImageCopy2KHR+ zero+ zero+ zero+ zero+ zero+++-- | VkImageBlit2KHR - Structure specifying an image blit operation+--+-- = Description+--+-- For each element of the @pRegions@ array, a blit operation is performed+-- for the specified source and destination regions.+--+-- == Valid Usage+--+-- - The @aspectMask@ member of @srcSubresource@ and @dstSubresource@+-- /must/ match+--+-- - The @layerCount@ member of @srcSubresource@ and @dstSubresource@+-- /must/ match+--+-- == Valid Usage (Implicit)+--+-- - @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_BLIT_2_KHR'+--+-- - @pNext@ /must/ be @NULL@+--+-- - @srcSubresource@ /must/ be a valid+-- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers'+-- structure+--+-- - @dstSubresource@ /must/ be a valid+-- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers'+-- structure+--+-- = See Also+--+-- 'BlitImageInfo2KHR',+-- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers',+-- 'Vulkan.Core10.FundamentalTypes.Offset3D',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data ImageBlit2KHR = ImageBlit2KHR+ { -- | @srcSubresource@ is the subresource to blit from.+ srcSubresource :: ImageSubresourceLayers+ , -- | @srcOffsets@ is a pointer to an array of two+ -- 'Vulkan.Core10.FundamentalTypes.Offset3D' structures specifying the+ -- bounds of the source region within @srcSubresource@.+ srcOffsets :: (Offset3D, Offset3D)+ , -- | @dstSubresource@ is the subresource to blit into.+ dstSubresource :: ImageSubresourceLayers+ , -- | @dstOffsets@ is a pointer to an array of two+ -- 'Vulkan.Core10.FundamentalTypes.Offset3D' structures specifying the+ -- bounds of the destination region within @dstSubresource@.+ dstOffsets :: (Offset3D, Offset3D)+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ImageBlit2KHR)+#endif+deriving instance Show ImageBlit2KHR++instance ToCStruct ImageBlit2KHR where+ withCStruct x f = allocaBytesAligned 96 8 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p ImageBlit2KHR{..} f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_BLIT_2_KHR)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ ContT $ pokeCStruct ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers)) (srcSubresource) . ($ ())+ let pSrcOffsets' = lowerArrayPtr ((p `plusPtr` 32 :: Ptr (FixedArray 2 Offset3D)))+ case (srcOffsets) of+ (e0, e1) -> do+ ContT $ pokeCStruct (pSrcOffsets' :: Ptr Offset3D) (e0) . ($ ())+ ContT $ pokeCStruct (pSrcOffsets' `plusPtr` 12 :: Ptr Offset3D) (e1) . ($ ())+ ContT $ pokeCStruct ((p `plusPtr` 56 :: Ptr ImageSubresourceLayers)) (dstSubresource) . ($ ())+ let pDstOffsets' = lowerArrayPtr ((p `plusPtr` 72 :: Ptr (FixedArray 2 Offset3D)))+ case (dstOffsets) of+ (e0, e1) -> do+ ContT $ pokeCStruct (pDstOffsets' :: Ptr Offset3D) (e0) . ($ ())+ ContT $ pokeCStruct (pDstOffsets' `plusPtr` 12 :: Ptr Offset3D) (e1) . ($ ())+ lift $ f+ cStructSize = 96+ cStructAlignment = 8+ pokeZeroCStruct p f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_BLIT_2_KHR)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ ContT $ pokeCStruct ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers)) (zero) . ($ ())+ let pSrcOffsets' = lowerArrayPtr ((p `plusPtr` 32 :: Ptr (FixedArray 2 Offset3D)))+ case ((zero, zero)) of+ (e0, e1) -> do+ ContT $ pokeCStruct (pSrcOffsets' :: Ptr Offset3D) (e0) . ($ ())+ ContT $ pokeCStruct (pSrcOffsets' `plusPtr` 12 :: Ptr Offset3D) (e1) . ($ ())+ ContT $ pokeCStruct ((p `plusPtr` 56 :: Ptr ImageSubresourceLayers)) (zero) . ($ ())+ let pDstOffsets' = lowerArrayPtr ((p `plusPtr` 72 :: Ptr (FixedArray 2 Offset3D)))+ case ((zero, zero)) of+ (e0, e1) -> do+ ContT $ pokeCStruct (pDstOffsets' :: Ptr Offset3D) (e0) . ($ ())+ ContT $ pokeCStruct (pDstOffsets' `plusPtr` 12 :: Ptr Offset3D) (e1) . ($ ())+ lift $ f++instance FromCStruct ImageBlit2KHR where+ peekCStruct p = do+ srcSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers))+ let psrcOffsets = lowerArrayPtr @Offset3D ((p `plusPtr` 32 :: Ptr (FixedArray 2 Offset3D)))+ srcOffsets0 <- peekCStruct @Offset3D ((psrcOffsets `advancePtrBytes` 0 :: Ptr Offset3D))+ srcOffsets1 <- peekCStruct @Offset3D ((psrcOffsets `advancePtrBytes` 12 :: Ptr Offset3D))+ dstSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 56 :: Ptr ImageSubresourceLayers))+ let pdstOffsets = lowerArrayPtr @Offset3D ((p `plusPtr` 72 :: Ptr (FixedArray 2 Offset3D)))+ dstOffsets0 <- peekCStruct @Offset3D ((pdstOffsets `advancePtrBytes` 0 :: Ptr Offset3D))+ dstOffsets1 <- peekCStruct @Offset3D ((pdstOffsets `advancePtrBytes` 12 :: Ptr Offset3D))+ pure $ ImageBlit2KHR+ srcSubresource ((srcOffsets0, srcOffsets1)) dstSubresource ((dstOffsets0, dstOffsets1))++instance Zero ImageBlit2KHR where+ zero = ImageBlit2KHR+ zero+ (zero, zero)+ zero+ (zero, zero)+++-- | VkBufferImageCopy2KHR - Structure specifying a buffer image copy+-- operation+--+-- = Description+--+-- This structure is functionally identical to+-- 'Vulkan.Core10.CommandBufferBuilding.BufferImageCopy', but adds @sType@+-- and @pNext@ parameters, allowing it to be more easily extended.+--+-- == Valid Usage+--+-- - @bufferRowLength@ /must/ be @0@, or greater than or equal to the+-- @width@ member of @imageExtent@+--+-- - @bufferImageHeight@ /must/ be @0@, or greater than or equal to the+-- @height@ member of @imageExtent@+--+-- - The @aspectMask@ member of @imageSubresource@ /must/ only have a+-- single bit set+--+-- == Valid Usage (Implicit)+--+-- - @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR'+--+-- - @pNext@ /must/ be @NULL@+--+-- - @imageSubresource@ /must/ be a valid+-- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers'+-- structure+--+-- = See Also+--+-- 'CopyBufferToImageInfo2KHR', 'CopyImageToBufferInfo2KHR',+-- 'Vulkan.Core10.FundamentalTypes.DeviceSize',+-- 'Vulkan.Core10.FundamentalTypes.Extent3D',+-- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers',+-- 'Vulkan.Core10.FundamentalTypes.Offset3D',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data BufferImageCopy2KHR = BufferImageCopy2KHR+ { -- | @bufferOffset@ is the offset in bytes from the start of the buffer+ -- object where the image data is copied from or to.+ bufferOffset :: DeviceSize+ , -- | @bufferRowLength@ and @bufferImageHeight@ specify in texels a subregion+ -- of a larger two- or three-dimensional image in buffer memory, and+ -- control the addressing calculations. If either of these values is zero,+ -- that aspect of the buffer memory is considered to be tightly packed+ -- according to the @imageExtent@.+ bufferRowLength :: Word32+ , -- No documentation found for Nested "VkBufferImageCopy2KHR" "bufferImageHeight"+ bufferImageHeight :: Word32+ , -- | @imageSubresource@ is a+ -- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers' used to+ -- specify the specific image subresources of the image used for the source+ -- or destination image data.+ imageSubresource :: ImageSubresourceLayers+ , -- | @imageOffset@ selects the initial @x@, @y@, @z@ offsets in texels of the+ -- sub-region of the source or destination image data.+ imageOffset :: Offset3D+ , -- | @imageExtent@ is the size in texels of the image to copy in @width@,+ -- @height@ and @depth@.+ imageExtent :: Extent3D+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (BufferImageCopy2KHR)+#endif+deriving instance Show BufferImageCopy2KHR++instance ToCStruct BufferImageCopy2KHR where+ withCStruct x f = allocaBytesAligned 72 8 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p BufferImageCopy2KHR{..} f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ lift $ poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (bufferOffset)+ lift $ poke ((p `plusPtr` 24 :: Ptr Word32)) (bufferRowLength)+ lift $ poke ((p `plusPtr` 28 :: Ptr Word32)) (bufferImageHeight)+ ContT $ pokeCStruct ((p `plusPtr` 32 :: Ptr ImageSubresourceLayers)) (imageSubresource) . ($ ())+ ContT $ pokeCStruct ((p `plusPtr` 48 :: Ptr Offset3D)) (imageOffset) . ($ ())+ ContT $ pokeCStruct ((p `plusPtr` 60 :: Ptr Extent3D)) (imageExtent) . ($ ())+ lift $ f+ cStructSize = 72+ cStructAlignment = 8+ pokeZeroCStruct p f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ lift $ poke ((p `plusPtr` 16 :: Ptr DeviceSize)) (zero)+ lift $ poke ((p `plusPtr` 24 :: Ptr Word32)) (zero)+ lift $ poke ((p `plusPtr` 28 :: Ptr Word32)) (zero)+ ContT $ pokeCStruct ((p `plusPtr` 32 :: Ptr ImageSubresourceLayers)) (zero) . ($ ())+ ContT $ pokeCStruct ((p `plusPtr` 48 :: Ptr Offset3D)) (zero) . ($ ())+ ContT $ pokeCStruct ((p `plusPtr` 60 :: Ptr Extent3D)) (zero) . ($ ())+ lift $ f++instance FromCStruct BufferImageCopy2KHR where+ peekCStruct p = do+ bufferOffset <- peek @DeviceSize ((p `plusPtr` 16 :: Ptr DeviceSize))+ bufferRowLength <- peek @Word32 ((p `plusPtr` 24 :: Ptr Word32))+ bufferImageHeight <- peek @Word32 ((p `plusPtr` 28 :: Ptr Word32))+ imageSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 32 :: Ptr ImageSubresourceLayers))+ imageOffset <- peekCStruct @Offset3D ((p `plusPtr` 48 :: Ptr Offset3D))+ imageExtent <- peekCStruct @Extent3D ((p `plusPtr` 60 :: Ptr Extent3D))+ pure $ BufferImageCopy2KHR+ bufferOffset bufferRowLength bufferImageHeight imageSubresource imageOffset imageExtent++instance Zero BufferImageCopy2KHR where+ zero = BufferImageCopy2KHR+ zero+ zero+ zero+ zero+ zero+ zero+++-- | VkImageResolve2KHR - Structure specifying an image resolve operation+--+-- == Valid Usage+--+-- - The @aspectMask@ member of @srcSubresource@ and @dstSubresource@+-- /must/ only contain+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'+--+-- - The @layerCount@ member of @srcSubresource@ and @dstSubresource@+-- /must/ match+--+-- == Valid Usage (Implicit)+--+-- - @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR'+--+-- - @pNext@ /must/ be @NULL@+--+-- - @srcSubresource@ /must/ be a valid+-- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers'+-- structure+--+-- - @dstSubresource@ /must/ be a valid+-- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers'+-- structure+--+-- = See Also+--+-- 'Vulkan.Core10.FundamentalTypes.Extent3D',+-- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers',+-- 'Vulkan.Core10.FundamentalTypes.Offset3D', 'ResolveImageInfo2KHR',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data ImageResolve2KHR = ImageResolve2KHR+ { -- | @srcSubresource@ and @dstSubresource@ are+ -- 'Vulkan.Core10.CommandBufferBuilding.ImageSubresourceLayers' structures+ -- specifying the image subresources of the images used for the source and+ -- destination image data, respectively. Resolve of depth\/stencil images+ -- is not supported.+ srcSubresource :: ImageSubresourceLayers+ , -- | @srcOffset@ and @dstOffset@ select the initial @x@, @y@, and @z@ offsets+ -- in texels of the sub-regions of the source and destination image data.+ srcOffset :: Offset3D+ , -- No documentation found for Nested "VkImageResolve2KHR" "dstSubresource"+ dstSubresource :: ImageSubresourceLayers+ , -- No documentation found for Nested "VkImageResolve2KHR" "dstOffset"+ dstOffset :: Offset3D+ , -- | @extent@ is the size in texels of the source image to resolve in+ -- @width@, @height@ and @depth@.+ extent :: Extent3D+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ImageResolve2KHR)+#endif+deriving instance Show ImageResolve2KHR++instance ToCStruct ImageResolve2KHR where+ withCStruct x f = allocaBytesAligned 88 8 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p ImageResolve2KHR{..} f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ ContT $ pokeCStruct ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers)) (srcSubresource) . ($ ())+ ContT $ pokeCStruct ((p `plusPtr` 32 :: Ptr Offset3D)) (srcOffset) . ($ ())+ ContT $ pokeCStruct ((p `plusPtr` 44 :: Ptr ImageSubresourceLayers)) (dstSubresource) . ($ ())+ ContT $ pokeCStruct ((p `plusPtr` 60 :: Ptr Offset3D)) (dstOffset) . ($ ())+ ContT $ pokeCStruct ((p `plusPtr` 72 :: Ptr Extent3D)) (extent) . ($ ())+ lift $ f+ cStructSize = 88+ cStructAlignment = 8+ pokeZeroCStruct p f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ ContT $ pokeCStruct ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers)) (zero) . ($ ())+ ContT $ pokeCStruct ((p `plusPtr` 32 :: Ptr Offset3D)) (zero) . ($ ())+ ContT $ pokeCStruct ((p `plusPtr` 44 :: Ptr ImageSubresourceLayers)) (zero) . ($ ())+ ContT $ pokeCStruct ((p `plusPtr` 60 :: Ptr Offset3D)) (zero) . ($ ())+ ContT $ pokeCStruct ((p `plusPtr` 72 :: Ptr Extent3D)) (zero) . ($ ())+ lift $ f++instance FromCStruct ImageResolve2KHR where+ peekCStruct p = do+ srcSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 16 :: Ptr ImageSubresourceLayers))+ srcOffset <- peekCStruct @Offset3D ((p `plusPtr` 32 :: Ptr Offset3D))+ dstSubresource <- peekCStruct @ImageSubresourceLayers ((p `plusPtr` 44 :: Ptr ImageSubresourceLayers))+ dstOffset <- peekCStruct @Offset3D ((p `plusPtr` 60 :: Ptr Offset3D))+ extent <- peekCStruct @Extent3D ((p `plusPtr` 72 :: Ptr Extent3D))+ pure $ ImageResolve2KHR+ srcSubresource srcOffset dstSubresource dstOffset extent++instance Zero ImageResolve2KHR where+ zero = ImageResolve2KHR+ zero+ zero+ zero+ zero+ zero+++-- | VkCopyBufferInfo2KHR - Structure specifying parameters of a buffer copy+-- command+--+-- = Description+--+-- Members defined by this structure with the same name as parameters in+-- 'Vulkan.Core10.CommandBufferBuilding.cmdCopyBuffer' have the identical+-- effect to those parameters; the child structure 'BufferCopy2KHR' is a+-- variant of 'Vulkan.Core10.CommandBufferBuilding.BufferCopy' which+-- includes @sType@ and @pNext@ parameters, allowing it to be extended.+--+-- == Valid Usage+--+-- - The @srcOffset@ member of each element of @pRegions@ /must/ be less+-- than the size of @srcBuffer@+--+-- - The @dstOffset@ member of each element of @pRegions@ /must/ be less+-- than the size of @dstBuffer@+--+-- - The @size@ member of each element of @pRegions@ /must/ be less than+-- or equal to the size of @srcBuffer@ minus @srcOffset@+--+-- - The @size@ member of each element of @pRegions@ /must/ be less than+-- or equal to the size of @dstBuffer@ minus @dstOffset@+--+-- - The union of the source regions, and the union of the destination+-- regions, specified by the elements of @pRegions@, /must/ not overlap+-- in memory+--+-- - @srcBuffer@ /must/ have been created with+-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_SRC_BIT'+-- usage flag+--+-- - If @srcBuffer@ is non-sparse then it /must/ be bound completely and+-- contiguously to a single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- - @dstBuffer@ /must/ have been created with+-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'+-- usage flag+--+-- - If @dstBuffer@ is non-sparse then it /must/ be bound completely and+-- contiguously to a single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- == Valid Usage (Implicit)+--+-- - @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR'+--+-- - @pNext@ /must/ be @NULL@+--+-- - @srcBuffer@ /must/ be a valid 'Vulkan.Core10.Handles.Buffer' handle+--+-- - @dstBuffer@ /must/ be a valid 'Vulkan.Core10.Handles.Buffer' handle+--+-- - @pRegions@ /must/ be a valid pointer to an array of @regionCount@+-- valid 'BufferCopy2KHR' structures+--+-- - @regionCount@ /must/ be greater than @0@+--+-- - Both of @dstBuffer@, and @srcBuffer@ /must/ have been created,+-- allocated, or retrieved from the same 'Vulkan.Core10.Handles.Device'+--+-- = See Also+--+-- 'Vulkan.Core10.Handles.Buffer', 'BufferCopy2KHR',+-- 'Vulkan.Core10.Enums.StructureType.StructureType', 'cmdCopyBuffer2KHR'+data CopyBufferInfo2KHR = CopyBufferInfo2KHR+ { -- | @srcBuffer@ is the source buffer.+ srcBuffer :: Buffer+ , -- | @dstBuffer@ is the destination buffer.+ dstBuffer :: Buffer+ , -- | @pRegions@ is a pointer to an array of 'BufferCopy2KHR' structures+ -- specifying the regions to copy.+ regions :: Vector BufferCopy2KHR+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (CopyBufferInfo2KHR)+#endif+deriving instance Show CopyBufferInfo2KHR++instance ToCStruct CopyBufferInfo2KHR where+ withCStruct x f = allocaBytesAligned 48 8 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p CopyBufferInfo2KHR{..} f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ lift $ poke ((p `plusPtr` 16 :: Ptr Buffer)) (srcBuffer)+ lift $ poke ((p `plusPtr` 24 :: Ptr Buffer)) (dstBuffer)+ lift $ poke ((p `plusPtr` 32 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))+ pPRegions' <- ContT $ allocaBytesAligned @BufferCopy2KHR ((Data.Vector.length (regions)) * 40) 8+ Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPRegions' `plusPtr` (40 * (i)) :: Ptr BufferCopy2KHR) (e) . ($ ())) (regions)+ lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr BufferCopy2KHR))) (pPRegions')+ lift $ f+ cStructSize = 48+ cStructAlignment = 8+ pokeZeroCStruct p f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ lift $ poke ((p `plusPtr` 16 :: Ptr Buffer)) (zero)+ lift $ poke ((p `plusPtr` 24 :: Ptr Buffer)) (zero)+ pPRegions' <- ContT $ allocaBytesAligned @BufferCopy2KHR ((Data.Vector.length (mempty)) * 40) 8+ Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPRegions' `plusPtr` (40 * (i)) :: Ptr BufferCopy2KHR) (e) . ($ ())) (mempty)+ lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr BufferCopy2KHR))) (pPRegions')+ lift $ f++instance FromCStruct CopyBufferInfo2KHR where+ peekCStruct p = do+ srcBuffer <- peek @Buffer ((p `plusPtr` 16 :: Ptr Buffer))+ dstBuffer <- peek @Buffer ((p `plusPtr` 24 :: Ptr Buffer))+ regionCount <- peek @Word32 ((p `plusPtr` 32 :: Ptr Word32))+ pRegions <- peek @(Ptr BufferCopy2KHR) ((p `plusPtr` 40 :: Ptr (Ptr BufferCopy2KHR)))+ pRegions' <- generateM (fromIntegral regionCount) (\i -> peekCStruct @BufferCopy2KHR ((pRegions `advancePtrBytes` (40 * (i)) :: Ptr BufferCopy2KHR)))+ pure $ CopyBufferInfo2KHR+ srcBuffer dstBuffer pRegions'++instance Zero CopyBufferInfo2KHR where+ zero = CopyBufferInfo2KHR+ zero+ zero+ mempty+++-- | VkCopyImageInfo2KHR - Structure specifying parameters of an image copy+-- command+--+-- == Valid Usage+--+-- - The union of all source regions, and the union of all destination+-- regions, specified by the elements of @pRegions@, /must/ not overlap+-- in memory+--+-- - The+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>+-- of @srcImage@ /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_SRC_BIT'+--+-- - @srcImage@ /must/ have been created with+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'+-- usage flag+--+-- - If @srcImage@ is non-sparse then the image or /disjoint/ plane to be+-- copied /must/ be bound completely and contiguously to a single+-- 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- - @srcImageLayout@ /must/ specify the layout of the image subresources+-- of @srcImage@ specified in @pRegions@ at the time this command is+-- executed on a 'Vulkan.Core10.Handles.Device'+--+-- - @srcImageLayout@ /must/ be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL',+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL', or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR'+--+-- - The+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>+-- of @dstImage@ /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_DST_BIT'+--+-- - @dstImage@ /must/ have been created with+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'+-- usage flag+--+-- - If @dstImage@ is non-sparse then the image or /disjoint/ plane that+-- is the destination of the copy /must/ be bound completely and+-- contiguously to a single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- - @dstImageLayout@ /must/ specify the layout of the image subresources+-- of @dstImage@ specified in @pRegions@ at the time this command is+-- executed on a 'Vulkan.Core10.Handles.Device'+--+-- - @dstImageLayout@ /must/ be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL',+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL', or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR'+--+-- - If the 'Vulkan.Core10.Enums.Format.Format' of each of @srcImage@ and+-- @dstImage@ is not a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,+-- the 'Vulkan.Core10.Enums.Format.Format' of each of @srcImage@ and+-- @dstImage@ /must/ be compatible, as defined+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies-images-format-compatibility above>+--+-- - In a copy to or from a plane of a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image>,+-- the 'Vulkan.Core10.Enums.Format.Format' of the image and plane+-- /must/ be compatible according to+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes the description of compatible planes>+-- for the plane being copied+--+-- - The sample count of @srcImage@ and @dstImage@ /must/ match+--+-- - The @srcSubresource.mipLevel@ member of each element of @pRegions@+-- /must/ be less than the @mipLevels@ specified in+-- 'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ was created+--+-- - The @dstSubresource.mipLevel@ member of each element of @pRegions@+-- /must/ be less than the @mipLevels@ specified in+-- 'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ was created+--+-- - The @srcSubresource.baseArrayLayer@ + @srcSubresource.layerCount@ of+-- each element of @pRegions@ /must/ be less than or equal to the+-- @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'+-- when @srcImage@ was created+--+-- - The @dstSubresource.baseArrayLayer@ + @dstSubresource.layerCount@ of+-- each element of @pRegions@ /must/ be less than or equal to the+-- @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'+-- when @dstImage@ was created+--+-- - The @srcOffset@ and @extent@ members of each element of @pRegions@+-- /must/ respect the image transfer granularity requirements of+-- @commandBuffer@’s command pool’s queue family, as described in+-- 'Vulkan.Core10.DeviceInitialization.QueueFamilyProperties'+--+-- - The @dstOffset@ and @extent@ members of each element of @pRegions@+-- /must/ respect the image transfer granularity requirements of+-- @commandBuffer@’s command pool’s queue family, as described in+-- 'Vulkan.Core10.DeviceInitialization.QueueFamilyProperties'+--+-- - @dstImage@ and @srcImage@ /must/ not have been created with @flags@+-- containing+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'+--+-- - If neither @srcImage@ nor @dstImage@ has a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>+-- then for each element of @pRegions@, @srcSubresource.aspectMask@ and+-- @dstSubresource.aspectMask@ /must/ match+--+-- - If @srcImage@ has a 'Vulkan.Core10.Enums.Format.Format' with+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion two planes>+-- then for each element of @pRegions@, @srcSubresource.aspectMask@+-- /must/ be+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT'+-- or+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT'+--+-- - If @srcImage@ has a 'Vulkan.Core10.Enums.Format.Format' with+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion three planes>+-- then for each element of @pRegions@, @srcSubresource.aspectMask@+-- /must/ be+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT',+-- or+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'+--+-- - If @dstImage@ has a 'Vulkan.Core10.Enums.Format.Format' with+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion two planes>+-- then for each element of @pRegions@, @dstSubresource.aspectMask@+-- /must/ be+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT'+-- or+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT'+--+-- - If @dstImage@ has a 'Vulkan.Core10.Enums.Format.Format' with+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion three planes>+-- then for each element of @pRegions@, @dstSubresource.aspectMask@+-- /must/ be+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT',+-- or+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'+--+-- - If @srcImage@ has a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>+-- and the @dstImage@ does not have a multi-planar image format, then+-- for each element of @pRegions@, @dstSubresource.aspectMask@ /must/+-- be 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'+--+-- - If @dstImage@ has a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar image format>+-- and the @srcImage@ does not have a multi-planar image format, then+-- for each element of @pRegions@, @srcSubresource.aspectMask@ /must/+-- be 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_COLOR_BIT'+--+-- - If @srcImage@ is of type+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element+-- of @pRegions@, @srcSubresource.baseArrayLayer@ /must/ be @0@ and and+-- @srcSubresource.layerCount@ /must/ be @1@+--+-- - If @dstImage@ is of type+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element+-- of @pRegions@, @dstSubresource.baseArrayLayer@ /must/ be @0@ and and+-- @dstSubresource.layerCount@ /must/ be @1@+--+-- - For each element of @pRegions@, @srcSubresource.aspectMask@ /must/+-- specify aspects present in @srcImage@+--+-- - For each element of @pRegions@, @dstSubresource.aspectMask@ /must/+-- specify aspects present in @dstImage@+--+-- - For each element of @pRegions@, @srcOffset.x@ and (@extent.width@ ++-- @srcOffset.x@) /must/ both be greater than or equal to @0@ and less+-- than or equal to the width of the specified @srcSubresource@ of+-- @srcImage@+--+-- - For each element of @pRegions@, @srcOffset.y@ and (@extent.height@ ++-- @srcOffset.y@) /must/ both be greater than or equal to @0@ and less+-- than or equal to the height of the specified @srcSubresource@ of+-- @srcImage@+--+-- - If @srcImage@ is of type+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element+-- of @pRegions@, @srcOffset.y@ /must/ be @0@ and @extent.height@+-- /must/ be @1@+--+-- - For each element of @pRegions@, @srcOffset.z@ and (@extent.depth@ ++-- @srcOffset.z@) /must/ both be greater than or equal to @0@ and less+-- than or equal to the depth of the specified @srcSubresource@ of+-- @srcImage@+--+-- - If @srcImage@ is of type+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element+-- of @pRegions@, @srcOffset.z@ /must/ be @0@ and @extent.depth@ /must/+-- be @1@+--+-- - If @dstImage@ is of type+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element+-- of @pRegions@, @dstOffset.z@ /must/ be @0@ and @extent.depth@ /must/+-- be @1@+--+-- - If @srcImage@ is of type+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element+-- of @pRegions@, @srcOffset.z@ /must/ be @0@+--+-- - If @dstImage@ is of type+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element+-- of @pRegions@, @dstOffset.z@ /must/ be @0@+--+-- - If @srcImage@ and @dstImage@ are both of type+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element+-- of @pRegions@, @extent.depth@ /must/ be @1@+--+-- - If @srcImage@ is of type+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', and @dstImage@ is of+-- type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each+-- element of @pRegions@, @extent.depth@ /must/ equal+-- @srcSubresource.layerCount@+--+-- - If @dstImage@ is of type+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', and @srcImage@ is of+-- type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each+-- element of @pRegions@, @extent.depth@ /must/ equal+-- @dstSubresource.layerCount@+--+-- - For each element of @pRegions@, @dstOffset.x@ and (@extent.width@ ++-- @dstOffset.x@) /must/ both be greater than or equal to @0@ and less+-- than or equal to the width of the specified @dstSubresource@ of+-- @dstImage@+--+-- - For each element of @pRegions@, @dstOffset.y@ and (@extent.height@ ++-- @dstOffset.y@) /must/ both be greater than or equal to @0@ and less+-- than or equal to the height of the specified @dstSubresource@ of+-- @dstImage@+--+-- - If @dstImage@ is of type+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element+-- of @pRegions@, @dstOffset.y@ /must/ be @0@ and @extent.height@+-- /must/ be @1@+--+-- - For each element of @pRegions@, @dstOffset.z@ and (@extent.depth@ ++-- @dstOffset.z@) /must/ both be greater than or equal to @0@ and less+-- than or equal to the depth of the specified @dstSubresource@ of+-- @dstImage@+--+-- - If @srcImage@ is a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- then for each element of @pRegions@, all members of @srcOffset@+-- /must/ be a multiple of the corresponding dimensions of the+-- compressed texel block+--+-- - If @srcImage@ is a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- then for each element of @pRegions@, @extent.width@ /must/ be a+-- multiple of the compressed texel block width or (@extent.width@ ++-- @srcOffset.x@) /must/ equal the width of the specified+-- @srcSubresource@ of @srcImage@+--+-- - If @srcImage@ is a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- then for each element of @pRegions@, @extent.height@ /must/ be a+-- multiple of the compressed texel block height or (@extent.height@ ++-- @srcOffset.y@) /must/ equal the height of the specified+-- @srcSubresource@ of @srcImage@+--+-- - If @srcImage@ is a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- then for each element of @pRegions@, @extent.depth@ /must/ be a+-- multiple of the compressed texel block depth or (@extent.depth@ ++-- @srcOffset.z@) /must/ equal the depth of the specified+-- @srcSubresource@ of @srcImage@+--+-- - If @dstImage@ is a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- then for each element of @pRegions@, all members of @dstOffset@+-- /must/ be a multiple of the corresponding dimensions of the+-- compressed texel block+--+-- - If @dstImage@ is a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- then for each element of @pRegions@, @extent.width@ /must/ be a+-- multiple of the compressed texel block width or (@extent.width@ ++-- @dstOffset.x@) /must/ equal the width of the specified+-- @dstSubresource@ of @dstImage@+--+-- - If @dstImage@ is a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- then for each element of @pRegions@, @extent.height@ /must/ be a+-- multiple of the compressed texel block height or (@extent.height@ ++-- @dstOffset.y@) /must/ equal the height of the specified+-- @dstSubresource@ of @dstImage@+--+-- - If @dstImage@ is a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- then for each element of @pRegions@, @extent.depth@ /must/ be a+-- multiple of the compressed texel block depth or (@extent.depth@ ++-- @dstOffset.z@) /must/ equal the depth of the specified+-- @dstSubresource@ of @dstImage@+--+-- == Valid Usage (Implicit)+--+-- - @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR'+--+-- - @pNext@ /must/ be @NULL@+--+-- - @srcImage@ /must/ be a valid 'Vulkan.Core10.Handles.Image' handle+--+-- - @srcImageLayout@ /must/ be a valid+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value+--+-- - @dstImage@ /must/ be a valid 'Vulkan.Core10.Handles.Image' handle+--+-- - @dstImageLayout@ /must/ be a valid+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value+--+-- - @pRegions@ /must/ be a valid pointer to an array of @regionCount@+-- valid 'ImageCopy2KHR' structures+--+-- - @regionCount@ /must/ be greater than @0@+--+-- - Both of @dstImage@, and @srcImage@ /must/ have been created,+-- allocated, or retrieved from the same 'Vulkan.Core10.Handles.Device'+--+-- = See Also+--+-- 'Vulkan.Core10.Handles.Image', 'ImageCopy2KHR',+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',+-- 'Vulkan.Core10.Enums.StructureType.StructureType', 'cmdCopyImage2KHR'+data CopyImageInfo2KHR = CopyImageInfo2KHR+ { -- | @srcImage@ is the source image.+ srcImage :: Image+ , -- | @srcImageLayout@ is the current layout of the source image subresource.+ srcImageLayout :: ImageLayout+ , -- | @dstImage@ is the destination image.+ dstImage :: Image+ , -- | @dstImageLayout@ is the current layout of the destination image+ -- subresource.+ dstImageLayout :: ImageLayout+ , -- | @pRegions@ is a pointer to an array of 'ImageCopy2KHR' structures+ -- specifying the regions to copy.+ regions :: Vector ImageCopy2KHR+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (CopyImageInfo2KHR)+#endif+deriving instance Show CopyImageInfo2KHR++instance ToCStruct CopyImageInfo2KHR where+ withCStruct x f = allocaBytesAligned 56 8 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p CopyImageInfo2KHR{..} f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ lift $ poke ((p `plusPtr` 16 :: Ptr Image)) (srcImage)+ lift $ poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (srcImageLayout)+ lift $ poke ((p `plusPtr` 32 :: Ptr Image)) (dstImage)+ lift $ poke ((p `plusPtr` 40 :: Ptr ImageLayout)) (dstImageLayout)+ lift $ poke ((p `plusPtr` 44 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))+ pPRegions' <- ContT $ allocaBytesAligned @ImageCopy2KHR ((Data.Vector.length (regions)) * 88) 8+ Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPRegions' `plusPtr` (88 * (i)) :: Ptr ImageCopy2KHR) (e) . ($ ())) (regions)+ lift $ poke ((p `plusPtr` 48 :: Ptr (Ptr ImageCopy2KHR))) (pPRegions')+ lift $ f+ cStructSize = 56+ cStructAlignment = 8+ pokeZeroCStruct p f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ lift $ poke ((p `plusPtr` 16 :: Ptr Image)) (zero)+ lift $ poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (zero)+ lift $ poke ((p `plusPtr` 32 :: Ptr Image)) (zero)+ lift $ poke ((p `plusPtr` 40 :: Ptr ImageLayout)) (zero)+ pPRegions' <- ContT $ allocaBytesAligned @ImageCopy2KHR ((Data.Vector.length (mempty)) * 88) 8+ Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPRegions' `plusPtr` (88 * (i)) :: Ptr ImageCopy2KHR) (e) . ($ ())) (mempty)+ lift $ poke ((p `plusPtr` 48 :: Ptr (Ptr ImageCopy2KHR))) (pPRegions')+ lift $ f++instance FromCStruct CopyImageInfo2KHR where+ peekCStruct p = do+ srcImage <- peek @Image ((p `plusPtr` 16 :: Ptr Image))+ srcImageLayout <- peek @ImageLayout ((p `plusPtr` 24 :: Ptr ImageLayout))+ dstImage <- peek @Image ((p `plusPtr` 32 :: Ptr Image))+ dstImageLayout <- peek @ImageLayout ((p `plusPtr` 40 :: Ptr ImageLayout))+ regionCount <- peek @Word32 ((p `plusPtr` 44 :: Ptr Word32))+ pRegions <- peek @(Ptr ImageCopy2KHR) ((p `plusPtr` 48 :: Ptr (Ptr ImageCopy2KHR)))+ pRegions' <- generateM (fromIntegral regionCount) (\i -> peekCStruct @ImageCopy2KHR ((pRegions `advancePtrBytes` (88 * (i)) :: Ptr ImageCopy2KHR)))+ pure $ CopyImageInfo2KHR+ srcImage srcImageLayout dstImage dstImageLayout pRegions'++instance Zero CopyImageInfo2KHR where+ zero = CopyImageInfo2KHR+ zero+ zero+ zero+ zero+ mempty+++-- | VkBlitImageInfo2KHR - Structure specifying parameters of blit image+-- command+--+-- == Valid Usage+--+-- - [[VUID-{refpage}-pRegions-00215]] The source region specified by+-- each element of @pRegions@ /must/ be a region that is contained+-- within @srcImage@+--+-- - [[VUID-{refpage}-pRegions-00216]] The destination region specified+-- by each element of @pRegions@ /must/ be a region that is contained+-- within @dstImage@+--+-- - [[VUID-{refpage}-pRegions-00217]] The union of all destination+-- regions, specified by the elements of @pRegions@, /must/ not overlap+-- in memory with any texel that /may/ be sampled during the blit+-- operation+--+-- - [[VUID-{refpage}-srcImage-01999]] The+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>+-- of @srcImage@ /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_BLIT_SRC_BIT'+--+-- - [[VUID-{refpage}-srcImage-01561]] @srcImage@ /must/ not use a format+-- listed in+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion ???>+--+-- - [[VUID-{refpage}-srcImage-00219]] @srcImage@ /must/ have been+-- created with+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'+-- usage flag+--+-- - [[VUID-{refpage}-srcImage-00220]] If @srcImage@ is non-sparse then+-- it /must/ be bound completely and contiguously to a single+-- 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- - [[VUID-{refpage}-srcImageLayout-00221]] @srcImageLayout@ /must/+-- specify the layout of the image subresources of @srcImage@ specified+-- in @pRegions@ at the time this command is executed on a+-- 'Vulkan.Core10.Handles.Device'+--+-- - [[VUID-{refpage}-srcImageLayout-01398]] @srcImageLayout@ /must/ be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL'+-- or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'+--+-- - [[VUID-{refpage}-dstImage-02000]] The+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>+-- of @dstImage@ /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_BLIT_DST_BIT'+--+-- - [[VUID-{refpage}-dstImage-01562]] @dstImage@ /must/ not use a format+-- listed in+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion ???>+--+-- - [[VUID-{refpage}-dstImage-00224]] @dstImage@ /must/ have been+-- created with+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'+-- usage flag+--+-- - [[VUID-{refpage}-dstImage-00225]] If @dstImage@ is non-sparse then+-- it /must/ be bound completely and contiguously to a single+-- 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- - [[VUID-{refpage}-dstImageLayout-00226]] @dstImageLayout@ /must/+-- specify the layout of the image subresources of @dstImage@ specified+-- in @pRegions@ at the time this command is executed on a+-- 'Vulkan.Core10.Handles.Device'+--+-- - [[VUID-{refpage}-dstImageLayout-01399]] @dstImageLayout@ /must/ be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL'+-- or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'+--+-- - [[VUID-{refpage}-srcImage-00229]] If either of @srcImage@ or+-- @dstImage@ was created with a signed integer+-- 'Vulkan.Core10.Enums.Format.Format', the other /must/ also have been+-- created with a signed integer 'Vulkan.Core10.Enums.Format.Format'+--+-- - [[VUID-{refpage}-srcImage-00230]] If either of @srcImage@ or+-- @dstImage@ was created with an unsigned integer+-- 'Vulkan.Core10.Enums.Format.Format', the other /must/ also have been+-- created with an unsigned integer 'Vulkan.Core10.Enums.Format.Format'+--+-- - [[VUID-{refpage}-srcImage-00231]] If either of @srcImage@ or+-- @dstImage@ was created with a depth\/stencil format, the other+-- /must/ have exactly the same format+--+-- - [[VUID-{refpage}-srcImage-00232]] If @srcImage@ was created with a+-- depth\/stencil format, @filter@ /must/ be+-- 'Vulkan.Core10.Enums.Filter.FILTER_NEAREST'+--+-- - [[VUID-{refpage}-srcImage-00233]] @srcImage@ /must/ have been+-- created with a @samples@ value of+-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'+--+-- - [[VUID-{refpage}-dstImage-00234]] @dstImage@ /must/ have been+-- created with a @samples@ value of+-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'+--+-- - [[VUID-{refpage}-filter-02001]] If @filter@ is+-- 'Vulkan.Core10.Enums.Filter.FILTER_LINEAR', then the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>+-- of @srcImage@ /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT'+--+-- - [[VUID-{refpage}-filter-02002]] If @filter@ is+-- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT', then the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>+-- of @srcImage@ /must/ contain+-- 'Vulkan.Extensions.VK_EXT_filter_cubic.FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT'+--+-- - [[VUID-{refpage}-filter-00237]] If @filter@ is+-- 'Vulkan.Extensions.VK_EXT_filter_cubic.FILTER_CUBIC_EXT', @srcImage@+-- /must/ be of type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D'+--+-- - [[VUID-{refpage}-srcSubresource-01705]] The+-- @srcSubresource.mipLevel@ member of each element of @pRegions@+-- /must/ be less than the @mipLevels@ specified in+-- 'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ was created+--+-- - [[VUID-{refpage}-dstSubresource-01706]] The+-- @dstSubresource.mipLevel@ member of each element of @pRegions@+-- /must/ be less than the @mipLevels@ specified in+-- 'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ was created+--+-- - [[VUID-{refpage}-srcSubresource-01707]] The+-- @srcSubresource.baseArrayLayer@ + @srcSubresource.layerCount@ of+-- each element of @pRegions@ /must/ be less than or equal to the+-- @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'+-- when @srcImage@ was created+--+-- - [[VUID-{refpage}-dstSubresource-01708]] The+-- @dstSubresource.baseArrayLayer@ + @dstSubresource.layerCount@ of+-- each element of @pRegions@ /must/ be less than or equal to the+-- @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'+-- when @dstImage@ was created+--+-- - [[VUID-{refpage}-dstImage-02545]] @dstImage@ and @srcImage@ /must/+-- not have been created with @flags@ containing+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'+--+-- - [[VUID-{refpage}-srcImage-00240]] If either @srcImage@ or @dstImage@+-- is of type 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for+-- each element of @pRegions@, @srcSubresource.baseArrayLayer@ and+-- @dstSubresource.baseArrayLayer@ /must/ each be @0@, and+-- @srcSubresource.layerCount@ and @dstSubresource.layerCount@ /must/+-- each be @1@.+--+-- - [[VUID-{refpage}-aspectMask-00241]] For each element of @pRegions@,+-- @srcSubresource.aspectMask@ /must/ specify aspects present in+-- @srcImage@+--+-- - [[VUID-{refpage}-aspectMask-00242]] For each element of @pRegions@,+-- @dstSubresource.aspectMask@ /must/ specify aspects present in+-- @dstImage@+--+-- - [[VUID-{refpage}-srcOffset-00243]] For each element of @pRegions@,+-- @srcOffset@[0].x and @srcOffset@[1].x /must/ both be greater than or+-- equal to @0@ and less than or equal to the width of the specified+-- @srcSubresource@ of @srcImage@+--+-- - [[VUID-{refpage}-srcOffset-00244]] For each element of @pRegions@,+-- @srcOffset@[0].y and @srcOffset@[1].y /must/ both be greater than or+-- equal to @0@ and less than or equal to the height of the specified+-- @srcSubresource@ of @srcImage@+--+-- - [[VUID-{refpage}-srcImage-00245]] If @srcImage@ is of type+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element+-- of @pRegions@, @srcOffset@[0].y /must/ be @0@ and @srcOffset@[1].y+-- /must/ be @1@+--+-- - [[VUID-{refpage}-srcOffset-00246]] For each element of @pRegions@,+-- @srcOffset@[0].z and @srcOffset@[1].z /must/ both be greater than or+-- equal to @0@ and less than or equal to the depth of the specified+-- @srcSubresource@ of @srcImage@+--+-- - [[VUID-{refpage}-srcImage-00247]] If @srcImage@ is of type+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element+-- of @pRegions@, @srcOffset@[0].z /must/ be @0@ and @srcOffset@[1].z+-- /must/ be @1@+--+-- - [[VUID-{refpage}-dstOffset-00248]] For each element of @pRegions@,+-- @dstOffset@[0].x and @dstOffset@[1].x /must/ both be greater than or+-- equal to @0@ and less than or equal to the width of the specified+-- @dstSubresource@ of @dstImage@+--+-- - [[VUID-{refpage}-dstOffset-00249]] For each element of @pRegions@,+-- @dstOffset@[0].y and @dstOffset@[1].y /must/ both be greater than or+-- equal to @0@ and less than or equal to the height of the specified+-- @dstSubresource@ of @dstImage@+--+-- - [[VUID-{refpage}-dstImage-00250]] If @dstImage@ is of type+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element+-- of @pRegions@, @dstOffset@[0].y /must/ be @0@ and @dstOffset@[1].y+-- /must/ be @1@+--+-- - [[VUID-{refpage}-dstOffset-00251]] For each element of @pRegions@,+-- @dstOffset@[0].z and @dstOffset@[1].z /must/ both be greater than or+-- equal to @0@ and less than or equal to the depth of the specified+-- @dstSubresource@ of @dstImage@+--+-- - [[VUID-{refpage}-dstImage-00252]] If @dstImage@ is of type+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element+-- of @pRegions@, @dstOffset@[0].z /must/ be @0@ and @dstOffset@[1].z+-- /must/ be @1@+--+-- == Valid Usage (Implicit)+--+-- - @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR'+--+-- - @pNext@ /must/ be @NULL@+--+-- - @srcImage@ /must/ be a valid 'Vulkan.Core10.Handles.Image' handle+--+-- - @srcImageLayout@ /must/ be a valid+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value+--+-- - @dstImage@ /must/ be a valid 'Vulkan.Core10.Handles.Image' handle+--+-- - @dstImageLayout@ /must/ be a valid+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value+--+-- - @pRegions@ /must/ be a valid pointer to an array of @regionCount@+-- valid 'ImageBlit2KHR' structures+--+-- - @filter@ /must/ be a valid 'Vulkan.Core10.Enums.Filter.Filter' value+--+-- - @regionCount@ /must/ be greater than @0@+--+-- - Both of @dstImage@, and @srcImage@ /must/ have been created,+-- allocated, or retrieved from the same 'Vulkan.Core10.Handles.Device'+--+-- = See Also+--+-- 'Vulkan.Core10.Enums.Filter.Filter', 'Vulkan.Core10.Handles.Image',+-- 'ImageBlit2KHR', 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',+-- 'Vulkan.Core10.Enums.StructureType.StructureType', 'cmdBlitImage2KHR'+data BlitImageInfo2KHR = BlitImageInfo2KHR+ { -- | @srcImage@ is the source image.+ srcImage :: Image+ , -- | @srcImageLayout@ is the layout of the source image subresources for the+ -- blit.+ srcImageLayout :: ImageLayout+ , -- | @dstImage@ is the destination image.+ dstImage :: Image+ , -- | @dstImageLayout@ is the layout of the destination image subresources for+ -- the blit.+ dstImageLayout :: ImageLayout+ , -- | @pRegions@ is a pointer to an array of 'ImageBlit2KHR' structures+ -- specifying the regions to blit.+ regions :: Vector ImageBlit2KHR+ , -- | @filter@ is a 'Vulkan.Core10.Enums.Filter.Filter' specifying the filter+ -- to apply if the blits require scaling.+ filter' :: Filter+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (BlitImageInfo2KHR)+#endif+deriving instance Show BlitImageInfo2KHR++instance ToCStruct BlitImageInfo2KHR where+ withCStruct x f = allocaBytesAligned 64 8 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p BlitImageInfo2KHR{..} f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ lift $ poke ((p `plusPtr` 16 :: Ptr Image)) (srcImage)+ lift $ poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (srcImageLayout)+ lift $ poke ((p `plusPtr` 32 :: Ptr Image)) (dstImage)+ lift $ poke ((p `plusPtr` 40 :: Ptr ImageLayout)) (dstImageLayout)+ lift $ poke ((p `plusPtr` 44 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))+ pPRegions' <- ContT $ allocaBytesAligned @ImageBlit2KHR ((Data.Vector.length (regions)) * 96) 8+ Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPRegions' `plusPtr` (96 * (i)) :: Ptr ImageBlit2KHR) (e) . ($ ())) (regions)+ lift $ poke ((p `plusPtr` 48 :: Ptr (Ptr ImageBlit2KHR))) (pPRegions')+ lift $ poke ((p `plusPtr` 56 :: Ptr Filter)) (filter')+ lift $ f+ cStructSize = 64+ cStructAlignment = 8+ pokeZeroCStruct p f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ lift $ poke ((p `plusPtr` 16 :: Ptr Image)) (zero)+ lift $ poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (zero)+ lift $ poke ((p `plusPtr` 32 :: Ptr Image)) (zero)+ lift $ poke ((p `plusPtr` 40 :: Ptr ImageLayout)) (zero)+ pPRegions' <- ContT $ allocaBytesAligned @ImageBlit2KHR ((Data.Vector.length (mempty)) * 96) 8+ Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPRegions' `plusPtr` (96 * (i)) :: Ptr ImageBlit2KHR) (e) . ($ ())) (mempty)+ lift $ poke ((p `plusPtr` 48 :: Ptr (Ptr ImageBlit2KHR))) (pPRegions')+ lift $ poke ((p `plusPtr` 56 :: Ptr Filter)) (zero)+ lift $ f++instance FromCStruct BlitImageInfo2KHR where+ peekCStruct p = do+ srcImage <- peek @Image ((p `plusPtr` 16 :: Ptr Image))+ srcImageLayout <- peek @ImageLayout ((p `plusPtr` 24 :: Ptr ImageLayout))+ dstImage <- peek @Image ((p `plusPtr` 32 :: Ptr Image))+ dstImageLayout <- peek @ImageLayout ((p `plusPtr` 40 :: Ptr ImageLayout))+ regionCount <- peek @Word32 ((p `plusPtr` 44 :: Ptr Word32))+ pRegions <- peek @(Ptr ImageBlit2KHR) ((p `plusPtr` 48 :: Ptr (Ptr ImageBlit2KHR)))+ pRegions' <- generateM (fromIntegral regionCount) (\i -> peekCStruct @ImageBlit2KHR ((pRegions `advancePtrBytes` (96 * (i)) :: Ptr ImageBlit2KHR)))+ filter' <- peek @Filter ((p `plusPtr` 56 :: Ptr Filter))+ pure $ BlitImageInfo2KHR+ srcImage srcImageLayout dstImage dstImageLayout pRegions' filter'++instance Zero BlitImageInfo2KHR where+ zero = BlitImageInfo2KHR+ zero+ zero+ zero+ zero+ mempty+ zero+++-- | VkCopyBufferToImageInfo2KHR - Structure specifying parameters of a+-- buffer to image copy command+--+-- == Valid Usage+--+-- - @srcBuffer@ /must/ be large enough to contain all buffer locations+-- that are accessed according to+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies-buffers-images-addressing Buffer and Image Addressing>,+-- for each element of @pRegions@+--+-- - The image region specified by each element of @pRegions@ /must/ be a+-- region that is contained within @dstImage@ if the @dstImage@’s+-- 'Vulkan.Core10.Enums.Format.Format' is not a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,+-- and /must/ be a region that is contained within the plane being+-- copied to if the @dstImage@’s 'Vulkan.Core10.Enums.Format.Format' is+-- a multi-planar format+--+-- - The union of all source regions, and the union of all destination+-- regions, specified by the elements of @pRegions@, /must/ not overlap+-- in memory+--+-- - @srcBuffer@ /must/ have been created with+-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_SRC_BIT'+-- usage flag+--+-- - The+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>+-- of @dstImage@ /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_DST_BIT'+--+-- - If @srcBuffer@ is non-sparse then it /must/ be bound completely and+-- contiguously to a single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- - @dstImage@ /must/ have been created with+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_DST_BIT'+-- usage flag+--+-- - If @dstImage@ is non-sparse then it /must/ be bound completely and+-- contiguously to a single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- - @dstImage@ /must/ have a sample count equal to+-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'+--+-- - @dstImageLayout@ /must/ specify the layout of the image subresources+-- of @dstImage@ specified in @pRegions@ at the time this command is+-- executed on a 'Vulkan.Core10.Handles.Device'+--+-- - @dstImageLayout@ /must/ be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL',+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL', or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR'+--+-- - The @imageSubresource.mipLevel@ member of each element of @pRegions@+-- /must/ be less than the @mipLevels@ specified in+-- 'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ was created+--+-- - The @imageSubresource.baseArrayLayer@ ++-- @imageSubresource.layerCount@ of each element of @pRegions@ /must/+-- be less than or equal to the @arrayLayers@ specified in+-- 'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ was created+--+-- - The @imageOffset@ and @imageExtent@ members of each element of+-- @pRegions@ /must/ respect the image transfer granularity+-- requirements of @commandBuffer@’s command pool’s queue family, as+-- described in+-- 'Vulkan.Core10.DeviceInitialization.QueueFamilyProperties'+--+-- - @dstImage@ /must/ not have been created with @flags@ containing+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'+--+-- - If the queue family used to create the+-- 'Vulkan.Core10.Handles.CommandPool' which @commandBuffer@ was+-- allocated from does not support+-- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' or+-- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT', the+-- @bufferOffset@ member of any element of @pRegions@ /must/ be a+-- multiple of @4@+--+-- - If @dstImage@ has a depth\/stencil format, the @bufferOffset@ member+-- of any element of @pRegions@ /must/ be a multiple of @4@+--+-- - If @dstImage@ does not have either a depth\/stencil or a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,+-- then for each element of @pRegions@, @bufferOffset@ /must/ be a+-- multiple of the format’s texel block size+--+-- - If @dstImage@ has a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,+-- then for each element of @pRegions@, @bufferOffset@ /must/ be a+-- multiple of the element size of the compatible format for the format+-- and the @aspectMask@ of the @imageSubresource@ as defined in+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes ???>+--+-- - For each element of @pRegions@, @imageOffset.x@ and+-- (@imageExtent.width@ + @imageOffset.x@) /must/ both be greater than+-- or equal to @0@ and less than or equal to the width of the specified+-- @imageSubresource@ of @dstImage@ where this refers to the width of+-- the /plane/ of the image involved in the copy in the case of a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>+--+-- - For each element of @pRegions@, @imageOffset.y@ and+-- (imageExtent.height + @imageOffset.y@) /must/ both be greater than+-- or equal to @0@ and less than or equal to the height of the+-- specified @imageSubresource@ of @dstImage@ where this refers to the+-- height of the /plane/ of the image involved in the copy in the case+-- of a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>+--+-- - If @dstImage@ is of type+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element+-- of @pRegions@, @imageOffset.y@ /must/ be @0@ and+-- @imageExtent.height@ /must/ be @1@+--+-- - For each element of @pRegions@, @imageOffset.z@ and+-- (imageExtent.depth + @imageOffset.z@) /must/ both be greater than or+-- equal to @0@ and less than or equal to the depth of the specified+-- @imageSubresource@ of @dstImage@+--+-- - If @dstImage@ is of type+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element+-- of @pRegions@, @imageOffset.z@ /must/ be @0@ and @imageExtent.depth@+-- /must/ be @1@+--+-- - If @dstImage@ is a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- for each element of @pRegions@, @bufferRowLength@ /must/ be a+-- multiple of the compressed texel block width+--+-- - If @dstImage@ is a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- for each element of @pRegions@, @bufferImageHeight@ /must/ be a+-- multiple of the compressed texel block height+--+-- - If @dstImage@ is a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- for each element of @pRegions@, all members of @imageOffset@ /must/+-- be a multiple of the corresponding dimensions of the compressed+-- texel block+--+-- - If @dstImage@ is a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- for each element of @pRegions@, @bufferOffset@ /must/ be a multiple+-- of the compressed texel block size in bytes+--+-- - If @dstImage@ is a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- for each element of @pRegions@, @imageExtent.width@ /must/ be a+-- multiple of the compressed texel block width or (@imageExtent.width@+-- + @imageOffset.x@) /must/ equal the width of the specified+-- @imageSubresource@ of @dstImage@+--+-- - If @dstImage@ is a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- for each element of @pRegions@, @imageExtent.height@ /must/ be a+-- multiple of the compressed texel block height or+-- (@imageExtent.height@ + @imageOffset.y@) /must/ equal the height of+-- the specified @imageSubresource@ of @dstImage@+--+-- - If @dstImage@ is a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- for each element of @pRegions@, @imageExtent.depth@ /must/ be a+-- multiple of the compressed texel block depth or (@imageExtent.depth@+-- + @imageOffset.z@) /must/ equal the depth of the specified+-- @imageSubresource@ of @dstImage@+--+-- - For each element of @pRegions@, @imageSubresource.aspectMask@ /must/+-- specify aspects present in @dstImage@+--+-- - If @dstImage@ has a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,+-- then for each element of @pRegions@, @imageSubresource.aspectMask@+-- /must/ be+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT',+-- or+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'+-- (with+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'+-- valid only for image formats with three planes)+--+-- - If @dstImage@ is of type+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', for each element of+-- @pRegions@, @imageSubresource.baseArrayLayer@ /must/ be @0@ and+-- @imageSubresource.layerCount@ /must/ be @1@+--+-- == Valid Usage (Implicit)+--+-- - @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR'+--+-- - @pNext@ /must/ be @NULL@+--+-- - @srcBuffer@ /must/ be a valid 'Vulkan.Core10.Handles.Buffer' handle+--+-- - @dstImage@ /must/ be a valid 'Vulkan.Core10.Handles.Image' handle+--+-- - @dstImageLayout@ /must/ be a valid+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value+--+-- - @pRegions@ /must/ be a valid pointer to an array of @regionCount@+-- valid 'BufferImageCopy2KHR' structures+--+-- - @regionCount@ /must/ be greater than @0@+--+-- - Both of @dstImage@, and @srcBuffer@ /must/ have been created,+-- allocated, or retrieved from the same 'Vulkan.Core10.Handles.Device'+--+-- = See Also+--+-- 'Vulkan.Core10.Handles.Buffer', 'BufferImageCopy2KHR',+-- 'Vulkan.Core10.Handles.Image',+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'cmdCopyBufferToImage2KHR'+data CopyBufferToImageInfo2KHR = CopyBufferToImageInfo2KHR+ { -- | @srcBuffer@ is the source buffer.+ srcBuffer :: Buffer+ , -- | @dstImage@ is the destination image.+ dstImage :: Image+ , -- | @dstImageLayout@ is the layout of the destination image subresources for+ -- the copy.+ dstImageLayout :: ImageLayout+ , -- | @pRegions@ is a pointer to an array of 'BufferImageCopy2KHR' structures+ -- specifying the regions to copy.+ regions :: Vector BufferImageCopy2KHR+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (CopyBufferToImageInfo2KHR)+#endif+deriving instance Show CopyBufferToImageInfo2KHR++instance ToCStruct CopyBufferToImageInfo2KHR where+ withCStruct x f = allocaBytesAligned 48 8 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p CopyBufferToImageInfo2KHR{..} f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ lift $ poke ((p `plusPtr` 16 :: Ptr Buffer)) (srcBuffer)+ lift $ poke ((p `plusPtr` 24 :: Ptr Image)) (dstImage)+ lift $ poke ((p `plusPtr` 32 :: Ptr ImageLayout)) (dstImageLayout)+ lift $ poke ((p `plusPtr` 36 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))+ pPRegions' <- ContT $ allocaBytesAligned @BufferImageCopy2KHR ((Data.Vector.length (regions)) * 72) 8+ Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPRegions' `plusPtr` (72 * (i)) :: Ptr BufferImageCopy2KHR) (e) . ($ ())) (regions)+ lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr BufferImageCopy2KHR))) (pPRegions')+ lift $ f+ cStructSize = 48+ cStructAlignment = 8+ pokeZeroCStruct p f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ lift $ poke ((p `plusPtr` 16 :: Ptr Buffer)) (zero)+ lift $ poke ((p `plusPtr` 24 :: Ptr Image)) (zero)+ lift $ poke ((p `plusPtr` 32 :: Ptr ImageLayout)) (zero)+ pPRegions' <- ContT $ allocaBytesAligned @BufferImageCopy2KHR ((Data.Vector.length (mempty)) * 72) 8+ Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPRegions' `plusPtr` (72 * (i)) :: Ptr BufferImageCopy2KHR) (e) . ($ ())) (mempty)+ lift $ poke ((p `plusPtr` 40 :: Ptr (Ptr BufferImageCopy2KHR))) (pPRegions')+ lift $ f++instance FromCStruct CopyBufferToImageInfo2KHR where+ peekCStruct p = do+ srcBuffer <- peek @Buffer ((p `plusPtr` 16 :: Ptr Buffer))+ dstImage <- peek @Image ((p `plusPtr` 24 :: Ptr Image))+ dstImageLayout <- peek @ImageLayout ((p `plusPtr` 32 :: Ptr ImageLayout))+ regionCount <- peek @Word32 ((p `plusPtr` 36 :: Ptr Word32))+ pRegions <- peek @(Ptr BufferImageCopy2KHR) ((p `plusPtr` 40 :: Ptr (Ptr BufferImageCopy2KHR)))+ pRegions' <- generateM (fromIntegral regionCount) (\i -> peekCStruct @BufferImageCopy2KHR ((pRegions `advancePtrBytes` (72 * (i)) :: Ptr BufferImageCopy2KHR)))+ pure $ CopyBufferToImageInfo2KHR+ srcBuffer dstImage dstImageLayout pRegions'++instance Zero CopyBufferToImageInfo2KHR where+ zero = CopyBufferToImageInfo2KHR+ zero+ zero+ zero+ mempty+++-- | VkCopyImageToBufferInfo2KHR - Structure specifying parameters of a image+-- to buffer copy command+--+-- == Valid Usage+--+-- - @dstBuffer@ /must/ be large enough to contain all buffer locations+-- that are accessed according to+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#copies-buffers-images-addressing Buffer and Image Addressing>,+-- for each element of @pRegions@+--+-- - The image region specified by each element of @pRegions@ /must/ be a+-- region that is contained within @srcImage@ if the @srcImage@’s+-- 'Vulkan.Core10.Enums.Format.Format' is not a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,+-- and /must/ be a region that is contained within the plane being+-- copied if the @srcImage@’s 'Vulkan.Core10.Enums.Format.Format' is a+-- multi-planar format+--+-- - The union of all source regions, and the union of all destination+-- regions, specified by the elements of @pRegions@, /must/ not overlap+-- in memory+--+-- - @srcImage@ /must/ have been created with+-- 'Vulkan.Core10.Enums.ImageUsageFlagBits.IMAGE_USAGE_TRANSFER_SRC_BIT'+-- usage flag+--+-- - The+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>+-- of @srcImage@ /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_TRANSFER_SRC_BIT'+--+-- - If @srcImage@ is non-sparse then it /must/ be bound completely and+-- contiguously to a single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- - @dstBuffer@ /must/ have been created with+-- 'Vulkan.Core10.Enums.BufferUsageFlagBits.BUFFER_USAGE_TRANSFER_DST_BIT'+-- usage flag+--+-- - If @dstBuffer@ is non-sparse then it /must/ be bound completely and+-- contiguously to a single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- - @srcImage@ /must/ have a sample count equal to+-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'+--+-- - @srcImageLayout@ /must/ specify the layout of the image subresources+-- of @srcImage@ specified in @pRegions@ at the time this command is+-- executed on a 'Vulkan.Core10.Handles.Device'+--+-- - @srcImageLayout@ /must/ be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL',+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL', or+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR'+--+-- - The @imageSubresource.mipLevel@ member of each element of @pRegions@+-- /must/ be less than the @mipLevels@ specified in+-- 'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ was created+--+-- - The @imageSubresource.baseArrayLayer@ ++-- @imageSubresource.layerCount@ of each element of @pRegions@ /must/+-- be less than or equal to the @arrayLayers@ specified in+-- 'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ was created+--+-- - The @imageOffset@ and @imageExtent@ members of each element of+-- @pRegions@ /must/ respect the image transfer granularity+-- requirements of @commandBuffer@’s command pool’s queue family, as+-- described in+-- 'Vulkan.Core10.DeviceInitialization.QueueFamilyProperties'+--+-- - @srcImage@ /must/ not have been created with @flags@ containing+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'+--+-- - If the queue family used to create the+-- 'Vulkan.Core10.Handles.CommandPool' which @commandBuffer@ was+-- allocated from does not support+-- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_GRAPHICS_BIT' or+-- 'Vulkan.Core10.Enums.QueueFlagBits.QUEUE_COMPUTE_BIT', the+-- @bufferOffset@ member of any element of @pRegions@ /must/ be a+-- multiple of @4@+--+-- - If @srcImage@ has a depth\/stencil format, the @bufferOffset@ member+-- of any element of @pRegions@ /must/ be a multiple of @4@+--+-- - If {imageparam} does not have either a depth\/stencil or a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,+-- then for each element of @pRegions@, @bufferOffset@ /must/ be a+-- multiple of the format’s texel block size+--+-- - If {imageparam} has a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,+-- then for each element of @pRegions@, @bufferOffset@ /must/ be a+-- multiple of the element size of the compatible format for the format+-- and the @aspectMask@ of the @imageSubresource@ as defined in+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-compatible-planes ???>+--+-- - For each element of @pRegions@, @imageOffset.x@ and+-- (@imageExtent.width@ + @imageOffset.x@) /must/ both be greater than+-- or equal to @0@ and less than or equal to the width of the specified+-- @imageSubresource@ of {imageparam} where this refers to the width of+-- the /plane/ of the image involved in the copy in the case of a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>+--+-- - For each element of @pRegions@, @imageOffset.y@ and+-- (imageExtent.height + @imageOffset.y@) /must/ both be greater than+-- or equal to @0@ and less than or equal to the height of the+-- specified @imageSubresource@ of {imageparam} where this refers to+-- the height of the /plane/ of the image involved in the copy in the+-- case of a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>+--+-- - If {imageparam} is of type+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element+-- of @pRegions@, @imageOffset.y@ /must/ be @0@ and+-- @imageExtent.height@ /must/ be @1@+--+-- - For each element of @pRegions@, @imageOffset.z@ and+-- (imageExtent.depth + @imageOffset.z@) /must/ both be greater than or+-- equal to @0@ and less than or equal to the depth of the specified+-- @imageSubresource@ of {imageparam}+--+-- - If {imageparam} is of type+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element+-- of @pRegions@, @imageOffset.z@ /must/ be @0@ and @imageExtent.depth@+-- /must/ be @1@+--+-- - If {imageparam} is a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- for each element of @pRegions@, @bufferRowLength@ /must/ be a+-- multiple of the compressed texel block width+--+-- - If {imageparam} is a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- for each element of @pRegions@, @bufferImageHeight@ /must/ be a+-- multiple of the compressed texel block height+--+-- - If {imageparam} is a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- for each element of @pRegions@, all members of @imageOffset@ /must/+-- be a multiple of the corresponding dimensions of the compressed+-- texel block+--+-- - If {imageparam} is a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- for each element of @pRegions@, @bufferOffset@ /must/ be a multiple+-- of the compressed texel block size in bytes+--+-- - If {imageparam} is a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- for each element of @pRegions@, @imageExtent.width@ /must/ be a+-- multiple of the compressed texel block width or (@imageExtent.width@+-- + @imageOffset.x@) /must/ equal the width of the specified+-- @imageSubresource@ of {imageparam}+--+-- - If {imageparam} is a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- for each element of @pRegions@, @imageExtent.height@ /must/ be a+-- multiple of the compressed texel block height or+-- (@imageExtent.height@ + @imageOffset.y@) /must/ equal the height of+-- the specified @imageSubresource@ of {imageparam}+--+-- - If {imageparam} is a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#blocked-image blocked image>,+-- for each element of @pRegions@, @imageExtent.depth@ /must/ be a+-- multiple of the compressed texel block depth or (@imageExtent.depth@+-- + @imageOffset.z@) /must/ equal the depth of the specified+-- @imageSubresource@ of {imageparam}+--+-- - For each element of @pRegions@, @imageSubresource.aspectMask@ /must/+-- specify aspects present in {imageparam}+--+-- - If {imageparam} has a+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#formats-requiring-sampler-ycbcr-conversion multi-planar format>,+-- then for each element of @pRegions@, @imageSubresource.aspectMask@+-- /must/ be+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_0_BIT',+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_1_BIT',+-- or+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'+-- (with+-- 'Vulkan.Core10.Enums.ImageAspectFlagBits.IMAGE_ASPECT_PLANE_2_BIT'+-- valid only for image formats with three planes)+--+-- - If {imageparam} is of type+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', for each element of+-- @pRegions@, @imageSubresource.baseArrayLayer@ /must/ be @0@ and+-- @imageSubresource.layerCount@ /must/ be @1@+--+-- == Valid Usage (Implicit)+--+-- - @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR'+--+-- - @pNext@ /must/ be @NULL@+--+-- - @srcImage@ /must/ be a valid 'Vulkan.Core10.Handles.Image' handle+--+-- - @srcImageLayout@ /must/ be a valid+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value+--+-- - @dstBuffer@ /must/ be a valid 'Vulkan.Core10.Handles.Buffer' handle+--+-- - @pRegions@ /must/ be a valid pointer to an array of @regionCount@+-- valid 'BufferImageCopy2KHR' structures+--+-- - @regionCount@ /must/ be greater than @0@+--+-- - Both of @dstBuffer@, and @srcImage@ /must/ have been created,+-- allocated, or retrieved from the same 'Vulkan.Core10.Handles.Device'+--+-- = See Also+--+-- 'Vulkan.Core10.Handles.Buffer', 'BufferImageCopy2KHR',+-- 'Vulkan.Core10.Handles.Image',+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'cmdCopyImageToBuffer2KHR'+data CopyImageToBufferInfo2KHR = CopyImageToBufferInfo2KHR+ { -- | @srcImage@ is the source image.+ srcImage :: Image+ , -- | @srcImageLayout@ is the layout of the source image subresources for the+ -- copy.+ srcImageLayout :: ImageLayout+ , -- | @dstBuffer@ is the destination buffer.+ dstBuffer :: Buffer+ , -- | @pRegions@ is a pointer to an array of 'BufferImageCopy2KHR' structures+ -- specifying the regions to copy.+ regions :: Vector BufferImageCopy2KHR+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (CopyImageToBufferInfo2KHR)+#endif+deriving instance Show CopyImageToBufferInfo2KHR++instance ToCStruct CopyImageToBufferInfo2KHR where+ withCStruct x f = allocaBytesAligned 56 8 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p CopyImageToBufferInfo2KHR{..} f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ lift $ poke ((p `plusPtr` 16 :: Ptr Image)) (srcImage)+ lift $ poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (srcImageLayout)+ lift $ poke ((p `plusPtr` 32 :: Ptr Buffer)) (dstBuffer)+ lift $ poke ((p `plusPtr` 40 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))+ pPRegions' <- ContT $ allocaBytesAligned @BufferImageCopy2KHR ((Data.Vector.length (regions)) * 72) 8+ Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPRegions' `plusPtr` (72 * (i)) :: Ptr BufferImageCopy2KHR) (e) . ($ ())) (regions)+ lift $ poke ((p `plusPtr` 48 :: Ptr (Ptr BufferImageCopy2KHR))) (pPRegions')+ lift $ f+ cStructSize = 56+ cStructAlignment = 8+ pokeZeroCStruct p f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ lift $ poke ((p `plusPtr` 16 :: Ptr Image)) (zero)+ lift $ poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (zero)+ lift $ poke ((p `plusPtr` 32 :: Ptr Buffer)) (zero)+ pPRegions' <- ContT $ allocaBytesAligned @BufferImageCopy2KHR ((Data.Vector.length (mempty)) * 72) 8+ Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPRegions' `plusPtr` (72 * (i)) :: Ptr BufferImageCopy2KHR) (e) . ($ ())) (mempty)+ lift $ poke ((p `plusPtr` 48 :: Ptr (Ptr BufferImageCopy2KHR))) (pPRegions')+ lift $ f++instance FromCStruct CopyImageToBufferInfo2KHR where+ peekCStruct p = do+ srcImage <- peek @Image ((p `plusPtr` 16 :: Ptr Image))+ srcImageLayout <- peek @ImageLayout ((p `plusPtr` 24 :: Ptr ImageLayout))+ dstBuffer <- peek @Buffer ((p `plusPtr` 32 :: Ptr Buffer))+ regionCount <- peek @Word32 ((p `plusPtr` 40 :: Ptr Word32))+ pRegions <- peek @(Ptr BufferImageCopy2KHR) ((p `plusPtr` 48 :: Ptr (Ptr BufferImageCopy2KHR)))+ pRegions' <- generateM (fromIntegral regionCount) (\i -> peekCStruct @BufferImageCopy2KHR ((pRegions `advancePtrBytes` (72 * (i)) :: Ptr BufferImageCopy2KHR)))+ pure $ CopyImageToBufferInfo2KHR+ srcImage srcImageLayout dstBuffer pRegions'++instance Zero CopyImageToBufferInfo2KHR where+ zero = CopyImageToBufferInfo2KHR+ zero+ zero+ zero+ mempty+++-- | VkResolveImageInfo2KHR - Structure specifying parameters of resolve+-- image command+--+-- == Valid Usage+--+-- - The union of all source regions, and the union of all destination+-- regions, specified by the elements of @pRegions@, /must/ not overlap+-- in memory+--+-- - If @srcImage@ is non-sparse then it /must/ be bound completely and+-- contiguously to a single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- - @srcImage@ /must/ have a sample count equal to any valid sample+-- count value other than+-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'+--+-- - If @dstImage@ is non-sparse then it /must/ be bound completely and+-- contiguously to a single 'Vulkan.Core10.Handles.DeviceMemory' object+--+-- - @dstImage@ /must/ have a sample count equal to+-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT'+--+-- - @srcImageLayout@ /must/ specify the layout of the image subresources+-- of @srcImage@ specified in @pRegions@ at the time this command is+-- executed on a 'Vulkan.Core10.Handles.Device'+--+-- - @srcImageLayout@ /must/ be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL'+-- or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'+--+-- - @dstImageLayout@ /must/ specify the layout of the image subresources+-- of @dstImage@ specified in @pRegions@ at the time this command is+-- executed on a 'Vulkan.Core10.Handles.Device'+--+-- - @dstImageLayout@ /must/ be+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_SHARED_PRESENT_KHR',+-- 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL'+-- or 'Vulkan.Core10.Enums.ImageLayout.IMAGE_LAYOUT_GENERAL'+--+-- - The+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-format-features format features>+-- of @dstImage@ /must/ contain+-- 'Vulkan.Core10.Enums.FormatFeatureFlagBits.FORMAT_FEATURE_COLOR_ATTACHMENT_BIT'+--+-- - @srcImage@ and @dstImage@ /must/ have been created with the same+-- image format+--+-- - The @srcSubresource.mipLevel@ member of each element of @pRegions@+-- /must/ be less than the @mipLevels@ specified in+-- 'Vulkan.Core10.Image.ImageCreateInfo' when @srcImage@ was created+--+-- - The @dstSubresource.mipLevel@ member of each element of @pRegions@+-- /must/ be less than the @mipLevels@ specified in+-- 'Vulkan.Core10.Image.ImageCreateInfo' when @dstImage@ was created+--+-- - The @srcSubresource.baseArrayLayer@ + @srcSubresource.layerCount@ of+-- each element of @pRegions@ /must/ be less than or equal to the+-- @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'+-- when @srcImage@ was created+--+-- - The @dstSubresource.baseArrayLayer@ + @dstSubresource.layerCount@ of+-- each element of @pRegions@ /must/ be less than or equal to the+-- @arrayLayers@ specified in 'Vulkan.Core10.Image.ImageCreateInfo'+-- when @dstImage@ was created+--+-- - @dstImage@ and @srcImage@ /must/ not have been created with @flags@+-- containing+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SUBSAMPLED_BIT_EXT'+--+-- - If either @srcImage@ or @dstImage@ are of type+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element+-- of @pRegions@, @srcSubresource.baseArrayLayer@ /must/ be @0@ and+-- @srcSubresource.layerCount@ /must/ be @1@+--+-- - If either @srcImage@ or @dstImage@ are of type+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D', then for each element+-- of @pRegions@, @dstSubresource.baseArrayLayer@ /must/ be @0@ and+-- @dstSubresource.layerCount@ /must/ be @1@+--+-- - For each element of @pRegions@, @srcOffset.x@ and (@extent.width@ ++-- @srcOffset.x@) /must/ both be greater than or equal to @0@ and less+-- than or equal to the width of the specified @srcSubresource@ of+-- @srcImage@+--+-- - For each element of @pRegions@, @srcOffset.y@ and (@extent.height@ ++-- @srcOffset.y@) /must/ both be greater than or equal to @0@ and less+-- than or equal to the height of the specified @srcSubresource@ of+-- @srcImage@+--+-- - If @srcImage@ is of type+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element+-- of @pRegions@, @srcOffset.y@ /must/ be @0@ and @extent.height@+-- /must/ be @1@+--+-- - For each element of @pRegions@, @srcOffset.z@ and (@extent.depth@ ++-- @srcOffset.z@) /must/ both be greater than or equal to @0@ and less+-- than or equal to the depth of the specified @srcSubresource@ of+-- @srcImage@+--+-- - If @srcImage@ is of type+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element+-- of @pRegions@, @srcOffset.z@ /must/ be @0@ and @extent.depth@ /must/+-- be @1@+--+-- - For each element of @pRegions@, @dstOffset.x@ and (@extent.width@ ++-- @dstOffset.x@) /must/ both be greater than or equal to @0@ and less+-- than or equal to the width of the specified @dstSubresource@ of+-- @dstImage@+--+-- - For each element of @pRegions@, @dstOffset.y@ and (@extent.height@ ++-- @dstOffset.y@) /must/ both be greater than or equal to @0@ and less+-- than or equal to the height of the specified @dstSubresource@ of+-- @dstImage@+--+-- - If @dstImage@ is of type+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D', then for each element+-- of @pRegions@, @dstOffset.y@ /must/ be @0@ and @extent.height@+-- /must/ be @1@+--+-- - For each element of @pRegions@, @dstOffset.z@ and (@extent.depth@ ++-- @dstOffset.z@) /must/ both be greater than or equal to @0@ and less+-- than or equal to the depth of the specified @dstSubresource@ of+-- @dstImage@+--+-- - If @dstImage@ is of type+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' or+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D', then for each element+-- of @pRegions@, @dstOffset.z@ /must/ be @0@ and @extent.depth@ /must/+-- be @1@+--+-- == Valid Usage (Implicit)+--+-- - @sType@ /must/ be+-- 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR'+--+-- - @pNext@ /must/ be @NULL@+--+-- - @srcImage@ /must/ be a valid 'Vulkan.Core10.Handles.Image' handle+--+-- - @srcImageLayout@ /must/ be a valid+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value+--+-- - @dstImage@ /must/ be a valid 'Vulkan.Core10.Handles.Image' handle+--+-- - @dstImageLayout@ /must/ be a valid+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout' value+--+-- - @pRegions@ /must/ be a valid pointer to an array of @regionCount@+-- valid 'ImageResolve2KHR' structures+--+-- - @regionCount@ /must/ be greater than @0@+--+-- - Both of @dstImage@, and @srcImage@ /must/ have been created,+-- allocated, or retrieved from the same 'Vulkan.Core10.Handles.Device'+--+-- = See Also+--+-- 'Vulkan.Core10.Handles.Image',+-- 'Vulkan.Core10.Enums.ImageLayout.ImageLayout', 'ImageResolve2KHR',+-- 'Vulkan.Core10.Enums.StructureType.StructureType', 'cmdResolveImage2KHR'+data ResolveImageInfo2KHR = ResolveImageInfo2KHR+ { -- | @srcImage@ is the source image.+ srcImage :: Image+ , -- | @srcImageLayout@ is the layout of the source image subresources for the+ -- resolve.+ srcImageLayout :: ImageLayout+ , -- | @dstImage@ is the destination image.+ dstImage :: Image+ , -- | @dstImageLayout@ is the layout of the destination image subresources for+ -- the resolve.+ dstImageLayout :: ImageLayout+ , -- | @pRegions@ is a pointer to an array of 'ImageResolve2KHR' structures+ -- specifying the regions to resolve.+ regions :: Vector ImageResolve2KHR+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (ResolveImageInfo2KHR)+#endif+deriving instance Show ResolveImageInfo2KHR++instance ToCStruct ResolveImageInfo2KHR where+ withCStruct x f = allocaBytesAligned 56 8 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p ResolveImageInfo2KHR{..} f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ lift $ poke ((p `plusPtr` 16 :: Ptr Image)) (srcImage)+ lift $ poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (srcImageLayout)+ lift $ poke ((p `plusPtr` 32 :: Ptr Image)) (dstImage)+ lift $ poke ((p `plusPtr` 40 :: Ptr ImageLayout)) (dstImageLayout)+ lift $ poke ((p `plusPtr` 44 :: Ptr Word32)) ((fromIntegral (Data.Vector.length $ (regions)) :: Word32))+ pPRegions' <- ContT $ allocaBytesAligned @ImageResolve2KHR ((Data.Vector.length (regions)) * 88) 8+ Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPRegions' `plusPtr` (88 * (i)) :: Ptr ImageResolve2KHR) (e) . ($ ())) (regions)+ lift $ poke ((p `plusPtr` 48 :: Ptr (Ptr ImageResolve2KHR))) (pPRegions')+ lift $ f+ cStructSize = 56+ cStructAlignment = 8+ pokeZeroCStruct p f = evalContT $ do+ lift $ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR)+ lift $ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ lift $ poke ((p `plusPtr` 16 :: Ptr Image)) (zero)+ lift $ poke ((p `plusPtr` 24 :: Ptr ImageLayout)) (zero)+ lift $ poke ((p `plusPtr` 32 :: Ptr Image)) (zero)+ lift $ poke ((p `plusPtr` 40 :: Ptr ImageLayout)) (zero)+ pPRegions' <- ContT $ allocaBytesAligned @ImageResolve2KHR ((Data.Vector.length (mempty)) * 88) 8+ Data.Vector.imapM_ (\i e -> ContT $ pokeCStruct (pPRegions' `plusPtr` (88 * (i)) :: Ptr ImageResolve2KHR) (e) . ($ ())) (mempty)+ lift $ poke ((p `plusPtr` 48 :: Ptr (Ptr ImageResolve2KHR))) (pPRegions')+ lift $ f++instance FromCStruct ResolveImageInfo2KHR where+ peekCStruct p = do+ srcImage <- peek @Image ((p `plusPtr` 16 :: Ptr Image))+ srcImageLayout <- peek @ImageLayout ((p `plusPtr` 24 :: Ptr ImageLayout))+ dstImage <- peek @Image ((p `plusPtr` 32 :: Ptr Image))+ dstImageLayout <- peek @ImageLayout ((p `plusPtr` 40 :: Ptr ImageLayout))+ regionCount <- peek @Word32 ((p `plusPtr` 44 :: Ptr Word32))+ pRegions <- peek @(Ptr ImageResolve2KHR) ((p `plusPtr` 48 :: Ptr (Ptr ImageResolve2KHR)))+ pRegions' <- generateM (fromIntegral regionCount) (\i -> peekCStruct @ImageResolve2KHR ((pRegions `advancePtrBytes` (88 * (i)) :: Ptr ImageResolve2KHR)))+ pure $ ResolveImageInfo2KHR+ srcImage srcImageLayout dstImage dstImageLayout pRegions'++instance Zero ResolveImageInfo2KHR where+ zero = ResolveImageInfo2KHR+ zero+ zero+ zero+ zero+ mempty+++type KHR_COPY_COMMANDS_2_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_KHR_COPY_COMMANDS_2_SPEC_VERSION"+pattern KHR_COPY_COMMANDS_2_SPEC_VERSION :: forall a . Integral a => a+pattern KHR_COPY_COMMANDS_2_SPEC_VERSION = 1+++type KHR_COPY_COMMANDS_2_EXTENSION_NAME = "VK_KHR_copy_commands2"++-- No documentation found for TopLevel "VK_KHR_COPY_COMMANDS_2_EXTENSION_NAME"+pattern KHR_COPY_COMMANDS_2_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern KHR_COPY_COMMANDS_2_EXTENSION_NAME = "VK_KHR_copy_commands2"+
+ src/Vulkan/Extensions/VK_KHR_copy_commands2.hs-boot view
@@ -0,0 +1,104 @@+{-# language CPP #-}+module Vulkan.Extensions.VK_KHR_copy_commands2 ( BlitImageInfo2KHR+ , BufferCopy2KHR+ , BufferImageCopy2KHR+ , CopyBufferInfo2KHR+ , CopyBufferToImageInfo2KHR+ , CopyImageInfo2KHR+ , CopyImageToBufferInfo2KHR+ , ImageBlit2KHR+ , ImageCopy2KHR+ , ImageResolve2KHR+ , ResolveImageInfo2KHR+ ) where++import Data.Kind (Type)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+data BlitImageInfo2KHR++instance ToCStruct BlitImageInfo2KHR+instance Show BlitImageInfo2KHR++instance FromCStruct BlitImageInfo2KHR+++data BufferCopy2KHR++instance ToCStruct BufferCopy2KHR+instance Show BufferCopy2KHR++instance FromCStruct BufferCopy2KHR+++data BufferImageCopy2KHR++instance ToCStruct BufferImageCopy2KHR+instance Show BufferImageCopy2KHR++instance FromCStruct BufferImageCopy2KHR+++data CopyBufferInfo2KHR++instance ToCStruct CopyBufferInfo2KHR+instance Show CopyBufferInfo2KHR++instance FromCStruct CopyBufferInfo2KHR+++data CopyBufferToImageInfo2KHR++instance ToCStruct CopyBufferToImageInfo2KHR+instance Show CopyBufferToImageInfo2KHR++instance FromCStruct CopyBufferToImageInfo2KHR+++data CopyImageInfo2KHR++instance ToCStruct CopyImageInfo2KHR+instance Show CopyImageInfo2KHR++instance FromCStruct CopyImageInfo2KHR+++data CopyImageToBufferInfo2KHR++instance ToCStruct CopyImageToBufferInfo2KHR+instance Show CopyImageToBufferInfo2KHR++instance FromCStruct CopyImageToBufferInfo2KHR+++data ImageBlit2KHR++instance ToCStruct ImageBlit2KHR+instance Show ImageBlit2KHR++instance FromCStruct ImageBlit2KHR+++data ImageCopy2KHR++instance ToCStruct ImageCopy2KHR+instance Show ImageCopy2KHR++instance FromCStruct ImageCopy2KHR+++data ImageResolve2KHR++instance ToCStruct ImageResolve2KHR+instance Show ImageResolve2KHR++instance FromCStruct ImageResolve2KHR+++data ResolveImageInfo2KHR++instance ToCStruct ResolveImageInfo2KHR+instance Show ResolveImageInfo2KHR++instance FromCStruct ResolveImageInfo2KHR+
+ src/Vulkan/Extensions/VK_KHR_portability_subset.hs view
@@ -0,0 +1,315 @@+{-# language CPP #-}+module Vulkan.Extensions.VK_KHR_portability_subset ( PhysicalDevicePortabilitySubsetFeaturesKHR(..)+ , PhysicalDevicePortabilitySubsetPropertiesKHR(..)+ , KHR_PORTABILITY_SUBSET_SPEC_VERSION+ , pattern KHR_PORTABILITY_SUBSET_SPEC_VERSION+ , KHR_PORTABILITY_SUBSET_EXTENSION_NAME+ , pattern KHR_PORTABILITY_SUBSET_EXTENSION_NAME+ ) where++import Foreign.Marshal.Alloc (allocaBytesAligned)+import Foreign.Ptr (nullPtr)+import Foreign.Ptr (plusPtr)+import Data.String (IsString)+import Data.Typeable (Typeable)+import Foreign.Storable (Storable)+import Foreign.Storable (Storable(peek))+import Foreign.Storable (Storable(poke))+import qualified Foreign.Storable (Storable(..))+import GHC.Generics (Generic)+import Foreign.Ptr (Ptr)+import Data.Word (Word32)+import Data.Kind (Type)+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR))+-- | VkPhysicalDevicePortabilitySubsetFeaturesKHR - Structure describing the+-- features that may not be supported by an implementation of the Vulkan+-- 1.0 Portability Subset+--+-- = Members+--+-- The members of the 'PhysicalDevicePortabilitySubsetFeaturesKHR'+-- structure describe the following features:+--+-- = Description+--+-- If the 'PhysicalDevicePortabilitySubsetFeaturesKHR' structure is+-- included in the @pNext@ chain of+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- it is filled with values indicating whether the features are supported.+-- 'PhysicalDevicePortabilitySubsetFeaturesKHR' /can/ also be used in the+-- @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to enable the+-- features.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDevicePortabilitySubsetFeaturesKHR = PhysicalDevicePortabilitySubsetFeaturesKHR+ { -- | @constantAlphaColorBlendFactors@ indicates whether this implementation+ -- supports constant /alpha/+ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blendfactors>+ -- used as source or destination /color/+ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#framebuffer-blending>.+ constantAlphaColorBlendFactors :: Bool+ , -- | @events@ indicates whether this implementation supports synchronization+ -- using+ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#synchronization-events>.+ events :: Bool+ , -- | @imageViewFormatReinterpretation@ indicates whether this implementation+ -- supports a 'Vulkan.Core10.Handles.ImageView' being created with a texel+ -- format containing a different number of components, or a different+ -- number of bits in each component, than the texel format of the+ -- underlying 'Vulkan.Core10.Handles.Image'.+ imageViewFormatReinterpretation :: Bool+ , -- | @imageViewFormatSwizzle@ indicates whether this implementation supports+ -- remapping format components using+ -- 'Vulkan.Core10.ImageView.ImageViewCreateInfo'::@components@.+ imageViewFormatSwizzle :: Bool+ , -- | @imageView2DOn3DImage@ indicates whether this implementation supports a+ -- 'Vulkan.Core10.Handles.Image' being created with the+ -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT'+ -- flag set, permitting a 2D or 2D array image view to be created on a 3D+ -- 'Vulkan.Core10.Handles.Image'.+ imageView2DOn3DImage :: Bool+ , -- | @multisampleArrayImage@ indicates whether this implementation supports a+ -- 'Vulkan.Core10.Handles.Image' being created as a 2D array with multiple+ -- samples per texel.+ multisampleArrayImage :: Bool+ , -- | @mutableComparisonSamplers@ indicates whether this implementation allows+ -- descriptors with comparison samplers to be+ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#descriptorsets-updates updated>.+ mutableComparisonSamplers :: Bool+ , -- | @pointPolygons@ indicates whether this implementation supports+ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast>+ -- using a /point/+ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#primsrast-polygonmode>.+ pointPolygons :: Bool+ , -- | @samplerMipLodBias@ indicates whether this implementation supports+ -- setting a+ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers-mipLodBias mipmap LOD bias value>+ -- when+ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#samplers creating a sampler>.+ samplerMipLodBias :: Bool+ , -- | @separateStencilMaskRef@ indicates whether this implementation supports+ -- separate front and back+ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fragops-stencil>+ -- reference values.+ separateStencilMaskRef :: Bool+ , -- | @shaderSampleRateInterpolationFunctions@ indicates whether this+ -- implementation supports fragment shaders which use the+ -- @InterpolationFunction@+ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#spirvenv-capabilities-table capability>+ -- and the extended instructions @InterpolateAtCentroid@,+ -- @InterpolateAtOffset@, and @InterpolateAtSample@ from the @GLSL.std.450@+ -- extended instruction set. This member is only meaningful if the+ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-sampleRateShading sampleRateShading>+ -- feature is supported.+ shaderSampleRateInterpolationFunctions :: Bool+ , -- | @tessellationIsolines@ indicates whether this implementation supports+ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#tessellation-isoline-tessellation isoline output>+ -- from the+ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#tessellation>+ -- stage of a graphics pipeline. This member is only meaningful if+ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>+ -- are supported.+ tessellationIsolines :: Bool+ , -- | @tessellationPointMode@ indicates whether this implementation supports+ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#tessellation-point-mode point output>+ -- from the+ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#tessellation>+ -- stage of a graphics pipeline. This member is only meaningful if+ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#features-tessellationShader tessellation shaders>+ -- are supported.+ tessellationPointMode :: Bool+ , -- | @triangleFans@ indicates whether this implementation supports+ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#drawing-triangle-fans>+ -- primitive topology.+ triangleFans :: Bool+ , -- | @vertexAttributeAccessBeyondStride@ indicates whether this+ -- implementation supports accessing a vertex input attribute beyond the+ -- stride of the corresponding vertex input binding.+ vertexAttributeAccessBeyondStride :: Bool+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDevicePortabilitySubsetFeaturesKHR)+#endif+deriving instance Show PhysicalDevicePortabilitySubsetFeaturesKHR++instance ToCStruct PhysicalDevicePortabilitySubsetFeaturesKHR where+ withCStruct x f = allocaBytesAligned 80 8 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDevicePortabilitySubsetFeaturesKHR{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (constantAlphaColorBlendFactors))+ poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (events))+ poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (imageViewFormatReinterpretation))+ poke ((p `plusPtr` 28 :: Ptr Bool32)) (boolToBool32 (imageViewFormatSwizzle))+ poke ((p `plusPtr` 32 :: Ptr Bool32)) (boolToBool32 (imageView2DOn3DImage))+ poke ((p `plusPtr` 36 :: Ptr Bool32)) (boolToBool32 (multisampleArrayImage))+ poke ((p `plusPtr` 40 :: Ptr Bool32)) (boolToBool32 (mutableComparisonSamplers))+ poke ((p `plusPtr` 44 :: Ptr Bool32)) (boolToBool32 (pointPolygons))+ poke ((p `plusPtr` 48 :: Ptr Bool32)) (boolToBool32 (samplerMipLodBias))+ poke ((p `plusPtr` 52 :: Ptr Bool32)) (boolToBool32 (separateStencilMaskRef))+ poke ((p `plusPtr` 56 :: Ptr Bool32)) (boolToBool32 (shaderSampleRateInterpolationFunctions))+ poke ((p `plusPtr` 60 :: Ptr Bool32)) (boolToBool32 (tessellationIsolines))+ poke ((p `plusPtr` 64 :: Ptr Bool32)) (boolToBool32 (tessellationPointMode))+ poke ((p `plusPtr` 68 :: Ptr Bool32)) (boolToBool32 (triangleFans))+ poke ((p `plusPtr` 72 :: Ptr Bool32)) (boolToBool32 (vertexAttributeAccessBeyondStride))+ f+ cStructSize = 80+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 20 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 24 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 28 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 32 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 36 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 40 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 44 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 48 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 52 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 56 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 60 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 64 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 68 :: Ptr Bool32)) (boolToBool32 (zero))+ poke ((p `plusPtr` 72 :: Ptr Bool32)) (boolToBool32 (zero))+ f++instance FromCStruct PhysicalDevicePortabilitySubsetFeaturesKHR where+ peekCStruct p = do+ constantAlphaColorBlendFactors <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ events <- peek @Bool32 ((p `plusPtr` 20 :: Ptr Bool32))+ imageViewFormatReinterpretation <- peek @Bool32 ((p `plusPtr` 24 :: Ptr Bool32))+ imageViewFormatSwizzle <- peek @Bool32 ((p `plusPtr` 28 :: Ptr Bool32))+ imageView2DOn3DImage <- peek @Bool32 ((p `plusPtr` 32 :: Ptr Bool32))+ multisampleArrayImage <- peek @Bool32 ((p `plusPtr` 36 :: Ptr Bool32))+ mutableComparisonSamplers <- peek @Bool32 ((p `plusPtr` 40 :: Ptr Bool32))+ pointPolygons <- peek @Bool32 ((p `plusPtr` 44 :: Ptr Bool32))+ samplerMipLodBias <- peek @Bool32 ((p `plusPtr` 48 :: Ptr Bool32))+ separateStencilMaskRef <- peek @Bool32 ((p `plusPtr` 52 :: Ptr Bool32))+ shaderSampleRateInterpolationFunctions <- peek @Bool32 ((p `plusPtr` 56 :: Ptr Bool32))+ tessellationIsolines <- peek @Bool32 ((p `plusPtr` 60 :: Ptr Bool32))+ tessellationPointMode <- peek @Bool32 ((p `plusPtr` 64 :: Ptr Bool32))+ triangleFans <- peek @Bool32 ((p `plusPtr` 68 :: Ptr Bool32))+ vertexAttributeAccessBeyondStride <- peek @Bool32 ((p `plusPtr` 72 :: Ptr Bool32))+ pure $ PhysicalDevicePortabilitySubsetFeaturesKHR+ (bool32ToBool constantAlphaColorBlendFactors) (bool32ToBool events) (bool32ToBool imageViewFormatReinterpretation) (bool32ToBool imageViewFormatSwizzle) (bool32ToBool imageView2DOn3DImage) (bool32ToBool multisampleArrayImage) (bool32ToBool mutableComparisonSamplers) (bool32ToBool pointPolygons) (bool32ToBool samplerMipLodBias) (bool32ToBool separateStencilMaskRef) (bool32ToBool shaderSampleRateInterpolationFunctions) (bool32ToBool tessellationIsolines) (bool32ToBool tessellationPointMode) (bool32ToBool triangleFans) (bool32ToBool vertexAttributeAccessBeyondStride)++instance Storable PhysicalDevicePortabilitySubsetFeaturesKHR where+ sizeOf ~_ = 80+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDevicePortabilitySubsetFeaturesKHR where+ zero = PhysicalDevicePortabilitySubsetFeaturesKHR+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+ zero+++-- | VkPhysicalDevicePortabilitySubsetPropertiesKHR - Structure describing+-- additional properties supported by a portable implementation+--+-- = Members+--+-- The members of the 'PhysicalDevicePortabilitySubsetPropertiesKHR'+-- structure describe the following implementation-dependent limits:+--+-- = Description+--+-- If the 'PhysicalDevicePortabilitySubsetPropertiesKHR' structure is+-- included in the @pNext@ chain of+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2',+-- it is filled with the implementation-dependent limits.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDevicePortabilitySubsetPropertiesKHR = PhysicalDevicePortabilitySubsetPropertiesKHR+ { -- | @minVertexInputBindingStrideAlignment@ indicates the minimum alignment+ -- for vertex input strides.+ -- 'Vulkan.Core10.Pipeline.VertexInputBindingDescription'::@stride@ /must/+ -- be a multiple of, and at least as large as, this value.+ minVertexInputBindingStrideAlignment :: Word32 }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDevicePortabilitySubsetPropertiesKHR)+#endif+deriving instance Show PhysicalDevicePortabilitySubsetPropertiesKHR++instance ToCStruct PhysicalDevicePortabilitySubsetPropertiesKHR where+ withCStruct x f = allocaBytesAligned 24 8 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDevicePortabilitySubsetPropertiesKHR{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Word32)) (minVertexInputBindingStrideAlignment)+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Word32)) (zero)+ f++instance FromCStruct PhysicalDevicePortabilitySubsetPropertiesKHR where+ peekCStruct p = do+ minVertexInputBindingStrideAlignment <- peek @Word32 ((p `plusPtr` 16 :: Ptr Word32))+ pure $ PhysicalDevicePortabilitySubsetPropertiesKHR+ minVertexInputBindingStrideAlignment++instance Storable PhysicalDevicePortabilitySubsetPropertiesKHR where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDevicePortabilitySubsetPropertiesKHR where+ zero = PhysicalDevicePortabilitySubsetPropertiesKHR+ zero+++type KHR_PORTABILITY_SUBSET_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_KHR_PORTABILITY_SUBSET_SPEC_VERSION"+pattern KHR_PORTABILITY_SUBSET_SPEC_VERSION :: forall a . Integral a => a+pattern KHR_PORTABILITY_SUBSET_SPEC_VERSION = 1+++type KHR_PORTABILITY_SUBSET_EXTENSION_NAME = "VK_KHR_portability_subset"++-- No documentation found for TopLevel "VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME"+pattern KHR_PORTABILITY_SUBSET_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern KHR_PORTABILITY_SUBSET_EXTENSION_NAME = "VK_KHR_portability_subset"+
+ src/Vulkan/Extensions/VK_KHR_portability_subset.hs-boot view
@@ -0,0 +1,23 @@+{-# language CPP #-}+module Vulkan.Extensions.VK_KHR_portability_subset ( PhysicalDevicePortabilitySubsetFeaturesKHR+ , PhysicalDevicePortabilitySubsetPropertiesKHR+ ) where++import Data.Kind (Type)+import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+data PhysicalDevicePortabilitySubsetFeaturesKHR++instance ToCStruct PhysicalDevicePortabilitySubsetFeaturesKHR+instance Show PhysicalDevicePortabilitySubsetFeaturesKHR++instance FromCStruct PhysicalDevicePortabilitySubsetFeaturesKHR+++data PhysicalDevicePortabilitySubsetPropertiesKHR++instance ToCStruct PhysicalDevicePortabilitySubsetPropertiesKHR+instance Show PhysicalDevicePortabilitySubsetPropertiesKHR++instance FromCStruct PhysicalDevicePortabilitySubsetPropertiesKHR+
src/Vulkan/Version.hs view
@@ -14,11 +14,11 @@ import Data.Word (Word32) pattern HEADER_VERSION :: Word32-pattern HEADER_VERSION = 152+pattern HEADER_VERSION = 154 pattern HEADER_VERSION_COMPLETE :: Word32-pattern HEADER_VERSION_COMPLETE = MAKE_VERSION 1 2 152+pattern HEADER_VERSION_COMPLETE = MAKE_VERSION 1 2 154 pattern MAKE_VERSION :: Word32 -> Word32 -> Word32 -> Word32
vulkan.cabal view
@@ -4,10 +4,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: 06be98e0c8372433f3ac2d3c9ad40001abe816143e1d491edc5ac2656e3ad2e4+-- hash: 78297cbb2ebab10d73e86eb391df435a119a9f23ac6445cccc0d15d85ba0a1d9 name: vulkan-version: 3.6.6+version: 3.6.7 synopsis: Bindings to the Vulkan graphics API. category: Graphics homepage: https://github.com/expipiplus1/vulkan#readme@@ -356,6 +356,7 @@ Vulkan.Extensions.VK_KHR_android_surface Vulkan.Extensions.VK_KHR_bind_memory2 Vulkan.Extensions.VK_KHR_buffer_device_address+ Vulkan.Extensions.VK_KHR_copy_commands2 Vulkan.Extensions.VK_KHR_create_renderpass2 Vulkan.Extensions.VK_KHR_dedicated_allocation Vulkan.Extensions.VK_KHR_deferred_host_operations@@ -393,6 +394,7 @@ Vulkan.Extensions.VK_KHR_performance_query Vulkan.Extensions.VK_KHR_pipeline_executable_properties Vulkan.Extensions.VK_KHR_pipeline_library+ Vulkan.Extensions.VK_KHR_portability_subset Vulkan.Extensions.VK_KHR_push_descriptor Vulkan.Extensions.VK_KHR_ray_tracing Vulkan.Extensions.VK_KHR_relaxed_block_layout