diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c index 99bb3cb1829..93092047f62 100644 --- a/src/intel/vulkan/anv_device.c +++ b/src/intel/vulkan/anv_device.c @@ -347,6 +347,7 @@ get_device_extensions(const struct anv_physical_device *device, device->sys.available, .EXT_mesh_shader = device->info.has_mesh_shading, .EXT_mutable_descriptor_type = true, + .EXT_nested_command_buffer = true, .EXT_non_seamless_cube_map = true, .EXT_pci_bus_info = true, .EXT_physical_device_drm = true, @@ -846,6 +847,11 @@ get_features(const struct anv_physical_device *pdevice, /* VK_KHR_maintenance5 */ .maintenance5 = true, + + /* VK_EXT_nested_command_buffer */ + .nestedCommandBuffer = true, + .nestedCommandBufferRendering = true, + .nestedCommandBufferSimultaneousUse = false, }; /* The new DOOM and Wolfenstein games require depthBounds without @@ -2454,6 +2460,13 @@ void anv_GetPhysicalDeviceProperties2( break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT: { + VkPhysicalDeviceNestedCommandBufferPropertiesEXT *properties = + (VkPhysicalDeviceNestedCommandBufferPropertiesEXT *)ext; + properties->maxCommandBufferNestingLevel = UINT32_MAX; + break; + } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR: { VkPhysicalDevicePerformanceQueryPropertiesKHR *properties = (VkPhysicalDevicePerformanceQueryPropertiesKHR *)ext; diff --git a/src/intel/vulkan/genX_cmd_buffer.c b/src/intel/vulkan/genX_cmd_buffer.c index 5a7962f4cd9..027e146624e 100644 --- a/src/intel/vulkan/genX_cmd_buffer.c +++ b/src/intel/vulkan/genX_cmd_buffer.c @@ -3657,8 +3657,6 @@ genX(CmdExecuteCommands)( { ANV_FROM_HANDLE(anv_cmd_buffer, container, commandBuffer); - assert(container->vk.level == VK_COMMAND_BUFFER_LEVEL_PRIMARY); - if (anv_batch_has_error(&container->batch)) return;