From e2010e000b09527aeaf1f87e427b25da36350ca8 Mon Sep 17 00:00:00 2001 From: Iago Toral Quiroga Date: Mon, 12 Sep 2022 10:54:52 +0200 Subject: [PATCH] v3dv: expose VK_EXT_primitive_topology_list_restart MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The hw supports restarts of list primmitives and we pass all the relevant CTS tests. We don't advertise patch list restarts because we don't support tessellation shaders yet. Reviewed-by: Alejandro PiƱeiro Part-of: --- docs/features.txt | 2 +- src/broadcom/vulkan/v3dv_device.c | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/docs/features.txt b/docs/features.txt index c16e2226314..79115d80d6c 100644 --- a/docs/features.txt +++ b/docs/features.txt @@ -569,7 +569,7 @@ Khronos extensions that are not part of any Vulkan version: VK_EXT_pci_bus_info DONE (anv, radv) VK_EXT_physical_device_drm DONE (anv, radv, tu, v3dv, vn) VK_EXT_post_depth_coverage DONE (anv/gfx10+, lvp, radv/gfx10+) - VK_EXT_primitive_topology_list_restart DONE (anv, lvp, radv, tu) + VK_EXT_primitive_topology_list_restart DONE (anv, lvp, radv, tu, v3dv) VK_EXT_primitives_generated_query DONE (anv, lvp, radv, tu) VK_EXT_provoking_vertex DONE (anv, lvp, radv, tu, v3dv, vn) VK_EXT_queue_family_foreign DONE (anv, radv, tu, vn) diff --git a/src/broadcom/vulkan/v3dv_device.c b/src/broadcom/vulkan/v3dv_device.c index 9e07b0f577c..cfa75ee4659 100644 --- a/src/broadcom/vulkan/v3dv_device.c +++ b/src/broadcom/vulkan/v3dv_device.c @@ -181,6 +181,7 @@ get_device_extensions(const struct v3dv_physical_device *device, .EXT_physical_device_drm = true, .EXT_pipeline_creation_cache_control = true, .EXT_pipeline_creation_feedback = true, + .EXT_primitive_topology_list_restart = true, .EXT_private_data = true, .EXT_provoking_vertex = true, .EXT_separate_stencil_usage = true, @@ -1354,6 +1355,15 @@ v3dv_GetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice, break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT: { + VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT *features = + (void *) ext; + features->primitiveTopologyListRestart = true; + /* FIXME: we don't support tessellation shaders yet */ + features->primitiveTopologyPatchListRestart = false; + break; + } + default: v3dv_debug_ignored_stype(ext->sType); break;