vulkan 3.11.1 → 3.11.2
raw patch · 25 files changed
+994/−186 lines, 25 files
Files
- changelog.md +3/−0
- package.yaml +1/−1
- src/Vulkan/CStruct/Extends.hs +7/−0
- src/Vulkan/Core10/Device.hs +3/−0
- src/Vulkan/Core10/DeviceInitialization.hs +4/−0
- src/Vulkan/Core10/Enums/ImageViewType.hs +0/−10
- src/Vulkan/Core10/Enums/MemoryPropertyFlagBits.hs +5/−0
- src/Vulkan/Core10/Enums/PipelineCacheHeaderVersion.hs +1/−0
- src/Vulkan/Core10/Enums/StructureType.hs +14/−0
- src/Vulkan/Core10/FundamentalTypes.hs +3/−2
- src/Vulkan/Core10/Handles.hs +5/−2
- src/Vulkan/Core10/ImageView.hs +63/−109
- src/Vulkan/Core10/OtherTypes.hs +113/−0
- src/Vulkan/Core10/OtherTypes.hs-boot +9/−0
- src/Vulkan/Core10/SparseResourceMemoryManagement.hs +2/−1
- src/Vulkan/Core11/Enums/ExternalMemoryHandleTypeFlagBits.hs +9/−0
- src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs +2/−0
- src/Vulkan/Dynamic.hs +6/−1
- src/Vulkan/Extensions.hs +2/−0
- src/Vulkan/Extensions/Dependencies.hs +6/−0
- src/Vulkan/Extensions/VK_NV_external_memory_rdma.hs +449/−0
- src/Vulkan/Extensions/VK_NV_external_memory_rdma.hs-boot +201/−0
- src/Vulkan/SPIRVRequirements.hs +82/−57
- src/Vulkan/Version.hs +2/−2
- vulkan.cabal +2/−1
changelog.md view
@@ -2,6 +2,9 @@ ## WIP +## [3.11.2] - 2021-07-07+- Bump API version to v1.2.184+ ## [3.11.1] - 2021-06-28 - Bump API version to v1.2.183
package.yaml view
@@ -1,5 +1,5 @@ name: vulkan-version: "3.11.1"+version: "3.11.2" synopsis: Bindings to the Vulkan graphics API. description: Please see [the readme](https://github.com/expipiplus1/vulkan/#readme) category: Graphics
src/Vulkan/CStruct/Extends.hs view
@@ -314,6 +314,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_memory_fd (MemoryFdPropertiesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer (MemoryGetAndroidHardwareBufferInfoANDROID) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_memory_fd (MemoryGetFdInfoKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_external_memory_rdma (MemoryGetRemoteAddressInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_memory_win32 (MemoryGetWin32HandleInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_external_memory (MemoryGetZirconHandleInfoFUCHSIA) import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (MemoryHeap)@@ -382,6 +383,7 @@ import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_fence_capabilities (PhysicalDeviceExternalFenceInfo) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities (PhysicalDeviceExternalImageFormatInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_external_memory_host (PhysicalDeviceExternalMemoryHostPropertiesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_external_memory_rdma (PhysicalDeviceExternalMemoryRDMAFeaturesNV) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_semaphore_capabilities (PhysicalDeviceExternalSemaphoreInfo) import {-# SOURCE #-} Vulkan.Core10.DeviceInitialization (PhysicalDeviceFeatures) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 (PhysicalDeviceFeatures2)@@ -503,6 +505,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_ycbcr_image_arrays (PhysicalDeviceYcbcrImageArraysFeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_zero_initialize_workgroup_memory (PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR) import {-# SOURCE #-} Vulkan.Core10.PipelineCache (PipelineCacheCreateInfo)+import {-# SOURCE #-} Vulkan.Core10.OtherTypes (PipelineCacheHeaderVersionOne) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_blend_operation_advanced (PipelineColorBlendAdvancedStateCreateInfoEXT) import {-# SOURCE #-} Vulkan.Core10.Pipeline (PipelineColorBlendAttachmentState) import {-# SOURCE #-} Vulkan.Core10.Pipeline (PipelineColorBlendStateCreateInfo)@@ -901,6 +904,7 @@ Extends DeviceCreateInfo PhysicalDeviceFragmentShadingRateEnumsFeaturesNV = () Extends DeviceCreateInfo PhysicalDeviceMutableDescriptorTypeFeaturesVALVE = () Extends DeviceCreateInfo PhysicalDeviceVertexInputDynamicStateFeaturesEXT = ()+ Extends DeviceCreateInfo PhysicalDeviceExternalMemoryRDMAFeaturesNV = () Extends DeviceCreateInfo PhysicalDeviceColorWriteEnableFeaturesEXT = () Extends DeviceCreateInfo PhysicalDeviceSynchronization2FeaturesKHR = () Extends DeviceCreateInfo PhysicalDeviceInheritedViewportScissorFeaturesNV = ()@@ -1045,6 +1049,7 @@ Extends PhysicalDeviceFeatures2 PhysicalDeviceFragmentShadingRateEnumsFeaturesNV = () Extends PhysicalDeviceFeatures2 PhysicalDeviceMutableDescriptorTypeFeaturesVALVE = () Extends PhysicalDeviceFeatures2 PhysicalDeviceVertexInputDynamicStateFeaturesEXT = ()+ Extends PhysicalDeviceFeatures2 PhysicalDeviceExternalMemoryRDMAFeaturesNV = () Extends PhysicalDeviceFeatures2 PhysicalDeviceColorWriteEnableFeaturesEXT = () Extends PhysicalDeviceFeatures2 PhysicalDeviceSynchronization2FeaturesKHR = () Extends PhysicalDeviceFeatures2 PhysicalDeviceInheritedViewportScissorFeaturesNV = ()@@ -1558,6 +1563,7 @@ STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE -> go @PhysicalDeviceMutableDescriptorTypeFeaturesVALVE STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE -> go @MutableDescriptorTypeCreateInfoVALVE STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT -> go @PhysicalDeviceVertexInputDynamicStateFeaturesEXT+ STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV -> go @PhysicalDeviceExternalMemoryRDMAFeaturesNV STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT -> go @PhysicalDeviceColorWriteEnableFeaturesEXT STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT -> go @PipelineColorWriteCreateInfoEXT STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR -> go @MemoryBarrier2KHR@@ -1900,6 +1906,7 @@ {-# complete (::&) :: PhysicalDeviceMutableDescriptorTypeFeaturesVALVE #-} {-# complete (::&) :: MutableDescriptorTypeCreateInfoVALVE #-} {-# complete (::&) :: PhysicalDeviceVertexInputDynamicStateFeaturesEXT #-}+{-# complete (::&) :: PhysicalDeviceExternalMemoryRDMAFeaturesNV #-} {-# complete (::&) :: PhysicalDeviceColorWriteEnableFeaturesEXT #-} {-# complete (::&) :: PipelineColorWriteCreateInfoEXT #-} {-# complete (::&) :: MemoryBarrier2KHR #-}
src/Vulkan/Core10/Device.hs view
@@ -112,6 +112,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_scissor_exclusive (PhysicalDeviceExclusiveScissorFeaturesNV) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state2 (PhysicalDeviceExtendedDynamicState2FeaturesEXT) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state (PhysicalDeviceExtendedDynamicStateFeaturesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_external_memory_rdma (PhysicalDeviceExternalMemoryRDMAFeaturesNV) import Vulkan.Core10.DeviceInitialization (PhysicalDeviceFeatures) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2 (PhysicalDeviceFeatures2) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_fragment_density_map2 (PhysicalDeviceFragmentDensityMap2FeaturesEXT)@@ -739,6 +740,7 @@ -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PhysicalDeviceExclusiveScissorFeaturesNV', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.PhysicalDeviceExtendedDynamicState2FeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.PhysicalDeviceExtendedDynamicStateFeaturesEXT',+-- 'Vulkan.Extensions.VK_NV_external_memory_rdma.PhysicalDeviceExternalMemoryRDMAFeaturesNV', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', -- 'Vulkan.Extensions.VK_EXT_fragment_density_map2.PhysicalDeviceFragmentDensityMap2FeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_fragment_density_map.PhysicalDeviceFragmentDensityMapFeaturesEXT',@@ -892,6 +894,7 @@ | Just Refl <- eqT @e @PhysicalDeviceInheritedViewportScissorFeaturesNV = Just f | Just Refl <- eqT @e @PhysicalDeviceSynchronization2FeaturesKHR = Just f | Just Refl <- eqT @e @PhysicalDeviceColorWriteEnableFeaturesEXT = Just f+ | Just Refl <- eqT @e @PhysicalDeviceExternalMemoryRDMAFeaturesNV = Just f | Just Refl <- eqT @e @PhysicalDeviceVertexInputDynamicStateFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceMutableDescriptorTypeFeaturesVALVE = Just f | Just Refl <- eqT @e @PhysicalDeviceFragmentShadingRateEnumsFeaturesNV = Just f
src/Vulkan/Core10/DeviceInitialization.hs view
@@ -1853,6 +1853,10 @@ -- | -- 'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD' --+-- - 'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_DEVICE_LOCAL_BIT'+-- |+-- 'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV'+-- -- There /must/ be at least one memory type with both the -- 'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_HOST_VISIBLE_BIT' -- and
src/Vulkan/Core10/Enums/ImageViewType.hs view
@@ -21,16 +21,6 @@ -- | VkImageViewType - Image view types ----- = Description------ The exact image view type is partially implicit, based on the image’s--- type and sample count, as well as the view creation parameters as--- described in the--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-views-compatibility image view compatibility table>--- for 'Vulkan.Core10.ImageView.createImageView'. This table also shows--- which SPIR-V @OpTypeImage@ @Dim@ and @Arrayed@ parameters correspond to--- each image view type.--- -- = See Also -- -- 'Vulkan.Core10.ImageView.ImageViewCreateInfo',
src/Vulkan/Core10/Enums/MemoryPropertyFlagBits.hs view
@@ -6,6 +6,7 @@ , MEMORY_PROPERTY_HOST_COHERENT_BIT , MEMORY_PROPERTY_HOST_CACHED_BIT , MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT+ , MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV , MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD , MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD , MEMORY_PROPERTY_PROTECTED_BIT@@ -86,6 +87,9 @@ -- specified in -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#memory-device-lazy_allocation Lazily Allocated Memory>. pattern MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = MemoryPropertyFlagBits 0x00000010+-- | 'MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV' bit specifies that external+-- devices can access this memory directly.+pattern MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV = MemoryPropertyFlagBits 0x00000100 -- | 'MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD' bit specifies that memory -- allocated with this type is not cached on the device. Uncached device -- memory is always device coherent.@@ -116,6 +120,7 @@ , (MEMORY_PROPERTY_HOST_COHERENT_BIT , "HOST_COHERENT_BIT") , (MEMORY_PROPERTY_HOST_CACHED_BIT , "HOST_CACHED_BIT") , (MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT , "LAZILY_ALLOCATED_BIT")+ , (MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV , "RDMA_CAPABLE_BIT_NV") , (MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD, "DEVICE_UNCACHED_BIT_AMD") , (MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD, "DEVICE_COHERENT_BIT_AMD") , (MEMORY_PROPERTY_PROTECTED_BIT , "PROTECTED_BIT")
src/Vulkan/Core10/Enums/PipelineCacheHeaderVersion.hs view
@@ -17,6 +17,7 @@ -- -- = See Also --+-- 'Vulkan.Core10.OtherTypes.PipelineCacheHeaderVersionOne', -- 'Vulkan.Core10.PipelineCache.createPipelineCache', -- 'Vulkan.Core10.PipelineCache.getPipelineCacheData' newtype PipelineCacheHeaderVersion = PipelineCacheHeaderVersion Int32
src/Vulkan/Core10/Enums/StructureType.hs view
@@ -57,6 +57,8 @@ , STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT , STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT+ , STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV+ , STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV , STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA , STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA , STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA@@ -744,6 +746,7 @@ -- 'Vulkan.Extensions.VK_KHR_external_memory_fd.MemoryFdPropertiesKHR', -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.MemoryGetAndroidHardwareBufferInfoANDROID', -- 'Vulkan.Extensions.VK_KHR_external_memory_fd.MemoryGetFdInfoKHR',+-- 'Vulkan.Extensions.VK_NV_external_memory_rdma.MemoryGetRemoteAddressInfoNV', -- 'Vulkan.Extensions.VK_KHR_external_memory_win32.MemoryGetWin32HandleInfoKHR', -- 'Vulkan.Extensions.VK_FUCHSIA_external_memory.MemoryGetZirconHandleInfoFUCHSIA', -- 'Vulkan.Extensions.VK_EXT_external_memory_host.MemoryHostPointerPropertiesEXT',@@ -802,6 +805,7 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_fence_capabilities.PhysicalDeviceExternalFenceInfo', -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceExternalImageFormatInfo', -- 'Vulkan.Extensions.VK_EXT_external_memory_host.PhysicalDeviceExternalMemoryHostPropertiesEXT',+-- 'Vulkan.Extensions.VK_NV_external_memory_rdma.PhysicalDeviceExternalMemoryRDMAFeaturesNV', -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_semaphore_capabilities.PhysicalDeviceExternalSemaphoreInfo', -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', -- 'Vulkan.Core12.Promoted_From_VK_KHR_shader_float_controls.PhysicalDeviceFloatControlsProperties',@@ -1209,6 +1213,10 @@ pattern STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX = StructureType 1000378000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT" pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT = StructureType 1000377000+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV"+pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV = StructureType 1000371001+-- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV"+pattern STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV = StructureType 1000371000 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA" pattern STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA = StructureType 1000365001 -- No documentation found for Nested "VkStructureType" "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA"@@ -2182,6 +2190,8 @@ STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT, STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX, STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT,+ STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV,+ STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV, STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA, STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA, STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA,@@ -2710,6 +2720,10 @@ , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT , "PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT" )+ , ( STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV+ , "PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV"+ )+ , (STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV , "MEMORY_GET_REMOTE_ADDRESS_INFO_NV") , (STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA , "SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA") , (STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA, "IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA") , (STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA , "MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA")
src/Vulkan/Core10/FundamentalTypes.hs view
@@ -201,8 +201,8 @@ -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoPictureResourceKHR VkVideoPictureResourceKHR>, -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VkVideoSessionCreateInfoKHR VkVideoSessionCreateInfoKHR>, -- 'Vulkan.Extensions.VK_KHR_fragment_shading_rate.cmdSetFragmentShadingRateKHR',--- 'Vulkan.Core10.Pass.getRenderAreaGranularity',--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkGetSubpassShadingMaxWorkgroupSizeHUAWEI vkGetSubpassShadingMaxWorkgroupSizeHUAWEI>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI>,+-- 'Vulkan.Core10.Pass.getRenderAreaGranularity' data Extent2D = Extent2D { -- | @width@ is the width of the extent. width :: Word32@@ -436,6 +436,7 @@ -- 'Vulkan.Extensions.VK_NV_scissor_exclusive.PhysicalDeviceExclusiveScissorFeaturesNV', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state2.PhysicalDeviceExtendedDynamicState2FeaturesEXT', -- 'Vulkan.Extensions.VK_EXT_extended_dynamic_state.PhysicalDeviceExtendedDynamicStateFeaturesEXT',+-- 'Vulkan.Extensions.VK_NV_external_memory_rdma.PhysicalDeviceExternalMemoryRDMAFeaturesNV', -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceFeatures', -- 'Vulkan.Core12.Promoted_From_VK_KHR_shader_float_controls.PhysicalDeviceFloatControlsProperties', -- 'Vulkan.Extensions.VK_EXT_fragment_density_map2.PhysicalDeviceFragmentDensityMap2FeaturesEXT',
src/Vulkan/Core10/Handles.hs view
@@ -348,6 +348,7 @@ -- 'Vulkan.Core10.DeviceInitialization.getDeviceProcAddr', -- 'Vulkan.Core10.Queue.getDeviceQueue', -- 'Vulkan.Core11.Originally_Based_On_VK_KHR_protected_memory.getDeviceQueue2',+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI>, -- 'Vulkan.Core10.Event.getEventStatus', -- 'Vulkan.Extensions.VK_KHR_external_fence_fd.getFenceFdKHR', -- 'Vulkan.Core10.Fence.getFenceStatus',@@ -367,6 +368,7 @@ -- 'Vulkan.Extensions.VK_KHR_external_memory_fd.getMemoryFdKHR', -- 'Vulkan.Extensions.VK_KHR_external_memory_fd.getMemoryFdPropertiesKHR', -- 'Vulkan.Extensions.VK_EXT_external_memory_host.getMemoryHostPointerPropertiesEXT',+-- 'Vulkan.Extensions.VK_NV_external_memory_rdma.getMemoryRemoteAddressNV', -- 'Vulkan.Extensions.VK_KHR_external_memory_win32.getMemoryWin32HandleKHR', -- 'Vulkan.Extensions.VK_NV_external_memory_win32.getMemoryWin32HandleNV', -- 'Vulkan.Extensions.VK_KHR_external_memory_win32.getMemoryWin32HandlePropertiesKHR',@@ -666,6 +668,7 @@ -- 'Vulkan.Core10.Memory.MappedMemoryRange', -- 'Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer.MemoryGetAndroidHardwareBufferInfoANDROID', -- 'Vulkan.Extensions.VK_KHR_external_memory_fd.MemoryGetFdInfoKHR',+-- 'Vulkan.Extensions.VK_NV_external_memory_rdma.MemoryGetRemoteAddressInfoNV', -- 'Vulkan.Extensions.VK_KHR_external_memory_win32.MemoryGetWin32HandleInfoKHR', -- 'Vulkan.Extensions.VK_FUCHSIA_external_memory.MemoryGetZirconHandleInfoFUCHSIA', -- 'Vulkan.Core10.SparseResourceMemoryManagement.SparseImageMemoryBind',@@ -1144,8 +1147,8 @@ -- 'Vulkan.Core12.Promoted_From_VK_KHR_create_renderpass2.createRenderPass2', -- 'Vulkan.Extensions.VK_KHR_create_renderpass2.createRenderPass2KHR', -- 'Vulkan.Core10.Pass.destroyRenderPass',--- 'Vulkan.Core10.Pass.getRenderAreaGranularity',--- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkGetSubpassShadingMaxWorkgroupSizeHUAWEI vkGetSubpassShadingMaxWorkgroupSizeHUAWEI>+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI>,+-- 'Vulkan.Core10.Pass.getRenderAreaGranularity' newtype RenderPass = RenderPass Word64 deriving newtype (Eq, Ord, Storable, Zero) deriving anyclass (IsHandle)
src/Vulkan/Core10/ImageView.hs view
@@ -638,119 +638,34 @@ -- which chroma reconstruction operations operate on the same (/uplane/, -- /vplane/) or (/iplane/, /jplane/) coordinates. ----- +----------+--------------------------------------------------------------------------------+----------------------------------------------------------------+--- | Dim, | Image parameters | View parameters |--- | Arrayed, | | |--- | MS | | |--- +==========+================================================================================+================================================================+--- | | @imageType@ = ci.@imageType@ | @baseArrayLayer@, @layerCount@, and @levelCount@ are members |--- | | @width@ = ci.@extent.width@ | of the @subresourceRange@ member. |--- | | @height@ = ci.@extent.height@ | |--- | | @depth@ = ci.@extent.depth@ | |--- | | @arrayLayers@ = ci.@arrayLayers@ | |--- | | @samples@ = ci.@samples@ | |--- | | @flags@ = ci.@flags@ | |--- | | where ci is the 'Vulkan.Core10.Image.ImageCreateInfo' used to create @image@. | |--- +----------+--------------------------------------------------------------------------------+----------------------------------------------------------------+--- | __1D, 0, | @imageType@ = 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' | @viewType@ = |--- | 0__ | @width@ ≥ 1 | 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D' |--- | | @height@ = 1 | @baseArrayLayer@ ≥ 0 |--- | | @depth@ = 1 | @layerCount@ = 1 |--- | | @arrayLayers@ ≥ 1 | |--- | | @samples@ = 1 | |--- +----------+--------------------------------------------------------------------------------+----------------------------------------------------------------+--- | __1D, 1, | @imageType@ = 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' | @viewType@ = |--- | 0__ | @width@ ≥ 1 | 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D_ARRAY' |--- | | @height@ = 1 | @baseArrayLayer@ ≥ 0 |--- | | @depth@ = 1 | @layerCount@ ≥ 1 |--- | | @arrayLayers@ ≥ 1 | |--- | | @samples@ = 1 | |--- +----------+--------------------------------------------------------------------------------+----------------------------------------------------------------+--- | __2D, 0, | @imageType@ = 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' | @viewType@ = |--- | 0__ | @width@ ≥ 1 | 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D' |--- | | @height@ ≥ 1 | @baseArrayLayer@ ≥ 0 |--- | | @depth@ = 1 | @layerCount@ = 1 |--- | | @arrayLayers@ ≥ 1 | |--- | | @samples@ = 1 | |--- +----------+--------------------------------------------------------------------------------+----------------------------------------------------------------+--- | __2D, 1, | @imageType@ = 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' | @viewType@ = |--- | 0__ | @width@ ≥ 1 | 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' |--- | | @height@ ≥ 1 | @baseArrayLayer@ ≥ 0 |--- | | @depth@ = 1 | @layerCount@ ≥ 1 |--- | | @arrayLayers@ ≥ 1 | |--- | | @samples@ = 1 | |--- +----------+--------------------------------------------------------------------------------+----------------------------------------------------------------+--- | __2D, 0, | @imageType@ = 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' | @viewType@ = |--- | 1__ | @width@ ≥ 1 | 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D' |--- | | @height@ ≥ 1 | @baseArrayLayer@ ≥ 0 |--- | | @depth@ = 1 | @layerCount@ = 1 |--- | | @arrayLayers@ ≥ 1 | |--- | | @samples@ > 1 | |--- +----------+--------------------------------------------------------------------------------+----------------------------------------------------------------+--- | __2D, 1, | @imageType@ = 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' | @viewType@ = |--- | 1__ | @width@ ≥ 1 | 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' |--- | | @height@ ≥ 1 | @baseArrayLayer@ ≥ 0 |--- | | @depth@ = 1 | @layerCount@ ≥ 1 |--- | | @arrayLayers@ ≥ 1 | |--- | | @samples@ > 1 | |--- +----------+--------------------------------------------------------------------------------+----------------------------------------------------------------+--- | __CUBE, | @imageType@ = 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' | @viewType@ = |--- | 0, 0__ | @width@ ≥ 1 | 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE' |--- | | @height@ = @width@ | @baseArrayLayer@ ≥ 0 |--- | | @depth@ = 1 | @layerCount@ = 6 |--- | | @arrayLayers@ ≥ 6 | |--- | | @samples@ = 1 | |--- | | @flags@ includes | |--- | | 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CUBE_COMPATIBLE_BIT' | |--- +----------+--------------------------------------------------------------------------------+----------------------------------------------------------------+--- | __CUBE, | @imageType@ = 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' | @viewType@ = |--- | 1, 0__ | @width@ ≥ 1 | 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY' |--- | | @height@ = width | @baseArrayLayer@ ≥ 0 |--- | | @depth@ = 1 | @layerCount@ = 6 × /N/, /N/ ≥ 1 |--- | | /N/ ≥ 1 | |--- | | @arrayLayers@ ≥ 6 × /N/ | |--- | | @samples@ = 1 | |--- | | @flags@ includes | |--- | | 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CUBE_COMPATIBLE_BIT' | |--- +----------+--------------------------------------------------------------------------------+----------------------------------------------------------------+--- | __3D, 0, | @imageType@ = 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D' | @viewType@ = |--- | 0__ | @width@ ≥ 1 | 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D' |--- | | @height@ ≥ 1 | @baseArrayLayer@ = 0 |--- | | @depth@ ≥ 1 | @layerCount@ = 1 |--- | | @arrayLayers@ = 1 | |--- | | @samples@ = 1 | |--- +----------+--------------------------------------------------------------------------------+----------------------------------------------------------------+--- | __3D, 0, | @imageType@ = 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D' | @viewType@ = |--- | 0__ | @width@ ≥ 1 | 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D' |--- | | @height@ ≥ 1 | @levelCount@ = 1 |--- | | @depth@ ≥ 1 | @baseArrayLayer@ ≥ 0 |--- | | @arrayLayers@ = 1 | @layerCount@ = 1 |--- | | @samples@ = 1 | |--- | | @flags@ includes | |--- | | 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT' | |--- | | @flags@ does not include | |--- | | 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_BINDING_BIT', | |--- | | 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT', | |--- | | and 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_ALIASED_BIT' | |--- +----------+--------------------------------------------------------------------------------+----------------------------------------------------------------+--- | __3D, 0, | @imageType@ = 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D' | @viewType@ = |--- | 0__ | @width@ ≥ 1 | 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' |--- | | @height@ ≥ 1 | @levelCount@ = 1 |--- | | @depth@ ≥ 1 | @baseArrayLayer@ ≥ 0 |--- | | @arrayLayers@ = 1 | @layerCount@ ≥ 1 |--- | | @samples@ = 1 | |--- | | @flags@ includes | |--- | | 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT' | |--- | | @flags@ does not include | |--- | | 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_BINDING_BIT', | |--- | | 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT', | |--- | | and 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_ALIASED_BIT' | |--- +----------+--------------------------------------------------------------------------------+----------------------------------------------------------------++-- +----------------------------------------------------------------+-----------------------------------------------++-- | Image View Type | Compatible Image Types |+-- +================================================================+===============================================++-- | 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D' | 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' |+-- +----------------------------------------------------------------+-----------------------------------------------++-- | 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D_ARRAY' | 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_1D' |+-- +----------------------------------------------------------------+-----------------------------------------------++-- | 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D' | 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' |+-- | | 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D' |+-- +----------------------------------------------------------------+-----------------------------------------------++-- | 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' | 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' |+-- | | 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D' |+-- +----------------------------------------------------------------+-----------------------------------------------++-- | 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE' | 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' |+-- +----------------------------------------------------------------+-----------------------------------------------++-- | 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE_ARRAY' | 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_2D' |+-- +----------------------------------------------------------------+-----------------------------------------------++-- | 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D' | 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D' |+-- +----------------------------------------------------------------+-----------------------------------------------+ ----- Image and image view parameter compatibility requirements+-- Image type and image view type compatibility requirements -- -- == Valid Usage --+-- - #VUID-VkImageViewCreateInfo-imageViewType-04969# @imageViewType@+-- /must/ be compatible with the type of @image@ as shown in the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#resources-image-views-compatibility view type compatibility table>+-- -- - #VUID-VkImageViewCreateInfo-image-01003# If @image@ was not created -- with -- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_CUBE_COMPATIBLE_BIT'@@ -770,6 +685,29 @@ -- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D' or -- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' --+-- - #VUID-VkImageViewCreateInfo-image-04970# If @image@ was created with+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D' and @imageViewType@ is+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D' or+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' then+-- @subresourceRange.levelCount@ /must/ be 1+--+-- - #VUID-VkImageViewCreateInfo-image-04971# If @image@ was created with+-- 'Vulkan.Core10.Enums.ImageType.IMAGE_TYPE_3D' and @imageViewType@ is+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D' or+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY' then+-- @flags@ /must/ not contain any of+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_BINDING_BIT',+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_RESIDENCY_BIT',+-- and+-- 'Vulkan.Core10.Enums.ImageCreateFlagBits.IMAGE_CREATE_SPARSE_ALIASED_BIT'+--+-- - #VUID-VkImageViewCreateInfo-image-04972# If @image@ was created with+-- a @samples@ value not equal to+-- 'Vulkan.Core10.Enums.SampleCountFlagBits.SAMPLE_COUNT_1_BIT' then+-- @imageViewType@ /must/ be either+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D' or+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D_ARRAY'+-- -- - #VUID-VkImageViewCreateInfo-image-04441# @image@ /must/ have been -- created with a @usage@ value containing at least one of the usages -- defined in the@@ -1102,6 +1040,22 @@ -- structure /must/ not include any bits that were not set in the -- @usage@ member of the 'Vulkan.Core10.Image.ImageCreateInfo' -- structure used to create @image@+--+-- - #VUID-VkImageViewCreateInfo-imageViewType-04973# If @imageViewType@+-- is 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D',+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D', or+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D'; and+-- @subresourceRange.layerCount@ is not+-- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', then+-- @subresourceRange.layerCount@ /must/ be 1+--+-- - #VUID-VkImageViewCreateInfo-imageViewType-04974# If @imageViewType@+-- is 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_1D',+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_2D', or+-- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_3D'; and+-- @subresourceRange.layerCount@ is+-- 'Vulkan.Core10.APIConstants.REMAINING_ARRAY_LAYERS', then the+-- remaining number of layers /must/ be 1 -- -- - #VUID-VkImageViewCreateInfo-viewType-02960# If @viewType@ is -- 'Vulkan.Core10.Enums.ImageViewType.IMAGE_VIEW_TYPE_CUBE' and
src/Vulkan/Core10/OtherTypes.hs view
@@ -3,6 +3,7 @@ module Vulkan.Core10.OtherTypes ( MemoryBarrier(..) , BufferMemoryBarrier(..) , ImageMemoryBarrier(..)+ , PipelineCacheHeaderVersionOne(..) , DrawIndirectCommand(..) , DrawIndexedIndirectCommand(..) , DispatchIndirectCommand(..)@@ -12,6 +13,7 @@ , VendorId(..) ) where +import Vulkan.CStruct.Utils (FixedArray) import Data.Typeable (eqT) import Foreign.Marshal.Alloc (allocaBytes) import GHC.Ptr (castPtr)@@ -34,8 +36,12 @@ import Data.Int (Int32) import Foreign.Ptr (Ptr) import Data.Word (Word32)+import Data.Word (Word8)+import Data.ByteString (ByteString) import Data.Kind (Type) import Control.Monad.Trans.Cont (ContT(..))+import Vulkan.CStruct.Utils (peekByteStringFromSizedVectorPtr)+import Vulkan.CStruct.Utils (pokeFixedLengthByteString) import Vulkan.Core10.Enums.AccessFlagBits (AccessFlags) import Vulkan.Core10.Handles (Buffer) import Vulkan.CStruct.Extends (Chain)@@ -48,10 +54,12 @@ import Vulkan.Core10.ImageView (ImageSubresourceRange) import Vulkan.CStruct.Extends (PeekChain) import Vulkan.CStruct.Extends (PeekChain(..))+import Vulkan.Core10.Enums.PipelineCacheHeaderVersion (PipelineCacheHeaderVersion) import Vulkan.CStruct.Extends (PokeChain) import Vulkan.CStruct.Extends (PokeChain(..)) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_sample_locations (SampleLocationsInfoEXT) import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Core10.APIConstants (UUID_SIZE) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_MEMORY_BARRIER))@@ -813,6 +821,111 @@ zero zero zero+++-- | VkPipelineCacheHeaderVersionOne - Structure describing the layout of the+-- pipeline cache header+--+-- = Description+--+-- Unlike most structures declared by the Vulkan API, all fields of this+-- structure are written with the least significant byte first, regardless+-- of host byte-order.+--+-- The C language specification does not define the packing of structure+-- members. This layout assumes tight structure member packing, with+-- members laid out in the order listed in the structure, and the intended+-- size of the structure is 32 bytes. If a compiler produces code that+-- diverges from that pattern, applications /must/ employ another method to+-- set values at the correct offsets.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- 'Vulkan.Core10.Enums.PipelineCacheHeaderVersion.PipelineCacheHeaderVersion'+data PipelineCacheHeaderVersionOne = PipelineCacheHeaderVersionOne+ { -- | @headerSize@ is the length in bytes of the pipeline cache header.+ --+ -- #VUID-VkPipelineCacheHeaderVersionOne-headerSize-04967# @headerSize@+ -- /must/ be 32+ headerSize :: Word32+ , -- | @headerVersion@ is a+ -- 'Vulkan.Core10.Enums.PipelineCacheHeaderVersion.PipelineCacheHeaderVersion'+ -- enum value specifying the version of the header. A consumer of the+ -- pipeline cache /should/ use the cache version to interpret the remainder+ -- of the cache header.+ --+ -- #VUID-VkPipelineCacheHeaderVersionOne-headerVersion-04968#+ -- @headerVersion@ /must/ be+ -- 'Vulkan.Core10.Enums.PipelineCacheHeaderVersion.PIPELINE_CACHE_HEADER_VERSION_ONE'+ --+ -- #VUID-VkPipelineCacheHeaderVersionOne-headerVersion-parameter#+ -- @headerVersion@ /must/ be a valid+ -- 'Vulkan.Core10.Enums.PipelineCacheHeaderVersion.PipelineCacheHeaderVersion'+ -- value+ headerVersion :: PipelineCacheHeaderVersion+ , -- | @vendorID@ is the+ -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceProperties'::@vendorID@+ -- of the implementation.+ vendorID :: Word32+ , -- | @deviceID@ is the+ -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceProperties'::@deviceID@+ -- of the implementation.+ deviceID :: Word32+ , -- | @pipelineCacheUUID@ is the+ -- 'Vulkan.Core10.DeviceInitialization.PhysicalDeviceProperties'::@pipelineCacheUUID@+ -- of the implementation.+ pipelineCacheUUID :: ByteString+ }+ deriving (Typeable)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PipelineCacheHeaderVersionOne)+#endif+deriving instance Show PipelineCacheHeaderVersionOne++instance ToCStruct PipelineCacheHeaderVersionOne where+ withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PipelineCacheHeaderVersionOne{..} f = do+ poke ((p `plusPtr` 0 :: Ptr Word32)) (headerSize)+ poke ((p `plusPtr` 4 :: Ptr PipelineCacheHeaderVersion)) (headerVersion)+ poke ((p `plusPtr` 8 :: Ptr Word32)) (vendorID)+ poke ((p `plusPtr` 12 :: Ptr Word32)) (deviceID)+ pokeFixedLengthByteString ((p `plusPtr` 16 :: Ptr (FixedArray UUID_SIZE Word8))) (pipelineCacheUUID)+ f+ cStructSize = 32+ cStructAlignment = 4+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 4 :: Ptr PipelineCacheHeaderVersion)) (zero)+ poke ((p `plusPtr` 8 :: Ptr Word32)) (zero)+ poke ((p `plusPtr` 12 :: Ptr Word32)) (zero)+ pokeFixedLengthByteString ((p `plusPtr` 16 :: Ptr (FixedArray UUID_SIZE Word8))) (mempty)+ f++instance FromCStruct PipelineCacheHeaderVersionOne where+ peekCStruct p = do+ headerSize <- peek @Word32 ((p `plusPtr` 0 :: Ptr Word32))+ headerVersion <- peek @PipelineCacheHeaderVersion ((p `plusPtr` 4 :: Ptr PipelineCacheHeaderVersion))+ vendorID <- peek @Word32 ((p `plusPtr` 8 :: Ptr Word32))+ deviceID <- peek @Word32 ((p `plusPtr` 12 :: Ptr Word32))+ pipelineCacheUUID <- peekByteStringFromSizedVectorPtr ((p `plusPtr` 16 :: Ptr (FixedArray UUID_SIZE Word8)))+ pure $ PipelineCacheHeaderVersionOne+ headerSize headerVersion vendorID deviceID pipelineCacheUUID++instance Storable PipelineCacheHeaderVersionOne where+ sizeOf ~_ = 32+ alignment ~_ = 4+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PipelineCacheHeaderVersionOne where+ zero = PipelineCacheHeaderVersionOne+ zero+ zero+ zero+ zero+ mempty -- | VkDrawIndirectCommand - Structure specifying a indirect drawing command
src/Vulkan/Core10/OtherTypes.hs-boot view
@@ -6,6 +6,7 @@ , DrawIndirectCommand , ImageMemoryBarrier , MemoryBarrier+ , PipelineCacheHeaderVersionOne ) where import Vulkan.CStruct (FromCStruct)@@ -62,4 +63,12 @@ instance Show MemoryBarrier instance FromCStruct MemoryBarrier+++data PipelineCacheHeaderVersionOne++instance ToCStruct PipelineCacheHeaderVersionOne+instance Show PipelineCacheHeaderVersionOne++instance FromCStruct PipelineCacheHeaderVersionOne
src/Vulkan/Core10/SparseResourceMemoryManagement.hs view
@@ -570,7 +570,8 @@ -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_memory_requirements2.SparseImageMemoryRequirements2', -- 'getImageSparseMemoryRequirements' data SparseImageMemoryRequirements = SparseImageMemoryRequirements- { -- No documentation found for Nested "VkSparseImageMemoryRequirements" "formatProperties"+ { -- | @formatProperties@ is a 'SparseImageFormatProperties' structure+ -- specifying properties of the image format. formatProperties :: SparseImageFormatProperties , -- | @imageMipTailFirstLod@ is the first mip level at which image -- subresources are included in the mip tail region.
src/Vulkan/Core11/Enums/ExternalMemoryHandleTypeFlagBits.hs view
@@ -8,6 +8,7 @@ , EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT , EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT , EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT+ , EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV , EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA , EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT , EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT@@ -66,6 +67,8 @@ -- +-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+ -- | 'EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA' | No restriction | No restriction | -- +-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------++-- | 'EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV' | No restriction | No restriction |+-- +-------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+ -- -- External memory handle types compatibility --@@ -98,6 +101,7 @@ -- 'Vulkan.Extensions.VK_KHR_external_memory_win32.ImportMemoryWin32HandleInfoKHR', -- 'Vulkan.Extensions.VK_FUCHSIA_external_memory.ImportMemoryZirconHandleInfoFUCHSIA', -- 'Vulkan.Extensions.VK_KHR_external_memory_fd.MemoryGetFdInfoKHR',+-- 'Vulkan.Extensions.VK_NV_external_memory_rdma.MemoryGetRemoteAddressInfoNV', -- 'Vulkan.Extensions.VK_KHR_external_memory_win32.MemoryGetWin32HandleInfoKHR', -- 'Vulkan.Extensions.VK_FUCHSIA_external_memory.MemoryGetZirconHandleInfoFUCHSIA', -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities.PhysicalDeviceExternalBufferInfo',@@ -153,6 +157,10 @@ -- 12 committed resource. It owns a reference to the memory used by the -- Direct3D resource. pattern EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = ExternalMemoryHandleTypeFlagBits 0x00000040+-- | 'EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV' is a handle to an+-- allocation accessible by remote devices. It owns a reference to the+-- underlying memory resource represented by its Vulkan memory object.+pattern EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV = ExternalMemoryHandleTypeFlagBits 0x00001000 -- | 'EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA' is a Zircon handle -- to a virtual memory object. pattern EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA = ExternalMemoryHandleTypeFlagBits 0x00000800@@ -194,6 +202,7 @@ , (EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT , "D3D11_TEXTURE_KMT_BIT") , (EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT , "D3D12_HEAP_BIT") , (EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT , "D3D12_RESOURCE_BIT")+ , (EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV , "RDMA_ADDRESS_BIT_NV") , (EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA , "ZIRCON_VMO_BIT_FUCHSIA") , (EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT , "HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT") , (EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT , "HOST_ALLOCATION_BIT_EXT")
src/Vulkan/Core11/Promoted_From_VK_KHR_get_physical_device_properties2.hs view
@@ -127,6 +127,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_extended_dynamic_state (PhysicalDeviceExtendedDynamicStateFeaturesEXT) import {-# SOURCE #-} Vulkan.Core11.Promoted_From_VK_KHR_external_memory_capabilities (PhysicalDeviceExternalImageFormatInfo) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_external_memory_host (PhysicalDeviceExternalMemoryHostPropertiesEXT)+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_external_memory_rdma (PhysicalDeviceExternalMemoryRDMAFeaturesNV) import Vulkan.Core10.DeviceInitialization (PhysicalDeviceFeatures) import {-# SOURCE #-} Vulkan.Core12.Promoted_From_VK_KHR_shader_float_controls (PhysicalDeviceFloatControlsProperties) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_fragment_density_map2 (PhysicalDeviceFragmentDensityMap2FeaturesEXT)@@ -692,6 +693,7 @@ | Just Refl <- eqT @e @PhysicalDeviceInheritedViewportScissorFeaturesNV = Just f | Just Refl <- eqT @e @PhysicalDeviceSynchronization2FeaturesKHR = Just f | Just Refl <- eqT @e @PhysicalDeviceColorWriteEnableFeaturesEXT = Just f+ | Just Refl <- eqT @e @PhysicalDeviceExternalMemoryRDMAFeaturesNV = Just f | Just Refl <- eqT @e @PhysicalDeviceVertexInputDynamicStateFeaturesEXT = Just f | Just Refl <- eqT @e @PhysicalDeviceMutableDescriptorTypeFeaturesVALVE = Just f | Just Refl <- eqT @e @PhysicalDeviceFragmentShadingRateEnumsFeaturesNV = Just f
src/Vulkan/Dynamic.hs view
@@ -224,6 +224,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_memory_fd (MemoryFdPropertiesKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_ANDROID_external_memory_android_hardware_buffer (MemoryGetAndroidHardwareBufferInfoANDROID) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_memory_fd (MemoryGetFdInfoKHR)+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_external_memory_rdma (MemoryGetRemoteAddressInfoNV) import {-# SOURCE #-} Vulkan.Extensions.VK_KHR_external_memory_win32 (MemoryGetWin32HandleInfoKHR) import {-# SOURCE #-} Vulkan.Extensions.VK_FUCHSIA_external_memory (MemoryGetZirconHandleInfoFUCHSIA) import {-# SOURCE #-} Vulkan.Extensions.VK_EXT_external_memory_host (MemoryHostPointerPropertiesEXT)@@ -299,6 +300,7 @@ import {-# SOURCE #-} Vulkan.Extensions.VK_NV_ray_tracing (RayTracingPipelineCreateInfoNV) import {-# SOURCE #-} Vulkan.Core10.FundamentalTypes (Rect2D) import {-# SOURCE #-} Vulkan.Extensions.VK_GOOGLE_display_timing (RefreshCycleDurationGOOGLE)+import {-# SOURCE #-} Vulkan.Extensions.VK_NV_external_memory_rdma (RemoteAddressNV) import {-# SOURCE #-} Vulkan.Core10.Handles (RenderPass) import {-# SOURCE #-} Vulkan.Core10.CommandBufferBuilding (RenderPassBeginInfo) import {-# SOURCE #-} Vulkan.Core10.Pass (RenderPassCreateInfo)@@ -823,6 +825,7 @@ , pVkGetMemoryFdPropertiesKHR :: FunPtr (Ptr Device_T -> ExternalMemoryHandleTypeFlagBits -> ("fd" ::: CInt) -> ("pMemoryFdProperties" ::: Ptr MemoryFdPropertiesKHR) -> IO Result) , pVkGetMemoryZirconHandleFUCHSIA :: FunPtr (Ptr Device_T -> ("pGetZirconHandleInfo" ::: Ptr MemoryGetZirconHandleInfoFUCHSIA) -> ("pZirconHandle" ::: Ptr Zx_handle_t) -> IO Result) , pVkGetMemoryZirconHandlePropertiesFUCHSIA :: FunPtr (Ptr Device_T -> ExternalMemoryHandleTypeFlagBits -> ("zirconHandle" ::: Zx_handle_t) -> ("pMemoryZirconHandleProperties" ::: Ptr MemoryZirconHandlePropertiesFUCHSIA) -> IO Result)+ , pVkGetMemoryRemoteAddressNV :: FunPtr (Ptr Device_T -> ("getMemoryRemoteAddressInfo" ::: Ptr MemoryGetRemoteAddressInfoNV) -> ("pAddress" ::: Ptr RemoteAddressNV) -> IO Result) , pVkGetSemaphoreWin32HandleKHR :: FunPtr (Ptr Device_T -> ("pGetWin32HandleInfo" ::: Ptr SemaphoreGetWin32HandleInfoKHR) -> ("pHandle" ::: Ptr HANDLE) -> IO Result) , pVkImportSemaphoreWin32HandleKHR :: FunPtr (Ptr Device_T -> ("pImportSemaphoreWin32HandleInfo" ::: Ptr ImportSemaphoreWin32HandleInfoKHR) -> IO Result) , pVkGetSemaphoreFdKHR :: FunPtr (Ptr Device_T -> ("pGetFdInfo" ::: Ptr SemaphoreGetFdInfoKHR) -> ("pFd" ::: Ptr CInt) -> IO Result)@@ -1061,7 +1064,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 nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr nullFunPtr foreign import ccall #if !defined(SAFE_FOREIGN_CALLS)@@ -1234,6 +1237,7 @@ vkGetMemoryFdPropertiesKHR <- getDeviceProcAddr' handle (Ptr "vkGetMemoryFdPropertiesKHR"#) vkGetMemoryZirconHandleFUCHSIA <- getDeviceProcAddr' handle (Ptr "vkGetMemoryZirconHandleFUCHSIA"#) vkGetMemoryZirconHandlePropertiesFUCHSIA <- getDeviceProcAddr' handle (Ptr "vkGetMemoryZirconHandlePropertiesFUCHSIA"#)+ vkGetMemoryRemoteAddressNV <- getDeviceProcAddr' handle (Ptr "vkGetMemoryRemoteAddressNV"#) vkGetSemaphoreWin32HandleKHR <- getDeviceProcAddr' handle (Ptr "vkGetSemaphoreWin32HandleKHR"#) vkImportSemaphoreWin32HandleKHR <- getDeviceProcAddr' handle (Ptr "vkImportSemaphoreWin32HandleKHR"#) vkGetSemaphoreFdKHR <- getDeviceProcAddr' handle (Ptr "vkGetSemaphoreFdKHR"#)@@ -1577,6 +1581,7 @@ (castFunPtr @_ @(Ptr Device_T -> ExternalMemoryHandleTypeFlagBits -> ("fd" ::: CInt) -> ("pMemoryFdProperties" ::: Ptr MemoryFdPropertiesKHR) -> IO Result) vkGetMemoryFdPropertiesKHR) (castFunPtr @_ @(Ptr Device_T -> ("pGetZirconHandleInfo" ::: Ptr MemoryGetZirconHandleInfoFUCHSIA) -> ("pZirconHandle" ::: Ptr Zx_handle_t) -> IO Result) vkGetMemoryZirconHandleFUCHSIA) (castFunPtr @_ @(Ptr Device_T -> ExternalMemoryHandleTypeFlagBits -> ("zirconHandle" ::: Zx_handle_t) -> ("pMemoryZirconHandleProperties" ::: Ptr MemoryZirconHandlePropertiesFUCHSIA) -> IO Result) vkGetMemoryZirconHandlePropertiesFUCHSIA)+ (castFunPtr @_ @(Ptr Device_T -> ("getMemoryRemoteAddressInfo" ::: Ptr MemoryGetRemoteAddressInfoNV) -> ("pAddress" ::: Ptr RemoteAddressNV) -> IO Result) vkGetMemoryRemoteAddressNV) (castFunPtr @_ @(Ptr Device_T -> ("pGetWin32HandleInfo" ::: Ptr SemaphoreGetWin32HandleInfoKHR) -> ("pHandle" ::: Ptr HANDLE) -> IO Result) vkGetSemaphoreWin32HandleKHR) (castFunPtr @_ @(Ptr Device_T -> ("pImportSemaphoreWin32HandleInfo" ::: Ptr ImportSemaphoreWin32HandleInfoKHR) -> IO Result) vkImportSemaphoreWin32HandleKHR) (castFunPtr @_ @(Ptr Device_T -> ("pGetFdInfo" ::: Ptr SemaphoreGetFdInfoKHR) -> ("pFd" ::: Ptr CInt) -> IO Result) vkGetSemaphoreFdKHR)
src/Vulkan/Extensions.hs view
@@ -216,6 +216,7 @@ , module Vulkan.Extensions.VK_NV_device_generated_commands , module Vulkan.Extensions.VK_NV_external_memory , module Vulkan.Extensions.VK_NV_external_memory_capabilities+ , module Vulkan.Extensions.VK_NV_external_memory_rdma , module Vulkan.Extensions.VK_NV_external_memory_win32 , module Vulkan.Extensions.VK_NV_fill_rectangle , module Vulkan.Extensions.VK_NV_fragment_coverage_to_color@@ -461,6 +462,7 @@ import Vulkan.Extensions.VK_NV_device_generated_commands import Vulkan.Extensions.VK_NV_external_memory import Vulkan.Extensions.VK_NV_external_memory_capabilities+import Vulkan.Extensions.VK_NV_external_memory_rdma import Vulkan.Extensions.VK_NV_external_memory_win32 import Vulkan.Extensions.VK_NV_fill_rectangle import Vulkan.Extensions.VK_NV_fragment_coverage_to_color
src/Vulkan/Extensions/Dependencies.hs view
@@ -164,6 +164,7 @@ import Vulkan.Extensions.VK_NV_device_generated_commands (pattern NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME) import Vulkan.Extensions.VK_NV_external_memory_capabilities (pattern NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME) import Vulkan.Extensions.VK_NV_external_memory (pattern NV_EXTERNAL_MEMORY_EXTENSION_NAME)+import Vulkan.Extensions.VK_NV_external_memory_rdma (pattern NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME) import Vulkan.Extensions.VK_NV_external_memory_win32 (pattern NV_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME) import Vulkan.Extensions.VK_NV_fragment_shader_barycentric (pattern NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME) import Vulkan.Extensions.VK_NV_fragment_shading_rate_enums (pattern NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME)@@ -521,6 +522,11 @@ FUCHSIA_EXTERNAL_SEMAPHORE_EXTENSION_NAME -> [ KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME , KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME+ , KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME+ ]+ NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME ->+ [ KHR_EXTERNAL_MEMORY_EXTENSION_NAME+ , KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME , KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME ] EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME -> [KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME]
+ src/Vulkan/Extensions/VK_NV_external_memory_rdma.hs view
@@ -0,0 +1,449 @@+{-# language CPP #-}+-- | = Name+--+-- VK_NV_external_memory_rdma - device extension+--+-- == VK_NV_external_memory_rdma+--+-- [__Name String__]+-- @VK_NV_external_memory_rdma@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 372+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires Vulkan 1.0+--+-- - Requires @VK_KHR_external_memory@+--+-- [__Contact__]+--+-- - Carsten Rohde+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_NV_external_memory_rdma:%20&body=@crohde%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2021-04-19+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Contributors__]+--+-- - Carsten Rohde, NVIDIA+--+-- == Description+--+-- This extension adds support for allocating memory which can be used for+-- remote direct memory access (RDMA) from other devices.+--+-- == New Base Types+--+-- - 'RemoteAddressNV'+--+-- == New Commands+--+-- - 'getMemoryRemoteAddressNV'+--+-- == New Structures+--+-- - 'MemoryGetRemoteAddressInfoNV'+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceExternalMemoryRDMAFeaturesNV'+--+-- == New Enum Constants+--+-- - 'NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME'+--+-- - 'NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION'+--+-- - Extending+-- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits':+--+-- - 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV'+--+-- - Extending+-- 'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MemoryPropertyFlagBits':+--+-- - 'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV'+--+-- == Examples+--+-- > VkPhysicalDeviceMemoryBudgetPropertiesEXT memoryBudgetProperties = { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT };+-- > VkPhysicalDeviceMemoryProperties2 memoryProperties2 = { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2, &memoryBudgetProperties };+-- > vkGetPhysicalDeviceMemoryProperties2(physicalDevice, &memoryProperties2);+-- > uint32_t heapIndex = (uint32_t)-1;+-- > for (uint32_t memoryType = 0; memoryType < memoryProperties2.memoryProperties.memoryTypeCount; memoryType++) {+-- > if (memoryProperties2.memoryProperties.memoryTypes[memoryType].propertyFlags & VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV) {+-- > heapIndex = memoryProperties2.memoryProperties.memoryTypes[memoryType].heapIndex;+-- > break;+-- > }+-- > }+-- > if ((heapIndex == (uint32_t)-1) ||+-- > (memoryBudgetProperties.heapBudget[heapIndex] < size)) {+-- > return;+-- > }+-- >+-- > VkPhysicalDeviceExternalBufferInfo externalBufferInfo = { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO };+-- > externalBufferInfo.usage = VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT;+-- > externalBufferInfo.handleType = VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV;+-- >+-- > VkExternalBufferProperties externalBufferProperties = { VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES };+-- > vkGetPhysicalDeviceExternalBufferProperties(physicalDevice, &externalBufferInfo, &externalBufferProperties);+-- >+-- > if (!(externalBufferProperties.externalMemoryProperties.externalMemoryFeatures & VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT)) {+-- > return;+-- > }+-- >+-- > VkExternalMemoryBufferCreateInfo externalMemoryBufferCreateInfo = { VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO };+-- > externalMemoryBufferCreateInfo.handleTypes = VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV;+-- >+-- > VkBufferCreateInfo bufferCreateInfo = { VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO, &externalMemoryBufferCreateInfo };+-- > bufferCreateInfo.size = size;+-- > bufferCreateInfo.usage = VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT;+-- >+-- > VkMemoryRequirements mem_reqs;+-- > vkCreateBuffer(device, &bufferCreateInfo, NULL, &buffer);+-- > vkGetBufferMemoryRequirements(device, buffer, &mem_reqs);+-- >+-- > VkExportMemoryAllocateInfo exportMemoryAllocateInfo = { VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO };+-- > exportMemoryAllocateInfo.handleTypes = VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV;+-- >+-- > // Find memory type index+-- > uint32_t i = 0;+-- > for (; i < VK_MAX_MEMORY_TYPES; i++) {+-- > if ((mem_reqs.memoryTypeBits & (1 << i)) &&+-- > (memoryProperties.memoryTypes[i].propertyFlags & VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV)) {+-- > break;+-- > }+-- > }+-- >+-- > VkMemoryAllocateInfo memAllocInfo = { VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO, &exportMemoryAllocateInfo };+-- > memAllocInfo.allocationSize = mem_reqs.size;+-- > memAllocInfo.memoryTypeIndex = i;+-- >+-- > vkAllocateMemory(device, &memAllocInfo, NULL, &mem);+-- > vkBindBufferMemory(device, buffer, mem, 0);+-- >+-- > VkMemoryGetRemoteAddressInfoNV getMemoryRemoteAddressInfo = { VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV };+-- > getMemoryRemoteAddressInfo.memory = mem;+-- > getMemoryRemoteAddressInfo.handleType = VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV;+-- >+-- > VkRemoteAddressNV rdmaAddress;+-- > vkGetMemoryRemoteAddressNV(device, &getMemoryRemoteAddressInfo, &rdmaAddress);+-- > // address returned in 'rdmaAddress' can be used by external devices to initiate RDMA transfers+--+-- == Version History+--+-- - Revision 1, 2020-12-15 (Carsten Rohde)+--+-- - Internal revisions+--+-- = See Also+--+-- 'MemoryGetRemoteAddressInfoNV',+-- 'PhysicalDeviceExternalMemoryRDMAFeaturesNV', 'RemoteAddressNV',+-- 'getMemoryRemoteAddressNV'+--+-- = Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_external_memory_rdma Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_NV_external_memory_rdma ( getMemoryRemoteAddressNV+ , PhysicalDeviceExternalMemoryRDMAFeaturesNV(..)+ , MemoryGetRemoteAddressInfoNV(..)+ , NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION+ , pattern NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION+ , NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME+ , pattern NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME+ , RemoteAddressNV+ ) where++import Vulkan.Internal.Utils (traceAroundEvent)+import Control.Exception.Base (bracket)+import Control.Monad (unless)+import Control.Monad.IO.Class (liftIO)+import Foreign.Marshal.Alloc (allocaBytes)+import Foreign.Marshal.Alloc (callocBytes)+import Foreign.Marshal.Alloc (free)+import GHC.Base (when)+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 Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (FromCStruct(..))+import Vulkan.CStruct (ToCStruct)+import Vulkan.CStruct (ToCStruct(..))+import Vulkan.Zero (Zero(..))+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.Kind (Type)+import Control.Monad.Trans.Cont (ContT(..))+import Vulkan.Core10.FundamentalTypes (bool32ToBool)+import Vulkan.Core10.FundamentalTypes (boolToBool32)+import Vulkan.NamedType ((:::))+import Vulkan.Core10.FundamentalTypes (Bool32)+import Vulkan.Core10.Handles (Device)+import Vulkan.Core10.Handles (Device(..))+import Vulkan.Dynamic (DeviceCmds(pVkGetMemoryRemoteAddressNV))+import Vulkan.Core10.Handles (DeviceMemory)+import Vulkan.Core10.Handles (Device_T)+import Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits (ExternalMemoryHandleTypeFlagBits)+import Vulkan.Core10.Enums.Result (Result)+import Vulkan.Core10.Enums.Result (Result(..))+import Vulkan.Core10.Enums.StructureType (StructureType)+import Vulkan.Exception (VulkanException(..))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV))+import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV))+import Vulkan.Core10.Enums.Result (Result(SUCCESS))+foreign import ccall+#if !defined(SAFE_FOREIGN_CALLS)+ unsafe+#endif+ "dynamic" mkVkGetMemoryRemoteAddressNV+ :: FunPtr (Ptr Device_T -> Ptr MemoryGetRemoteAddressInfoNV -> Ptr RemoteAddressNV -> IO Result) -> Ptr Device_T -> Ptr MemoryGetRemoteAddressInfoNV -> Ptr RemoteAddressNV -> IO Result++-- | vkGetMemoryRemoteAddressNV - Get an address for a memory object+-- accessible by remote devices+--+-- = Description+--+-- More communication may be required between the kernel-mode drivers of+-- the devices involved. This information is out of scope of this+-- documentation and should be requested from the vendors of the devices.+--+-- == Return Codes+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-successcodes Success>]+--+-- - 'Vulkan.Core10.Enums.Result.SUCCESS'+--+-- [<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#fundamentals-errorcodes Failure>]+--+-- - 'Vulkan.Core10.Enums.Result.ERROR_INVALID_EXTERNAL_HANDLE'+--+-- = See Also+--+-- 'Vulkan.Core10.Handles.Device', 'MemoryGetRemoteAddressInfoNV',+-- 'RemoteAddressNV'+getMemoryRemoteAddressNV :: forall io+ . (MonadIO io)+ => -- | @device@ is the logical device that created the device memory being+ -- exported.+ --+ -- #VUID-vkGetMemoryRemoteAddressNV-device-parameter# @device@ /must/ be a+ -- valid 'Vulkan.Core10.Handles.Device' handle+ Device+ -> -- | #VUID-vkGetMemoryRemoteAddressNV-getMemoryRemoteAddressInfo-parameter#+ -- @getMemoryRemoteAddressInfo@ /must/ be a valid pointer to a valid+ -- 'MemoryGetRemoteAddressInfoNV' structure+ ("getMemoryRemoteAddressInfo" ::: MemoryGetRemoteAddressInfoNV)+ -> io (RemoteAddressNV)+getMemoryRemoteAddressNV device getMemoryRemoteAddressInfo = liftIO . evalContT $ do+ let vkGetMemoryRemoteAddressNVPtr = pVkGetMemoryRemoteAddressNV (deviceCmds (device :: Device))+ lift $ unless (vkGetMemoryRemoteAddressNVPtr /= nullFunPtr) $+ throwIO $ IOError Nothing InvalidArgument "" "The function pointer for vkGetMemoryRemoteAddressNV is null" Nothing Nothing+ let vkGetMemoryRemoteAddressNV' = mkVkGetMemoryRemoteAddressNV vkGetMemoryRemoteAddressNVPtr+ getMemoryRemoteAddressInfo' <- ContT $ withCStruct (getMemoryRemoteAddressInfo)+ pPAddress <- ContT $ bracket (callocBytes @RemoteAddressNV 8) free+ r <- lift $ traceAroundEvent "vkGetMemoryRemoteAddressNV" (vkGetMemoryRemoteAddressNV' (deviceHandle (device)) getMemoryRemoteAddressInfo' (pPAddress))+ lift $ when (r < SUCCESS) (throwIO (VulkanException r))+ pAddress <- lift $ peek @RemoteAddressNV pPAddress+ pure $ (pAddress)+++-- | VkPhysicalDeviceExternalMemoryRDMAFeaturesNV - Structure describing the+-- external memory RDMA features supported by the implementation+--+-- = Members+--+-- This structure describes the following feature:+--+-- = Description+--+-- If the 'PhysicalDeviceExternalMemoryRDMAFeaturesNV' structure is+-- included in the @pNext@ chain of the+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2'+-- structure passed to+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.getPhysicalDeviceFeatures2',+-- it is filled in to indicate whether each corresponding feature is+-- supported. 'PhysicalDeviceExternalMemoryRDMAFeaturesNV' /can/ also be+-- used in the @pNext@ chain of 'Vulkan.Core10.Device.DeviceCreateInfo' to+-- selectively enable these features.+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- 'Vulkan.Core10.FundamentalTypes.Bool32',+-- 'Vulkan.Core10.Enums.StructureType.StructureType'+data PhysicalDeviceExternalMemoryRDMAFeaturesNV = PhysicalDeviceExternalMemoryRDMAFeaturesNV+ { -- | #features-externalMemoryRDMA# @externalMemoryRDMA@ indicates whether the+ -- implementation has support for the+ -- 'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV'+ -- memory property and the+ -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV'+ -- external memory handle type.+ externalMemoryRDMA :: Bool }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (PhysicalDeviceExternalMemoryRDMAFeaturesNV)+#endif+deriving instance Show PhysicalDeviceExternalMemoryRDMAFeaturesNV++instance ToCStruct PhysicalDeviceExternalMemoryRDMAFeaturesNV where+ withCStruct x f = allocaBytes 24 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p PhysicalDeviceExternalMemoryRDMAFeaturesNV{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (externalMemoryRDMA))+ f+ cStructSize = 24+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr Bool32)) (boolToBool32 (zero))+ f++instance FromCStruct PhysicalDeviceExternalMemoryRDMAFeaturesNV where+ peekCStruct p = do+ externalMemoryRDMA <- peek @Bool32 ((p `plusPtr` 16 :: Ptr Bool32))+ pure $ PhysicalDeviceExternalMemoryRDMAFeaturesNV+ (bool32ToBool externalMemoryRDMA)++instance Storable PhysicalDeviceExternalMemoryRDMAFeaturesNV where+ sizeOf ~_ = 24+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero PhysicalDeviceExternalMemoryRDMAFeaturesNV where+ zero = PhysicalDeviceExternalMemoryRDMAFeaturesNV+ zero+++-- | VkMemoryGetRemoteAddressInfoNV - Structure describing a remote+-- accessible address export operation+--+-- == Valid Usage (Implicit)+--+-- = See Also+--+-- 'Vulkan.Core10.Handles.DeviceMemory',+-- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits',+-- 'Vulkan.Core10.Enums.StructureType.StructureType',+-- 'getMemoryRemoteAddressNV'+data MemoryGetRemoteAddressInfoNV = MemoryGetRemoteAddressInfoNV+ { -- | @memory@ is the memory object from which the remote accessible address+ -- will be exported.+ --+ -- #VUID-VkMemoryGetRemoteAddressInfoNV-memory-parameter# @memory@ /must/+ -- be a valid 'Vulkan.Core10.Handles.DeviceMemory' handle+ memory :: DeviceMemory+ , -- | @handleType@ is the type of handle requested.+ --+ -- #VUID-VkMemoryGetRemoteAddressInfoNV-handleType-04966# @handleType@+ -- /must/ have been included in+ -- 'Vulkan.Core11.Promoted_From_VK_KHR_external_memory.ExportMemoryAllocateInfo'::@handleTypes@+ -- when @memory@ was created+ --+ -- #VUID-VkMemoryGetRemoteAddressInfoNV-handleType-parameter# @handleType@+ -- /must/ be a valid+ -- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits'+ -- value+ handleType :: ExternalMemoryHandleTypeFlagBits+ }+ deriving (Typeable, Eq)+#if defined(GENERIC_INSTANCES)+deriving instance Generic (MemoryGetRemoteAddressInfoNV)+#endif+deriving instance Show MemoryGetRemoteAddressInfoNV++instance ToCStruct MemoryGetRemoteAddressInfoNV where+ withCStruct x f = allocaBytes 32 $ \p -> pokeCStruct p x (f p)+ pokeCStruct p MemoryGetRemoteAddressInfoNV{..} f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr DeviceMemory)) (memory)+ poke ((p `plusPtr` 24 :: Ptr ExternalMemoryHandleTypeFlagBits)) (handleType)+ f+ cStructSize = 32+ cStructAlignment = 8+ pokeZeroCStruct p f = do+ poke ((p `plusPtr` 0 :: Ptr StructureType)) (STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV)+ poke ((p `plusPtr` 8 :: Ptr (Ptr ()))) (nullPtr)+ poke ((p `plusPtr` 16 :: Ptr DeviceMemory)) (zero)+ poke ((p `plusPtr` 24 :: Ptr ExternalMemoryHandleTypeFlagBits)) (zero)+ f++instance FromCStruct MemoryGetRemoteAddressInfoNV where+ peekCStruct p = do+ memory <- peek @DeviceMemory ((p `plusPtr` 16 :: Ptr DeviceMemory))+ handleType <- peek @ExternalMemoryHandleTypeFlagBits ((p `plusPtr` 24 :: Ptr ExternalMemoryHandleTypeFlagBits))+ pure $ MemoryGetRemoteAddressInfoNV+ memory handleType++instance Storable MemoryGetRemoteAddressInfoNV where+ sizeOf ~_ = 32+ alignment ~_ = 8+ peek = peekCStruct+ poke ptr poked = pokeCStruct ptr poked (pure ())++instance Zero MemoryGetRemoteAddressInfoNV where+ zero = MemoryGetRemoteAddressInfoNV+ zero+ zero+++type NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION = 1++-- No documentation found for TopLevel "VK_NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION"+pattern NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION :: forall a . Integral a => a+pattern NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION = 1+++type NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME = "VK_NV_external_memory_rdma"++-- No documentation found for TopLevel "VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME"+pattern NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a+pattern NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME = "VK_NV_external_memory_rdma"+++-- No documentation found for TopLevel "VkRemoteAddressNV"+type RemoteAddressNV = Ptr ()+
+ src/Vulkan/Extensions/VK_NV_external_memory_rdma.hs-boot view
@@ -0,0 +1,201 @@+{-# language CPP #-}+-- | = Name+--+-- VK_NV_external_memory_rdma - device extension+--+-- == VK_NV_external_memory_rdma+--+-- [__Name String__]+-- @VK_NV_external_memory_rdma@+--+-- [__Extension Type__]+-- Device extension+--+-- [__Registered Extension Number__]+-- 372+--+-- [__Revision__]+-- 1+--+-- [__Extension and Version Dependencies__]+--+-- - Requires Vulkan 1.0+--+-- - Requires @VK_KHR_external_memory@+--+-- [__Contact__]+--+-- - Carsten Rohde+-- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?title=VK_NV_external_memory_rdma:%20&body=@crohde%20 >+--+-- == Other Extension Metadata+--+-- [__Last Modified Date__]+-- 2021-04-19+--+-- [__IP Status__]+-- No known IP claims.+--+-- [__Contributors__]+--+-- - Carsten Rohde, NVIDIA+--+-- == Description+--+-- This extension adds support for allocating memory which can be used for+-- remote direct memory access (RDMA) from other devices.+--+-- == New Base Types+--+-- - 'RemoteAddressNV'+--+-- == New Commands+--+-- - 'getMemoryRemoteAddressNV'+--+-- == New Structures+--+-- - 'MemoryGetRemoteAddressInfoNV'+--+-- - Extending+-- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2',+-- 'Vulkan.Core10.Device.DeviceCreateInfo':+--+-- - 'PhysicalDeviceExternalMemoryRDMAFeaturesNV'+--+-- == New Enum Constants+--+-- - 'NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME'+--+-- - 'NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION'+--+-- - Extending+-- 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.ExternalMemoryHandleTypeFlagBits':+--+-- - 'Vulkan.Core11.Enums.ExternalMemoryHandleTypeFlagBits.EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV'+--+-- - Extending+-- 'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MemoryPropertyFlagBits':+--+-- - 'Vulkan.Core10.Enums.MemoryPropertyFlagBits.MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV'+--+-- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType':+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV'+--+-- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV'+--+-- == Examples+--+-- > VkPhysicalDeviceMemoryBudgetPropertiesEXT memoryBudgetProperties = { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT };+-- > VkPhysicalDeviceMemoryProperties2 memoryProperties2 = { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2, &memoryBudgetProperties };+-- > vkGetPhysicalDeviceMemoryProperties2(physicalDevice, &memoryProperties2);+-- > uint32_t heapIndex = (uint32_t)-1;+-- > for (uint32_t memoryType = 0; memoryType < memoryProperties2.memoryProperties.memoryTypeCount; memoryType++) {+-- > if (memoryProperties2.memoryProperties.memoryTypes[memoryType].propertyFlags & VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV) {+-- > heapIndex = memoryProperties2.memoryProperties.memoryTypes[memoryType].heapIndex;+-- > break;+-- > }+-- > }+-- > if ((heapIndex == (uint32_t)-1) ||+-- > (memoryBudgetProperties.heapBudget[heapIndex] < size)) {+-- > return;+-- > }+-- >+-- > VkPhysicalDeviceExternalBufferInfo externalBufferInfo = { VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO };+-- > externalBufferInfo.usage = VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT;+-- > externalBufferInfo.handleType = VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV;+-- >+-- > VkExternalBufferProperties externalBufferProperties = { VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES };+-- > vkGetPhysicalDeviceExternalBufferProperties(physicalDevice, &externalBufferInfo, &externalBufferProperties);+-- >+-- > if (!(externalBufferProperties.externalMemoryProperties.externalMemoryFeatures & VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT)) {+-- > return;+-- > }+-- >+-- > VkExternalMemoryBufferCreateInfo externalMemoryBufferCreateInfo = { VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO };+-- > externalMemoryBufferCreateInfo.handleTypes = VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV;+-- >+-- > VkBufferCreateInfo bufferCreateInfo = { VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO, &externalMemoryBufferCreateInfo };+-- > bufferCreateInfo.size = size;+-- > bufferCreateInfo.usage = VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT;+-- >+-- > VkMemoryRequirements mem_reqs;+-- > vkCreateBuffer(device, &bufferCreateInfo, NULL, &buffer);+-- > vkGetBufferMemoryRequirements(device, buffer, &mem_reqs);+-- >+-- > VkExportMemoryAllocateInfo exportMemoryAllocateInfo = { VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO };+-- > exportMemoryAllocateInfo.handleTypes = VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV;+-- >+-- > // Find memory type index+-- > uint32_t i = 0;+-- > for (; i < VK_MAX_MEMORY_TYPES; i++) {+-- > if ((mem_reqs.memoryTypeBits & (1 << i)) &&+-- > (memoryProperties.memoryTypes[i].propertyFlags & VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV)) {+-- > break;+-- > }+-- > }+-- >+-- > VkMemoryAllocateInfo memAllocInfo = { VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO, &exportMemoryAllocateInfo };+-- > memAllocInfo.allocationSize = mem_reqs.size;+-- > memAllocInfo.memoryTypeIndex = i;+-- >+-- > vkAllocateMemory(device, &memAllocInfo, NULL, &mem);+-- > vkBindBufferMemory(device, buffer, mem, 0);+-- >+-- > VkMemoryGetRemoteAddressInfoNV getMemoryRemoteAddressInfo = { VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV };+-- > getMemoryRemoteAddressInfo.memory = mem;+-- > getMemoryRemoteAddressInfo.handleType = VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV;+-- >+-- > VkRemoteAddressNV rdmaAddress;+-- > vkGetMemoryRemoteAddressNV(device, &getMemoryRemoteAddressInfo, &rdmaAddress);+-- > // address returned in 'rdmaAddress' can be used by external devices to initiate RDMA transfers+--+-- == Version History+--+-- - Revision 1, 2020-12-15 (Carsten Rohde)+--+-- - Internal revisions+--+-- = See Also+--+-- 'MemoryGetRemoteAddressInfoNV',+-- 'PhysicalDeviceExternalMemoryRDMAFeaturesNV', 'RemoteAddressNV',+-- 'getMemoryRemoteAddressNV'+--+-- = Document Notes+--+-- For more information, see the+-- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#VK_NV_external_memory_rdma Vulkan Specification>+--+-- This page is a generated document. Fixes and changes should be made to+-- the generator scripts, not directly.+module Vulkan.Extensions.VK_NV_external_memory_rdma ( MemoryGetRemoteAddressInfoNV+ , PhysicalDeviceExternalMemoryRDMAFeaturesNV+ , RemoteAddressNV+ ) where++import Vulkan.CStruct (FromCStruct)+import Vulkan.CStruct (ToCStruct)+import Foreign.Ptr (Ptr)+import Data.Kind (Type)++data MemoryGetRemoteAddressInfoNV++instance ToCStruct MemoryGetRemoteAddressInfoNV+instance Show MemoryGetRemoteAddressInfoNV++instance FromCStruct MemoryGetRemoteAddressInfoNV+++data PhysicalDeviceExternalMemoryRDMAFeaturesNV++instance ToCStruct PhysicalDeviceExternalMemoryRDMAFeaturesNV+instance Show PhysicalDeviceExternalMemoryRDMAFeaturesNV++instance FromCStruct PhysicalDeviceExternalMemoryRDMAFeaturesNV+++-- No documentation found for TopLevel "VkRemoteAddressNV"+type RemoteAddressNV = Ptr ()+
src/Vulkan/SPIRVRequirements.hs view
@@ -665,32 +665,36 @@ "DerivativeControl" -> (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 0 0] "Geometry" -> (,)- []+ [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [ RequireDeviceFeature { featureName = "geometryShader" , checkFeature = geometryShader :: PhysicalDeviceFeatures -> Bool , enableFeature = \f -> f { geometryShader = True } :: PhysicalDeviceFeatures }+ , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0 ] "Tessellation" -> (,)- []+ [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [ RequireDeviceFeature { featureName = "tessellationShader" , checkFeature = tessellationShader :: PhysicalDeviceFeatures -> Bool , enableFeature = \f -> f { tessellationShader = True } :: PhysicalDeviceFeatures }+ , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0 ] "Float64" -> (,)- []+ [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [ RequireDeviceFeature { featureName = "shaderFloat64" , checkFeature = shaderFloat64 :: PhysicalDeviceFeatures -> Bool , enableFeature = \f -> f { shaderFloat64 = True } :: PhysicalDeviceFeatures }+ , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0 ] "Int64" -> (,)- []+ [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [ RequireDeviceFeature { featureName = "shaderInt64" , checkFeature = shaderInt64 :: PhysicalDeviceFeatures -> Bool , enableFeature = \f -> f { shaderInt64 = True } :: PhysicalDeviceFeatures }+ , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0 ] "Int64Atomics" -> (,) [ RequireInstanceVersion $ MAKE_API_VERSION 1 2 0@@ -759,161 +763,182 @@ } ] "Int16" -> (,)- []+ [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [ RequireDeviceFeature { featureName = "shaderInt16" , checkFeature = shaderInt16 :: PhysicalDeviceFeatures -> Bool , enableFeature = \f -> f { shaderInt16 = True } :: PhysicalDeviceFeatures }+ , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0 ] "TessellationPointSize" -> (,)- []+ [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [ RequireDeviceFeature- { featureName = "shaderTessellationAndGeometryPointSize"- , checkFeature = shaderTessellationAndGeometryPointSize :: PhysicalDeviceFeatures -> Bool- , enableFeature = \f -> f { shaderTessellationAndGeometryPointSize = True } :: PhysicalDeviceFeatures- }+ { featureName = "shaderTessellationAndGeometryPointSize"+ , checkFeature = shaderTessellationAndGeometryPointSize :: PhysicalDeviceFeatures -> Bool+ , enableFeature = \f -> f { shaderTessellationAndGeometryPointSize = True } :: PhysicalDeviceFeatures+ }+ , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0 ] "GeometryPointSize" -> (,)- []+ [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [ RequireDeviceFeature- { featureName = "shaderTessellationAndGeometryPointSize"- , checkFeature = shaderTessellationAndGeometryPointSize :: PhysicalDeviceFeatures -> Bool- , enableFeature = \f -> f { shaderTessellationAndGeometryPointSize = True } :: PhysicalDeviceFeatures- }+ { featureName = "shaderTessellationAndGeometryPointSize"+ , checkFeature = shaderTessellationAndGeometryPointSize :: PhysicalDeviceFeatures -> Bool+ , enableFeature = \f -> f { shaderTessellationAndGeometryPointSize = True } :: PhysicalDeviceFeatures+ }+ , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0 ] "ImageGatherExtended" -> (,)- []+ [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [ RequireDeviceFeature { featureName = "shaderImageGatherExtended" , checkFeature = shaderImageGatherExtended :: PhysicalDeviceFeatures -> Bool , enableFeature = \f -> f { shaderImageGatherExtended = True } :: PhysicalDeviceFeatures }+ , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0 ] "StorageImageMultisample" -> (,)- []+ [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [ RequireDeviceFeature { featureName = "shaderStorageImageMultisample" , checkFeature = shaderStorageImageMultisample :: PhysicalDeviceFeatures -> Bool , enableFeature = \f -> f { shaderStorageImageMultisample = True } :: PhysicalDeviceFeatures }+ , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0 ] "UniformBufferArrayDynamicIndexing" -> (,)- []+ [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [ RequireDeviceFeature- { featureName = "shaderUniformBufferArrayDynamicIndexing"- , checkFeature = shaderUniformBufferArrayDynamicIndexing :: PhysicalDeviceFeatures -> Bool- , enableFeature = \f -> f { shaderUniformBufferArrayDynamicIndexing = True } :: PhysicalDeviceFeatures- }+ { featureName = "shaderUniformBufferArrayDynamicIndexing"+ , checkFeature = shaderUniformBufferArrayDynamicIndexing :: PhysicalDeviceFeatures -> Bool+ , enableFeature = \f -> f { shaderUniformBufferArrayDynamicIndexing = True } :: PhysicalDeviceFeatures+ }+ , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0 ] "SampledImageArrayDynamicIndexing" -> (,)- []+ [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [ RequireDeviceFeature- { featureName = "shaderSampledImageArrayDynamicIndexing"- , checkFeature = shaderSampledImageArrayDynamicIndexing :: PhysicalDeviceFeatures -> Bool- , enableFeature = \f -> f { shaderSampledImageArrayDynamicIndexing = True } :: PhysicalDeviceFeatures- }+ { featureName = "shaderSampledImageArrayDynamicIndexing"+ , checkFeature = shaderSampledImageArrayDynamicIndexing :: PhysicalDeviceFeatures -> Bool+ , enableFeature = \f -> f { shaderSampledImageArrayDynamicIndexing = True } :: PhysicalDeviceFeatures+ }+ , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0 ] "StorageBufferArrayDynamicIndexing" -> (,)- []+ [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [ RequireDeviceFeature- { featureName = "shaderStorageBufferArrayDynamicIndexing"- , checkFeature = shaderStorageBufferArrayDynamicIndexing :: PhysicalDeviceFeatures -> Bool- , enableFeature = \f -> f { shaderStorageBufferArrayDynamicIndexing = True } :: PhysicalDeviceFeatures- }+ { featureName = "shaderStorageBufferArrayDynamicIndexing"+ , checkFeature = shaderStorageBufferArrayDynamicIndexing :: PhysicalDeviceFeatures -> Bool+ , enableFeature = \f -> f { shaderStorageBufferArrayDynamicIndexing = True } :: PhysicalDeviceFeatures+ }+ , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0 ] "StorageImageArrayDynamicIndexing" -> (,)- []+ [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [ RequireDeviceFeature- { featureName = "shaderStorageImageArrayDynamicIndexing"- , checkFeature = shaderStorageImageArrayDynamicIndexing :: PhysicalDeviceFeatures -> Bool- , enableFeature = \f -> f { shaderStorageImageArrayDynamicIndexing = True } :: PhysicalDeviceFeatures- }+ { featureName = "shaderStorageImageArrayDynamicIndexing"+ , checkFeature = shaderStorageImageArrayDynamicIndexing :: PhysicalDeviceFeatures -> Bool+ , enableFeature = \f -> f { shaderStorageImageArrayDynamicIndexing = True } :: PhysicalDeviceFeatures+ }+ , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0 ] "ClipDistance" -> (,)- []+ [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [ RequireDeviceFeature { featureName = "shaderClipDistance" , checkFeature = shaderClipDistance :: PhysicalDeviceFeatures -> Bool , enableFeature = \f -> f { shaderClipDistance = True } :: PhysicalDeviceFeatures }+ , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0 ] "CullDistance" -> (,)- []+ [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [ RequireDeviceFeature { featureName = "shaderCullDistance" , checkFeature = shaderCullDistance :: PhysicalDeviceFeatures -> Bool , enableFeature = \f -> f { shaderCullDistance = True } :: PhysicalDeviceFeatures }+ , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0 ] "ImageCubeArray" -> (,)- []+ [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [ RequireDeviceFeature { featureName = "imageCubeArray" , checkFeature = imageCubeArray :: PhysicalDeviceFeatures -> Bool , enableFeature = \f -> f { imageCubeArray = True } :: PhysicalDeviceFeatures }+ , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0 ] "SampleRateShading" -> (,)- []+ [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [ RequireDeviceFeature { featureName = "sampleRateShading" , checkFeature = sampleRateShading :: PhysicalDeviceFeatures -> Bool , enableFeature = \f -> f { sampleRateShading = True } :: PhysicalDeviceFeatures }+ , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0 ] "SparseResidency" -> (,)- []+ [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [ RequireDeviceFeature { featureName = "shaderResourceResidency" , checkFeature = shaderResourceResidency :: PhysicalDeviceFeatures -> Bool , enableFeature = \f -> f { shaderResourceResidency = True } :: PhysicalDeviceFeatures }+ , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0 ] "MinLod" -> (,)- []+ [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [ RequireDeviceFeature { featureName = "shaderResourceMinLod" , checkFeature = shaderResourceMinLod :: PhysicalDeviceFeatures -> Bool , enableFeature = \f -> f { shaderResourceMinLod = True } :: PhysicalDeviceFeatures }+ , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0 ] "SampledCubeArray" -> (,)- []+ [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [ RequireDeviceFeature { featureName = "imageCubeArray" , checkFeature = imageCubeArray :: PhysicalDeviceFeatures -> Bool , enableFeature = \f -> f { imageCubeArray = True } :: PhysicalDeviceFeatures }+ , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0 ] "ImageMSArray" -> (,)- []+ [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [ RequireDeviceFeature { featureName = "shaderStorageImageMultisample" , checkFeature = shaderStorageImageMultisample :: PhysicalDeviceFeatures -> Bool , enableFeature = \f -> f { shaderStorageImageMultisample = True } :: PhysicalDeviceFeatures }+ , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0 ] "StorageImageExtendedFormats" -> (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [RequireDeviceVersion $ MAKE_API_VERSION 1 0 0] "InterpolationFunction" -> (,)- []+ [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [ RequireDeviceFeature { featureName = "sampleRateShading" , checkFeature = sampleRateShading :: PhysicalDeviceFeatures -> Bool , enableFeature = \f -> f { sampleRateShading = True } :: PhysicalDeviceFeatures }+ , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0 ] "StorageImageReadWithoutFormat" -> (,)- []+ [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [ RequireDeviceFeature- { featureName = "shaderStorageImageReadWithoutFormat"- , checkFeature = shaderStorageImageReadWithoutFormat :: PhysicalDeviceFeatures -> Bool- , enableFeature = \f -> f { shaderStorageImageReadWithoutFormat = True } :: PhysicalDeviceFeatures- }+ { featureName = "shaderStorageImageReadWithoutFormat"+ , checkFeature = shaderStorageImageReadWithoutFormat :: PhysicalDeviceFeatures -> Bool+ , enableFeature = \f -> f { shaderStorageImageReadWithoutFormat = True } :: PhysicalDeviceFeatures+ }+ , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0 ] "StorageImageWriteWithoutFormat" -> (,)- []+ [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [ RequireDeviceFeature- { featureName = "shaderStorageImageWriteWithoutFormat"- , checkFeature = shaderStorageImageWriteWithoutFormat :: PhysicalDeviceFeatures -> Bool- , enableFeature = \f -> f { shaderStorageImageWriteWithoutFormat = True } :: PhysicalDeviceFeatures- }+ { featureName = "shaderStorageImageWriteWithoutFormat"+ , checkFeature = shaderStorageImageWriteWithoutFormat :: PhysicalDeviceFeatures -> Bool+ , enableFeature = \f -> f { shaderStorageImageWriteWithoutFormat = True } :: PhysicalDeviceFeatures+ }+ , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0 ] "MultiViewport" -> (,)- []+ [RequireInstanceVersion $ MAKE_API_VERSION 1 0 0] [ RequireDeviceFeature { featureName = "multiViewport" , checkFeature = multiViewport :: PhysicalDeviceFeatures -> Bool , enableFeature = \f -> f { multiViewport = True } :: PhysicalDeviceFeatures }+ , RequireDeviceVersion $ MAKE_API_VERSION 1 0 0 ] "DrawParameters" -> (,) [RequireInstanceVersion $ MAKE_API_VERSION 1 2 0]
src/Vulkan/Version.hs view
@@ -19,11 +19,11 @@ import Data.Word (Word32) pattern HEADER_VERSION :: Word32-pattern HEADER_VERSION = 183+pattern HEADER_VERSION = 184 pattern HEADER_VERSION_COMPLETE :: Word32-pattern HEADER_VERSION_COMPLETE = MAKE_API_VERSION 1 2 183+pattern HEADER_VERSION_COMPLETE = MAKE_API_VERSION 1 2 184 pattern MAKE_API_VERSION :: Word32 -> Word32 -> Word32 -> Word32
vulkan.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack name: vulkan-version: 3.11.1+version: 3.11.2 synopsis: Bindings to the Vulkan graphics API. description: Please see [the readme](https://github.com/expipiplus1/vulkan/#readme) category: Graphics@@ -465,6 +465,7 @@ Vulkan.Extensions.VK_NV_device_generated_commands Vulkan.Extensions.VK_NV_external_memory Vulkan.Extensions.VK_NV_external_memory_capabilities+ Vulkan.Extensions.VK_NV_external_memory_rdma Vulkan.Extensions.VK_NV_external_memory_win32 Vulkan.Extensions.VK_NV_fill_rectangle Vulkan.Extensions.VK_NV_fragment_coverage_to_color