From 8b8d194bfb7bf2d732f95aaa49345205cee9438d Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Fri, 19 Apr 2024 10:26:07 +0200 Subject: [PATCH] radv: advertise VK_EXT_nested_command_buffer Signed-off-by: Samuel Pitoiset Part-of: --- docs/features.txt | 2 +- docs/relnotes/new_features.txt | 2 +- src/amd/vulkan/radv_physical_device.c | 9 +++++++++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/docs/features.txt b/docs/features.txt index 273a6e503d298..a314ae054692b 100644 --- a/docs/features.txt +++ b/docs/features.txt @@ -601,7 +601,7 @@ Khronos extensions that are not part of any Vulkan version: VK_EXT_mesh_shader DONE (anv/gfx12.5+, lvp, radv) VK_EXT_multi_draw DONE (anv, hasvk, lvp, nvk, radv, tu, vn, v3dv) VK_EXT_multisampled_render_to_single_sampled DONE (lvp) - VK_EXT_nested_command_buffer DONE (anv, lvp, nvk) + VK_EXT_nested_command_buffer DONE (anv, lvp, nvk, radv) VK_EXT_non_seamless_cube_map DONE (anv, hasvk, lvp, nvk, radv, tu, vn) VK_EXT_pageable_device_local_memory DONE (lvp) VK_EXT_pci_bus_info DONE (anv, hasvk, nvk, radv, vn) diff --git a/docs/relnotes/new_features.txt b/docs/relnotes/new_features.txt index f0bfb20b0d7ee..c4d0c24e00460 100644 --- a/docs/relnotes/new_features.txt +++ b/docs/relnotes/new_features.txt @@ -16,4 +16,4 @@ VK_EXT_device_address_binding_report on RADV VK_EXT_external_memory_dma_buf for lavapipe VK_EXT_queue_family_foreign for lavapipe VK_EXT_shader_object on RADV -VK_EXT_nested_command_buffer on NVK +VK_EXT_nested_command_buffer on NVK and RADV diff --git a/src/amd/vulkan/radv_physical_device.c b/src/amd/vulkan/radv_physical_device.c index b1db5b5584ea2..35ffb1f4ddcba 100644 --- a/src/amd/vulkan/radv_physical_device.c +++ b/src/amd/vulkan/radv_physical_device.c @@ -633,6 +633,7 @@ radv_physical_device_get_supported_extensions(const struct radv_physical_device .EXT_mesh_shader = radv_taskmesh_enabled(pdev), .EXT_multi_draw = true, .EXT_mutable_descriptor_type = true, /* Trivial promotion from VALVE. */ + .EXT_nested_command_buffer = true, .EXT_non_seamless_cube_map = true, .EXT_pci_bus_info = true, #ifndef _WIN32 @@ -1205,6 +1206,11 @@ radv_physical_device_get_features(const struct radv_physical_device *pdev, struc /* VK_EXT_address_binding_report */ .reportAddressBinding = true, + + /* VK_EXT_nested_command_buffer */ + .nestedCommandBuffer = true, + .nestedCommandBufferRendering = true, + .nestedCommandBufferSimultaneousUse = true, }; } @@ -1898,6 +1904,9 @@ radv_get_physical_device_properties(struct radv_physical_device *pdev) uint64_t os_page_size = 4096; os_get_page_size(&os_page_size); p->minPlacedMemoryMapAlignment = os_page_size; + + /* VK_EXT_nested_command_buffer */ + p->maxCommandBufferNestingLevel = UINT32_MAX; } static VkResult