{-# language CPP #-} -- | = Name -- -- VK_KHR_maintenance4 - device extension -- -- == VK_KHR_maintenance4 -- -- [__Name String__] -- @VK_KHR_maintenance4@ -- -- [__Extension Type__] -- Device extension -- -- [__Registered Extension Number__] -- 414 -- -- [__Revision__] -- 2 -- -- [__Ratification Status__] -- Ratified -- -- [__Extension and Version Dependencies__] -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.1 Version 1.1> -- -- [__Deprecation State__] -- -- - /Promoted/ to -- <https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html#versions-1.3-promotions Vulkan 1.3> -- -- [__Contact__] -- -- - Piers Daniell -- <https://github.com/KhronosGroup/Vulkan-Docs/issues/new?body=[VK_KHR_maintenance4] @pdaniell-nv%0A*Here describe the issue or question you have about the VK_KHR_maintenance4 extension* > -- -- == Other Extension Metadata -- -- [__Last Modified Date__] -- 2021-10-25 -- -- [__Interactions and External Dependencies__] -- -- - Promoted to Vulkan 1.3 Core -- -- - Requires SPIR-V 1.2 for @LocalSizeId@ -- -- [__Contributors__] -- -- - Lionel Duc, NVIDIA -- -- - Faith Ekstrand, Intel -- -- - Spencer Fricke, Samsung -- -- - Tobias Hector, AMD -- -- - Lionel Landwerlin, Intel -- -- - Graeme Leese, Broadcom -- -- - Tom Olson, Arm -- -- - Stu Smith, AMD -- -- - Yiwei Zhang, Google -- -- == Description -- -- @VK_KHR_maintenance4@ adds a collection of minor features, none of which -- would warrant an entire extension of their own. -- -- The new features are as follows: -- -- - Allow the application to destroy their -- 'Vulkan.Core10.Handles.PipelineLayout' object immediately after it -- was used to create another object. It is no longer necessary to keep -- its handle valid while the created object is in use. -- -- - Add a new -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#limits-maxBufferSize maxBufferSize> -- implementation-defined limit for the maximum size -- 'Vulkan.Core10.Handles.Buffer' that /can/ be created. -- -- - Add support for the SPIR-V 1.2 @LocalSizeId@ execution mode, which -- can be used as an alternative to @LocalSize@ to specify the local -- workgroup size with specialization constants. -- -- - Add a guarantee that images created with identical creation -- parameters will always have the same alignment requirements. -- -- - Add new 'getDeviceBufferMemoryRequirementsKHR', -- 'getDeviceImageMemoryRequirementsKHR', and -- 'getDeviceImageSparseMemoryRequirementsKHR' to allow the application -- to query the image memory requirements without having to create an -- image object and query it. -- -- - Relax the requirement that push constants must be initialized before -- they are dynamically accessed. -- -- - Relax the interface matching rules to allow a larger output vector -- to match with a smaller input vector, with additional values being -- discarded. -- -- - Add a guarantee for buffer memory requirement that the size memory -- requirement is never greater than the result of aligning create size -- with the alignment memory requirement. -- -- == New Commands -- -- - 'getDeviceBufferMemoryRequirementsKHR' -- -- - 'getDeviceImageMemoryRequirementsKHR' -- -- - 'getDeviceImageSparseMemoryRequirementsKHR' -- -- == New Structures -- -- - 'DeviceBufferMemoryRequirementsKHR' -- -- - 'DeviceImageMemoryRequirementsKHR' -- -- - Extending -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceFeatures2', -- 'Vulkan.Core10.Device.DeviceCreateInfo': -- -- - 'PhysicalDeviceMaintenance4FeaturesKHR' -- -- - Extending -- 'Vulkan.Core11.Promoted_From_VK_KHR_get_physical_device_properties2.PhysicalDeviceProperties2': -- -- - 'PhysicalDeviceMaintenance4PropertiesKHR' -- -- == New Enum Constants -- -- - 'KHR_MAINTENANCE_4_EXTENSION_NAME' -- -- - 'KHR_MAINTENANCE_4_SPEC_VERSION' -- -- - Extending -- 'Vulkan.Core10.Enums.ImageAspectFlagBits.ImageAspectFlagBits': -- -- - 'IMAGE_ASPECT_NONE_KHR' -- -- - Extending 'Vulkan.Core10.Enums.StructureType.StructureType': -- -- - 'STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR' -- -- - 'STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR' -- -- - 'STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR' -- -- - 'STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR' -- -- == Promotion to Vulkan 1.3 -- -- Functionality in this extension is included in core Vulkan 1.3, with the -- KHR suffix omitted. The original type, enum and command names are still -- available as aliases of the core functionality. -- -- == Issues -- -- None. -- -- == Version History -- -- - Revision 1, 2021-08-18 (Piers Daniell) -- -- - Internal revisions -- -- - Revision 2, 2021-10-25 (Yiwei Zhang) -- -- - More guarantees on buffer memory requirements -- -- == See Also -- -- 'DeviceBufferMemoryRequirementsKHR', 'DeviceImageMemoryRequirementsKHR', -- 'PhysicalDeviceMaintenance4FeaturesKHR', -- 'PhysicalDeviceMaintenance4PropertiesKHR', -- 'getDeviceBufferMemoryRequirementsKHR', -- 'getDeviceImageMemoryRequirementsKHR', -- 'getDeviceImageSparseMemoryRequirementsKHR' -- -- == Document Notes -- -- For more information, see the -- <https://registry.khronos.org/vulkan/specs/1.3-extensions/html/vkspec.html#VK_KHR_maintenance4 Vulkan Specification> -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly. module Vulkan.Extensions.VK_KHR_maintenance4 ( pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR , pattern STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR , pattern STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR , pattern STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR , pattern IMAGE_ASPECT_NONE_KHR , getDeviceBufferMemoryRequirementsKHR , getDeviceImageMemoryRequirementsKHR , getDeviceImageSparseMemoryRequirementsKHR , DeviceBufferMemoryRequirementsKHR , DeviceImageMemoryRequirementsKHR , PhysicalDeviceMaintenance4FeaturesKHR , PhysicalDeviceMaintenance4PropertiesKHR , KHR_MAINTENANCE_4_SPEC_VERSION , pattern KHR_MAINTENANCE_4_SPEC_VERSION , KHR_MAINTENANCE_4_EXTENSION_NAME , pattern KHR_MAINTENANCE_4_EXTENSION_NAME ) where import Data.String (IsString) import Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (getDeviceBufferMemoryRequirements) import Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (getDeviceImageMemoryRequirements) import Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (getDeviceImageSparseMemoryRequirements) import Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (DeviceBufferMemoryRequirements) import Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (DeviceImageMemoryRequirements) import Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (PhysicalDeviceMaintenance4Features) import Vulkan.Core13.Promoted_From_VK_KHR_maintenance4 (PhysicalDeviceMaintenance4Properties) import Vulkan.Core10.Enums.ImageAspectFlagBits (ImageAspectFlags) import Vulkan.Core10.Enums.ImageAspectFlagBits (ImageAspectFlagBits(IMAGE_ASPECT_NONE)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES)) import Vulkan.Core10.Enums.StructureType (StructureType(STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES)) -- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR" pattern $bSTRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR :: StructureType $mSTRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR :: forall {r}. StructureType -> ((# #) -> r) -> ((# #) -> r) -> r STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR = STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES -- No documentation found for TopLevel "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR" pattern $bSTRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR :: StructureType $mSTRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR :: forall {r}. StructureType -> ((# #) -> r) -> ((# #) -> r) -> r STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR = STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES -- No documentation found for TopLevel "VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR" pattern $bSTRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR :: StructureType $mSTRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR :: forall {r}. StructureType -> ((# #) -> r) -> ((# #) -> r) -> r STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR = STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS -- No documentation found for TopLevel "VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR" pattern $bSTRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR :: StructureType $mSTRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR :: forall {r}. StructureType -> ((# #) -> r) -> ((# #) -> r) -> r STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR = STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS -- No documentation found for TopLevel "VK_IMAGE_ASPECT_NONE_KHR" pattern $bIMAGE_ASPECT_NONE_KHR :: ImageAspectFlagBits $mIMAGE_ASPECT_NONE_KHR :: forall {r}. ImageAspectFlagBits -> ((# #) -> r) -> ((# #) -> r) -> r IMAGE_ASPECT_NONE_KHR = IMAGE_ASPECT_NONE -- No documentation found for TopLevel "vkGetDeviceBufferMemoryRequirementsKHR" getDeviceBufferMemoryRequirementsKHR :: Device -> ("info" ::: DeviceBufferMemoryRequirements) -> io (MemoryRequirements2 a) getDeviceBufferMemoryRequirementsKHR = forall (a :: [*]) (io :: * -> *). (Extendss MemoryRequirements2 a, PokeChain a, PeekChain a, MonadIO io) => Device -> ("info" ::: DeviceBufferMemoryRequirements) -> io (MemoryRequirements2 a) getDeviceBufferMemoryRequirements -- No documentation found for TopLevel "vkGetDeviceImageMemoryRequirementsKHR" getDeviceImageMemoryRequirementsKHR :: Device -> ("info" ::: DeviceImageMemoryRequirements) -> io (MemoryRequirements2 a) getDeviceImageMemoryRequirementsKHR = forall (a :: [*]) (io :: * -> *). (Extendss MemoryRequirements2 a, PokeChain a, PeekChain a, MonadIO io) => Device -> ("info" ::: DeviceImageMemoryRequirements) -> io (MemoryRequirements2 a) getDeviceImageMemoryRequirements -- No documentation found for TopLevel "vkGetDeviceImageSparseMemoryRequirementsKHR" getDeviceImageSparseMemoryRequirementsKHR :: Device -> ("info" ::: DeviceImageMemoryRequirements) -> io ("sparseMemoryRequirements" ::: Vector SparseImageMemoryRequirements2) getDeviceImageSparseMemoryRequirementsKHR = forall (io :: * -> *). MonadIO io => Device -> ("info" ::: DeviceImageMemoryRequirements) -> io ("sparseMemoryRequirements" ::: Vector SparseImageMemoryRequirements2) getDeviceImageSparseMemoryRequirements -- No documentation found for TopLevel "VkDeviceBufferMemoryRequirementsKHR" type DeviceBufferMemoryRequirementsKHR = DeviceBufferMemoryRequirements -- No documentation found for TopLevel "VkDeviceImageMemoryRequirementsKHR" type DeviceImageMemoryRequirementsKHR = DeviceImageMemoryRequirements -- No documentation found for TopLevel "VkPhysicalDeviceMaintenance4FeaturesKHR" type PhysicalDeviceMaintenance4FeaturesKHR = PhysicalDeviceMaintenance4Features -- No documentation found for TopLevel "VkPhysicalDeviceMaintenance4PropertiesKHR" type PhysicalDeviceMaintenance4PropertiesKHR = PhysicalDeviceMaintenance4Properties type KHR_MAINTENANCE_4_SPEC_VERSION = 2 -- No documentation found for TopLevel "VK_KHR_MAINTENANCE_4_SPEC_VERSION" pattern KHR_MAINTENANCE_4_SPEC_VERSION :: forall a . Integral a => a pattern $bKHR_MAINTENANCE_4_SPEC_VERSION :: forall a. Integral a => a $mKHR_MAINTENANCE_4_SPEC_VERSION :: forall {r} {a}. Integral a => a -> ((# #) -> r) -> ((# #) -> r) -> r KHR_MAINTENANCE_4_SPEC_VERSION = 2 type KHR_MAINTENANCE_4_EXTENSION_NAME = "VK_KHR_maintenance4" -- No documentation found for TopLevel "VK_KHR_MAINTENANCE_4_EXTENSION_NAME" pattern KHR_MAINTENANCE_4_EXTENSION_NAME :: forall a . (Eq a, IsString a) => a pattern $bKHR_MAINTENANCE_4_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a $mKHR_MAINTENANCE_4_EXTENSION_NAME :: forall {r} {a}. (Eq a, IsString a) => a -> ((# #) -> r) -> ((# #) -> r) -> r KHR_MAINTENANCE_4_EXTENSION_NAME = "VK_KHR_maintenance4"