vulkan
Safe HaskellNone
LanguageHaskell2010

Vulkan.Extensions.VK_EXT_zero_initialize_device_memory

Description

Name

VK_EXT_zero_initialize_device_memory - device extension

VK_EXT_zero_initialize_device_memory

Name String
VK_EXT_zero_initialize_device_memory
Extension Type
Device extension
Registered Extension Number
621
Revision
1
Ratification Status
Ratified
Extension and Version Dependencies
VK_KHR_get_physical_device_properties2 or Vulkan Version 1.1
Contact
Extension Proposal
VK_EXT_zero_initialize_device_memory

Other Extension Metadata

Last Modified Date
2025-04-09
Interactions and External Dependencies
  • Interacts with Vulkan 1.1.
  • Interacts with VK_KHR_get_physical_device_properties2.
IP Status
No known IP claims.
Contributors
  • Hans-Kristian Arntzen, VALVE
  • Mike Blumenkrantz, VALVE
  • Tobias Hector, AMD
  • Faith Ekstrand, Collabora
  • Ricardo Garcia, Igalia
  • Jan-Harald Fredriksen, ARM
  • Spencer Fricke, LunarG

Description

By default, Vulkan provides no guarantees that device memory allocated through vkAllocateMemory is cleared to zero. This means that applications wanting resources to be zero-initialized must execute a command such as vkCmdFillBuffer or vkCmdClearColorImage on the device to ensure a deterministic result. This can be wasteful if the underlying platform either:

  • Already performs that zero clear anyway, due to e.g. security concerns.
  • Can be performed more efficiently in implementation, by e.g. clearing pages to zero in the background after device memory is freed.

This extension also has uses in API layering and porting efforts, where zero memory behavior may be more strict than Vulkan. Different OS platforms also have wildly different behaviors here, which leads to implementations needing to apply workarounds to paper over these issues in the wild. If an extension exists to make allocation behavior explicit, we hopefully achieve a more robust ecosystem for Vulkan.

New Structures

New Enum Constants

Version History

  • Revision 1, 2025-03-10 (Mike Blumenkrantz)

    • Initial version

See Also

No cross-references are available

Document Notes

For more information, see the Vulkan Specification.

This page is a generated document. Fixes and changes should be made to the generator scripts, not directly.

Synopsis

Documentation

data PhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT Source #

VkPhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT - Structure describing whether the implementation supports cleared allocation functionality

Members

This structure describes the following features:

Description

If the PhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT structure is included in the pNext chain of the PhysicalDeviceFeatures2 structure passed to getPhysicalDeviceFeatures2, it is filled in to indicate whether each corresponding feature is supported. If the application wishes to use a Device with any features described by PhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT, it must add an instance of the structure, with the desired feature members set to TRUE, to the pNext chain of DeviceCreateInfo when creating the Device.

Valid Usage (Implicit)

See Also

VK_EXT_zero_initialize_device_memory, Bool32, StructureType

Constructors

PhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT 

Fields

  • zeroInitializeDeviceMemory :: Bool

    zeroInitializeDeviceMemory indicates that the implementation supports zeroing memory allocations using a user-specified flag.

Instances

Instances details
Eq PhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_zero_initialize_device_memory

Storable PhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_zero_initialize_device_memory

Show PhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_zero_initialize_device_memory

FromCStruct PhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_zero_initialize_device_memory

ToCStruct PhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_zero_initialize_device_memory

Zero PhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_zero_initialize_device_memory

type EXT_ZERO_INITIALIZE_DEVICE_MEMORY_EXTENSION_NAME = "VK_EXT_zero_initialize_device_memory" Source #