From dec5523e330fa09e80b0020810c71526bfabfa77 Mon Sep 17 00:00:00 2001 From: Mary Guillemard Date: Mon, 25 Nov 2024 15:32:34 +0100 Subject: [PATCH] panvk: Advertise VK_EXT_pipeline_robustness Signed-off-by: Mary Guillemard Reviewed-by: Boris Brezillon Part-of: --- docs/features.txt | 2 +- src/panfrost/vulkan/panvk_physical_device.c | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/docs/features.txt b/docs/features.txt index e56951c241a..50599e18495 100644 --- a/docs/features.txt +++ b/docs/features.txt @@ -624,7 +624,7 @@ Khronos extensions that are not part of any Vulkan version: VK_EXT_physical_device_drm DONE (anv, hasvk, nvk, panvk, radv, tu, v3dv, vn) VK_EXT_pipeline_library_group_handles DONE (anv, radv) VK_EXT_pipeline_protected_access DONE (anv/gfx12+) - VK_EXT_pipeline_robustness DONE (anv, nvk, radv, v3dv, tu) + VK_EXT_pipeline_robustness DONE (anv, nvk, panvk, radv, v3dv, tu) VK_EXT_post_depth_coverage DONE (anv/gfx11+, lvp, nvk, radv/gfx10+, tu) VK_EXT_primitive_topology_list_restart DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn) VK_EXT_primitives_generated_query DONE (anv, hasvk, lvp, nvk, radv, tu, vn) diff --git a/src/panfrost/vulkan/panvk_physical_device.c b/src/panfrost/vulkan/panvk_physical_device.c index c21f3924a22..fe2ee4a3c32 100644 --- a/src/panfrost/vulkan/panvk_physical_device.c +++ b/src/panfrost/vulkan/panvk_physical_device.c @@ -241,6 +241,7 @@ get_device_extensions(const struct panvk_physical_device *device, .EXT_physical_device_drm = true, .EXT_pipeline_creation_cache_control = true, .EXT_pipeline_creation_feedback = true, + .EXT_pipeline_robustness = true, .EXT_private_data = true, .EXT_queue_family_foreign = true, .EXT_sampler_filter_minmax = arch >= 10, @@ -395,6 +396,9 @@ get_features(const struct panvk_physical_device *device, /* VK_KHR_pipeline_executable_properties */ .pipelineExecutableInfo = true, + /* VK_EXT_pipeline_robustness */ + .pipelineRobustness = true, + /* VK_KHR_shader_relaxed_extended_instruction */ .shaderRelaxedExtendedInstruction = true, @@ -767,6 +771,16 @@ get_device_properties(const struct panvk_instance *instance, .graphicsPipelineLibraryFastLinking = true, .graphicsPipelineLibraryIndependentInterpolationDecoration = true, + /* VK_EXT_pipeline_robustness */ + .defaultRobustnessStorageBuffers = + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT, + .defaultRobustnessUniformBuffers = + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT, + .defaultRobustnessVertexInputs = + VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT, + .defaultRobustnessImages = + VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT, + /* VK_KHR_vertex_attribute_divisor */ /* We will have to restrict this a bit for multiview */ .maxVertexAttribDivisor = UINT32_MAX,