{-# 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 -- -- [__Extension and Version Dependencies__] -- -- - Requires Vulkan 1.1 -- -- [__Contact__] -- -- - Piers Daniell -- > > -- -- == Other Extension Metadata -- -- [__Last Modified Date__] -- 2021-10-25 -- -- [__Interactions and External Dependencies__] -- -- - Requires SPIR-V 1.2 for @LocalSizeId@ -- -- [__Contributors__] -- -- - Lionel Duc, NVIDIA -- -- - Jason 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 -- -- 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.StructureType.StructureType': -- -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR' -- -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR' -- -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR' -- -- - 'Vulkan.Core10.Enums.StructureType.STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR' -- -- == 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 -- -- -- This page is a generated document. Fixes and changes should be made to -- the generator scripts, not directly. module Vulkan.Extensions.VK_KHR_maintenance4 ( DeviceBufferMemoryRequirementsKHR , DeviceImageMemoryRequirementsKHR , PhysicalDeviceMaintenance4FeaturesKHR , PhysicalDeviceMaintenance4PropertiesKHR ) where import Vulkan.CStruct (FromCStruct) import Vulkan.CStruct (ToCStruct) import Data.Kind (Type) data DeviceBufferMemoryRequirementsKHR instance ToCStruct DeviceBufferMemoryRequirementsKHR instance Show DeviceBufferMemoryRequirementsKHR instance FromCStruct DeviceBufferMemoryRequirementsKHR data DeviceImageMemoryRequirementsKHR instance ToCStruct DeviceImageMemoryRequirementsKHR instance Show DeviceImageMemoryRequirementsKHR instance FromCStruct DeviceImageMemoryRequirementsKHR data PhysicalDeviceMaintenance4FeaturesKHR instance ToCStruct PhysicalDeviceMaintenance4FeaturesKHR instance Show PhysicalDeviceMaintenance4FeaturesKHR instance FromCStruct PhysicalDeviceMaintenance4FeaturesKHR data PhysicalDeviceMaintenance4PropertiesKHR instance ToCStruct PhysicalDeviceMaintenance4PropertiesKHR instance Show PhysicalDeviceMaintenance4PropertiesKHR instance FromCStruct PhysicalDeviceMaintenance4PropertiesKHR