diff --git a/docs/features.txt b/docs/features.txt index 6cc8abaae84..386a8f1483a 100644 --- a/docs/features.txt +++ b/docs/features.txt @@ -533,7 +533,7 @@ Vulkan 1.4 -- all DONE: anv, hk, lvp, nvk, panvk/v10+, radv/gfx8+, tu/a7xx+, vn VK_KHR_shader_subgroup_rotate DONE (anv, lvp, nvk, panvk, radv, tu, vn) VK_KHR_vertex_attribute_divisor DONE (anv, kk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn) VK_EXT_host_image_copy DONE (anv, lvp, nvk/Turing+, panvk, radv/gfx10+, tu, vn) - VK_EXT_pipeline_protected_access DONE (anv/gfx12+, vn) + VK_EXT_pipeline_protected_access DONE (anv/gfx12+, radv, vn) VK_EXT_pipeline_robustness DONE (anv, lvp, nvk, panvk, radv, v3dv, tu, vn) Khronos extensions that are not part of any Vulkan version: diff --git a/docs/relnotes/new_features.txt b/docs/relnotes/new_features.txt index 284487bea3a..e1911a8c6b4 100644 --- a/docs/relnotes/new_features.txt +++ b/docs/relnotes/new_features.txt @@ -8,3 +8,4 @@ VK_KHR_performance_query on RADV/GFX11 VK_EXT_conservative_rasterization on panvk shaderImageGatherExtended on pvr static C++ stdlib required on rusticl to workaround applications using their own C++ stdlib +VK_EXT_pipeline_protected_access on RADV diff --git a/src/amd/vulkan/radv_physical_device.c b/src/amd/vulkan/radv_physical_device.c index 1719a1e6e29..6e2952b0e00 100644 --- a/src/amd/vulkan/radv_physical_device.c +++ b/src/amd/vulkan/radv_physical_device.c @@ -874,6 +874,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(pdev), + .EXT_pipeline_protected_access = radv_tmz_enabled(pdev), .EXT_pipeline_robustness = !pdev->use_llvm, .EXT_post_depth_coverage = pdev->info.gfx_level >= GFX10, #ifdef RADV_USE_WSI_PLATFORM @@ -1118,7 +1119,11 @@ radv_physical_device_get_features(const struct radv_physical_device *pdev, struc .dynamicRenderingLocalRead = true, .maintenance5 = true, .maintenance6 = true, - .pipelineProtectedAccess = false, + + /* The pipeline flags are ignored because it's not really possible to + * control this at pipeline level. + */ + .pipelineProtectedAccess = radv_tmz_enabled(pdev), .pipelineRobustness = true, .hostImageCopy = radv_host_image_copy_enabled(pdev), .pushDescriptor = true,