tu: support VK_EXT_primitive_topology_list_restart
authorDanylo Piliaiev <dpiliaiev@igalia.com>
Fri, 14 Jan 2022 13:46:02 +0000 (15:46 +0200)
committerMarge Bot <emma+marge@anholt.net>
Mon, 17 Jan 2022 15:21:03 +0000 (15:21 +0000)
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Reviewed-by: Hyunjun Ko <zzoon@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14556>

docs/features.txt
src/freedreno/vulkan/tu_device.c

index 33e2868..dd9f042 100644 (file)
@@ -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)
index d8ebd34..9f20266 100644 (file)
@@ -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;