v3dv: Enable VK_KHR_robustness2

This enables the robustImageAccess2 feature for VK_KHR_robustness2

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39430>
This commit is contained in:
Daivik Bhatia 2026-01-25 06:52:33 +05:30 committed by Marge Bot
parent 66c5c8fe19
commit 9556812f0e
4 changed files with 13 additions and 5 deletions

View file

@ -573,7 +573,7 @@ Khronos extensions that are not part of any Vulkan version:
VK_KHR_ray_tracing_maintenance1 DONE (anv/gfx12.5+, lvp, radv/gfx10.3+, tu/a740+, vn)
VK_KHR_ray_tracing_pipeline DONE (anv/gfx12.5+, lvp, radv/gfx10.3+, vn)
VK_KHR_ray_tracing_position_fetch DONE (anv, lvp, radv/gfx10.3+, vn)
VK_KHR_robustness2 DONE (anv, hasvk, hk, lvp, nvk, panvk/v10+, pvr, radv, tu, vn)
VK_KHR_robustness2 DONE (anv, hasvk, hk, lvp, nvk, panvk/v10+, pvr, radv, tu, v3dv, vn)
VK_KHR_shader_bfloat16 DONE (anv/gfx12.5+, radv/gfx12+, vn)
VK_KHR_shader_clock DONE (anv, hasvk, lvp, nvk, panvk, radv, tu, vn)
VK_KHR_shader_fma DONE (vn)
@ -669,7 +669,7 @@ Khronos extensions that are not part of any Vulkan version:
VK_EXT_provoking_vertex DONE (anv, hasvk, hk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_EXT_queue_family_foreign DONE (anv, hasvk, hk, nvk, lvp, panvk, pvr, radv, tu, v3dv, vn)
VK_EXT_rasterization_order_attachment_access DONE (lvp, tu, vn)
VK_EXT_robustness2 DONE (anv, hasvk, hk, lvp, nvk, panvk/v10+, pvr, radv, tu, vn)
VK_EXT_robustness2 DONE (anv, hasvk, hk, lvp, nvk, panvk/v10+, pvr, radv, tu, v3dv, vn)
VK_EXT_sample_locations DONE (anv, hasvk, hk, nvk, radv, tu/a650+, vn, lavapipe)
VK_EXT_shader_atomic_float DONE (anv, hasvk, lvp, radv, tu, vn)
VK_EXT_shader_atomic_float2 DONE (anv, lvp, radv, vn)

View file

@ -60,7 +60,6 @@ dEQP-VK.protected_memory.*
dEQP-VK.query_pool.statistics_query.*
dEQP-VK.ray_query.*
dEQP-VK.ray_tracing_pipeline.*
dEQP-VK.robustness.robustness2.*
dEQP-VK.shader_object.rendering.*
dEQP-VK.sparse_resources.*
dEQP-VK.transform_feedback.*

View file

@ -80,7 +80,6 @@ dEQP-VK.protected_memory.*
dEQP-VK.query_pool.statistics_query.*
dEQP-VK.ray_query.*
dEQP-VK.ray_tracing_pipeline.*
dEQP-VK.robustness.robustness2.*
dEQP-VK.shader_object.rendering.*
dEQP-VK.sparse_resources.*
dEQP-VK.transform_feedback.*

View file

@ -171,6 +171,7 @@ get_device_extensions(const struct v3dv_physical_device *device,
.KHR_load_store_op_none = true,
.KHR_performance_query = device->caps.perfmon,
.KHR_relaxed_block_layout = true,
.KHR_robustness2 = true,
.KHR_maintenance1 = true,
.KHR_maintenance2 = true,
.KHR_maintenance3 = true,
@ -229,6 +230,7 @@ get_device_extensions(const struct v3dv_physical_device *device,
.EXT_pipeline_creation_cache_control = true,
.EXT_pipeline_creation_feedback = true,
.EXT_pipeline_robustness = true,
.EXT_robustness2 = true,
.EXT_primitive_topology_list_restart = true,
.EXT_private_data = true,
.EXT_provoking_vertex = true,
@ -404,6 +406,9 @@ get_features(const struct v3dv_physical_device *physical_device,
.shaderZeroInitializeWorkgroupMemory = true,
.synchronization2 = true,
.robustImageAccess = true,
.robustBufferAccess2 = false,
.robustImageAccess2 = true,
.nullDescriptor = false,
.shaderIntegerDotProduct = true,
/* VK_EXT_4444_formats */
@ -1236,6 +1241,10 @@ get_device_properties(const struct v3dv_physical_device *device,
.defaultRobustnessImages =
VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT,
/* VK_EXT_robustness2 */
.robustStorageBufferAccessSizeAlignment = 1,
.robustUniformBufferAccessSizeAlignment = 1,
/* VkPhysicalDeviceMultiDrawPropertiesEXT */
.maxMultiDrawCount = 2048,
@ -1904,7 +1913,8 @@ v3dv_CreateDevice(VkPhysicalDevice physicalDevice,
if (device->vk.enabled_features.robustBufferAccess)
perf_debug("Device created with Robust Buffer Access enabled.\n");
if (device->vk.enabled_features.robustImageAccess)
if (device->vk.enabled_features.robustImageAccess ||
device->vk.enabled_features.robustImageAccess2)
perf_debug("Device created with Robust Image Access enabled.\n");