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;