diff --git a/docs/features.txt b/docs/features.txt index e78ae67f441..1f276d7fc2c 100644 --- a/docs/features.txt +++ b/docs/features.txt @@ -623,7 +623,7 @@ Khronos extensions that are not part of any Vulkan version: VK_EXT_pci_bus_info DONE (anv, hasvk, nvk, radv, vn) VK_EXT_physical_device_drm DONE (anv, hasvk, nvk, panvk, radv, tu, v3dv, vn) VK_EXT_pipeline_library_group_handles DONE (anv, radv) - VK_EXT_pipeline_robustness DONE (anv, nvk, radv, v3dv) + VK_EXT_pipeline_robustness DONE (anv, nvk, radv, v3dv, tu) VK_EXT_post_depth_coverage DONE (anv/gfx11+, lvp, nvk, radv/gfx10+, tu) VK_EXT_primitive_topology_list_restart DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn) VK_EXT_primitives_generated_query DONE (anv, hasvk, lvp, nvk, radv, tu, vn) diff --git a/src/freedreno/vulkan/tu_device.cc b/src/freedreno/vulkan/tu_device.cc index 174bcb1364d..15cad025027 100644 --- a/src/freedreno/vulkan/tu_device.cc +++ b/src/freedreno/vulkan/tu_device.cc @@ -642,6 +642,9 @@ tu_get_features(struct tu_physical_device *pdevice, /* VK_EXT_non_seamless_cube_map */ features->nonSeamlessCubeMap = true; + /* VK_EXT_pipeline_robustness */ + features->pipelineRobustness = true; + /* VK_EXT_primitive_topology_list_restart */ features->primitiveTopologyListRestart = true; features->primitiveTopologyPatchListRestart = false; @@ -1076,6 +1079,12 @@ tu_get_properties(struct tu_physical_device *pdevice, /* see write_ubo_descriptor() */ props->robustUniformBufferAccessSizeAlignment = 16; + /* VK_EXT_pipeline_robustness */ + props->defaultRobustnessStorageBuffers = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT; + props->defaultRobustnessUniformBuffers = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT; + props->defaultRobustnessVertexInputs = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT; + props->defaultRobustnessImages = VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT; + /* VK_EXT_provoking_vertex */ props->provokingVertexModePerPipeline = true; props->transformFeedbackPreservesTriangleFanProvokingVertex = false;