radv: Advertise VK_EXT_pipeline_robustness

Signed-off-by: Joshua Ashton <joshua@froggi.es>
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23912>
This commit is contained in:
Joshua Ashton
2023-06-28 18:35:06 +01:00
parent c9ac960b6a
commit 5ca8390e5f
2 changed files with 14 additions and 0 deletions

View File

@@ -8,3 +8,4 @@ VK_KHR_fragment_shader_barycentric on RADV/GFX10.3+
VK_KHR_ray_tracing_pipeline on RADV/GFX10.3+
VK_EXT_depth_bias_control on RADV
VK_EXT_fragment_shader_interlock on RADV/GFX9+
VK_EXT_pipeline_robustness on RADV

View File

@@ -514,6 +514,7 @@ radv_physical_device_get_supported_extensions(const struct radv_physical_device
.EXT_pipeline_creation_cache_control = true,
.EXT_pipeline_creation_feedback = true,
.EXT_pipeline_library_group_handles = radv_enable_rt(device, true),
.EXT_pipeline_robustness = !device->use_llvm,
.EXT_post_depth_coverage = device->rad_info.gfx_level >= GFX10,
.EXT_primitive_topology_list_restart = true,
.EXT_primitives_generated_query = true,
@@ -1021,6 +1022,9 @@ radv_physical_device_get_features(const struct radv_physical_device *pdevice, st
.fragmentShaderSampleInterlock = has_fragment_shader_interlock,
.fragmentShaderPixelInterlock = has_fragment_shader_interlock,
.fragmentShaderShadingRateInterlock = false,
/* VK_EXT_pipeline_robustness */
.pipelineRobustness = true,
};
}
@@ -1821,6 +1825,15 @@ radv_GetPhysicalDeviceProperties2(VkPhysicalDevice physicalDevice, VkPhysicalDev
properties->triStripVertexOrderIndependentOfProvokingVertex = false;
break;
}
case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT: {
VkPhysicalDevicePipelineRobustnessPropertiesEXT *properties =
(VkPhysicalDevicePipelineRobustnessPropertiesEXT *)ext;
properties->defaultRobustnessStorageBuffers = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT;
properties->defaultRobustnessUniformBuffers = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT;
properties->defaultRobustnessVertexInputs = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT;
properties->defaultRobustnessImages = VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT;
break;
}
default:
break;
}