v3dv: expose VK_EXT_primitive_topology_list_restart

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 <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18544>
This commit is contained in:
Iago Toral Quiroga 2022-09-12 10:54:52 +02:00 committed by Marge Bot
parent f350b78b73
commit e2010e000b
2 changed files with 11 additions and 1 deletions

View file

@ -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)

View file

@ -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;