tu: Add VK_EXT_zero_initialize_device_memory

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/14023
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37662>
This commit is contained in:
Karmjit Mahil
2025-10-02 11:18:49 +01:00
committed by Marge Bot
parent 6ee8fafac1
commit 01d1748130
3 changed files with 7 additions and 2 deletions

View File

@@ -672,7 +672,7 @@ Khronos extensions that are not part of any Vulkan version:
VK_EXT_vertex_attribute_divisor DONE (anv, dzn, hasvk, hk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_EXT_vertex_input_dynamic_state DONE (anv, hk, lvp, nvk, panvk, radv, tu, vn)
VK_EXT_ycbcr_image_arrays DONE (anv, hasvk, hk, lvp, nvk, panvk/v10+, radv, vn)
VK_EXT_zero_initialize_device_memory DONE (lvp, nvk, pvr, radv)
VK_EXT_zero_initialize_device_memory DONE (lvp, nvk, pvr, radv, tu)
VK_ANDROID_external_memory_android_hardware_buffer DONE (anv, lvp, panvk, radv, tu, v3dv, vn)
VK_ANDROID_native_buffer DONE (anv, lvp, panvk, radv, tu, v3dv, vn)
VK_GOOGLE_decorate_string DONE (anv, hasvk, hk, lvp, nvk, panvk, radv, tu, vn)

View File

@@ -8408,7 +8408,8 @@ tu_barrier(struct tu_cmd_buffer *cmd,
bool sparse_aliasing =
image->vk.create_flags & VK_BUFFER_CREATE_SPARSE_ALIASED_BIT;
if (old_layout == VK_IMAGE_LAYOUT_UNDEFINED) {
if (old_layout == VK_IMAGE_LAYOUT_UNDEFINED ||
old_layout == VK_IMAGE_LAYOUT_ZERO_INITIALIZED_EXT) {
/* The underlying memory for this image may have been used earlier
* within the same queue submission for a different image, which
* means that there may be old, stale cache entries which are in the

View File

@@ -335,6 +335,7 @@ get_device_extensions(const struct tu_physical_device *device,
.EXT_transform_feedback = true,
.EXT_vertex_attribute_divisor = true,
.EXT_vertex_input_dynamic_state = true,
.EXT_zero_initialize_device_memory = true,
/* For Graphics Flight Recorder (GFR) */
.AMD_buffer_marker = true,
@@ -804,6 +805,9 @@ tu_get_features(struct tu_physical_device *pdevice,
features->unifiedImageLayouts = true;
features->unifiedImageLayoutsVideo = false;
/* VK_EXT_zero_initialize_device_memory */
features->zeroInitializeDeviceMemory = true;
/* VK_VALVE_fragment_density_map_layered */
features->fragmentDensityMapLayered = true;