diff --git a/docs/features.txt b/docs/features.txt index 33e28687b57..dd9f042bc15 100644 --- a/docs/features.txt +++ b/docs/features.txt @@ -544,7 +544,7 @@ Khronos extensions that are not part of any Vulkan version: VK_EXT_pipeline_creation_cache_control DONE (anv, radv, v3dv) VK_EXT_pipeline_creation_feedback DONE (anv, radv, v3dv) VK_EXT_post_depth_coverage DONE (anv/gfx10+, lvp, radv/gfx10+) - VK_EXT_primitive_topology_list_restart DONE (radv) + VK_EXT_primitive_topology_list_restart DONE (anv, lvp, radv, tu) VK_EXT_private_data DONE (anv, lvp, radv, tu, v3dv) VK_EXT_provoking_vertex DONE (anv, lvp, radv, tu, v3dv) VK_EXT_queue_family_foreign DONE (anv, radv, vn) diff --git a/src/freedreno/vulkan/tu_device.c b/src/freedreno/vulkan/tu_device.c index d8ebd34a867..9f202660dfc 100644 --- a/src/freedreno/vulkan/tu_device.c +++ b/src/freedreno/vulkan/tu_device.c @@ -186,6 +186,7 @@ get_device_extensions(const struct tu_physical_device *device, .EXT_host_query_reset = true, .EXT_index_type_uint8 = true, .EXT_memory_budget = true, + .EXT_primitive_topology_list_restart = true, .EXT_private_data = true, .EXT_robustness2 = true, .EXT_scalar_block_layout = true, @@ -797,6 +798,13 @@ tu_GetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice, features->shaderIntegerDotProduct = true; break; }; + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT: { + VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT *features = + (VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT *)ext; + features->primitiveTopologyListRestart = true; + features->primitiveTopologyPatchListRestart = false; + break; + } default: break;