venus: support VK_EXT_nested_command_buffer
Venus query records have been properly propagated from nested cmds already, so no special care is needed here for qfb optimizations. Test: - dEQP-VK.api.command_buffers.*nested* - dEQP-VK.conditional_rendering.*nested* - dEQP-VK.draw.dynamic_rendering.nested_* - dEQP-VK.multiview.*nested* Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33992>
This commit is contained in:
+1
-1
@@ -630,7 +630,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, radv, tu)
|
||||
VK_EXT_nested_command_buffer DONE (anv, lvp, nvk, radv, tu, vn)
|
||||
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)
|
||||
|
||||
@@ -201,6 +201,7 @@ vn_physical_device_init_features(struct vn_physical_device *physical_dev)
|
||||
legacy_vertex_attributes;
|
||||
VkPhysicalDeviceMultiDrawFeaturesEXT multi_draw;
|
||||
VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT mutable_descriptor_type;
|
||||
VkPhysicalDeviceNestedCommandBufferFeaturesEXT nested_command_buffer;
|
||||
VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT non_seamless_cube_map;
|
||||
VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT
|
||||
primitive_topology_list_restart;
|
||||
@@ -344,6 +345,7 @@ vn_physical_device_init_features(struct vn_physical_device *physical_dev)
|
||||
VN_ADD_PNEXT_EXT(feats2, IMAGE_VIEW_MIN_LOD_FEATURES_EXT, local_feats.image_view_min_lod, exts->EXT_image_view_min_lod);
|
||||
VN_ADD_PNEXT_EXT(feats2, MULTI_DRAW_FEATURES_EXT, local_feats.multi_draw, exts->EXT_multi_draw);
|
||||
VN_ADD_PNEXT_EXT(feats2, MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT, local_feats.mutable_descriptor_type, exts->EXT_mutable_descriptor_type || exts->VALVE_mutable_descriptor_type);
|
||||
VN_ADD_PNEXT_EXT(feats2, NESTED_COMMAND_BUFFER_FEATURES_EXT, local_feats.nested_command_buffer, exts->EXT_nested_command_buffer);
|
||||
VN_ADD_PNEXT_EXT(feats2, NON_SEAMLESS_CUBE_MAP_FEATURES_EXT, local_feats.non_seamless_cube_map, exts->EXT_non_seamless_cube_map);
|
||||
VN_ADD_PNEXT_EXT(feats2, PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT, local_feats.primitive_topology_list_restart, exts->EXT_primitive_topology_list_restart);
|
||||
VN_ADD_PNEXT_EXT(feats2, PRIMITIVES_GENERATED_QUERY_FEATURES_EXT, local_feats.primitives_generated_query, exts->EXT_primitives_generated_query);
|
||||
@@ -573,6 +575,7 @@ vn_physical_device_init_properties(struct vn_physical_device *physical_dev)
|
||||
VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT
|
||||
legacy_vertex_attributes;
|
||||
VkPhysicalDeviceMultiDrawPropertiesEXT multi_draw;
|
||||
VkPhysicalDeviceNestedCommandBufferPropertiesEXT nested_command_buffer;
|
||||
VkPhysicalDevicePCIBusInfoPropertiesEXT pci_bus_info;
|
||||
VkPhysicalDeviceProvokingVertexPropertiesEXT provoking_vertex;
|
||||
VkPhysicalDeviceRobustness2PropertiesEXT robustness_2;
|
||||
@@ -660,6 +663,7 @@ vn_physical_device_init_properties(struct vn_physical_device *physical_dev)
|
||||
VN_ADD_PNEXT_EXT(props2, GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT, local_props.graphics_pipeline_library, exts->EXT_graphics_pipeline_library);
|
||||
VN_ADD_PNEXT_EXT(props2, LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT, local_props.legacy_vertex_attributes, exts->EXT_legacy_vertex_attributes);
|
||||
VN_ADD_PNEXT_EXT(props2, MULTI_DRAW_PROPERTIES_EXT, local_props.multi_draw, exts->EXT_multi_draw);
|
||||
VN_ADD_PNEXT_EXT(props2, NESTED_COMMAND_BUFFER_PROPERTIES_EXT, local_props.nested_command_buffer, exts->EXT_nested_command_buffer);
|
||||
VN_ADD_PNEXT_EXT(props2, PCI_BUS_INFO_PROPERTIES_EXT, local_props.pci_bus_info, exts->EXT_pci_bus_info);
|
||||
VN_ADD_PNEXT_EXT(props2, PROVOKING_VERTEX_PROPERTIES_EXT, local_props.provoking_vertex, exts->EXT_provoking_vertex);
|
||||
VN_ADD_PNEXT_EXT(props2, ROBUSTNESS_2_PROPERTIES_EXT, local_props.robustness_2, exts->EXT_robustness2);
|
||||
@@ -739,6 +743,7 @@ vn_physical_device_init_properties(struct vn_physical_device *physical_dev)
|
||||
VN_SET_VK_PROPS_EXT(props, &local_props.graphics_pipeline_library, exts->EXT_graphics_pipeline_library);
|
||||
VN_SET_VK_PROPS_EXT(props, &local_props.legacy_vertex_attributes, exts->EXT_legacy_vertex_attributes);
|
||||
VN_SET_VK_PROPS_EXT(props, &local_props.multi_draw, exts->EXT_multi_draw);
|
||||
VN_SET_VK_PROPS_EXT(props, &local_props.nested_command_buffer, exts->EXT_nested_command_buffer);
|
||||
VN_SET_VK_PROPS_EXT(props, &local_props.pci_bus_info, exts->EXT_pci_bus_info);
|
||||
VN_SET_VK_PROPS_EXT(props, &local_props.provoking_vertex, exts->EXT_provoking_vertex);
|
||||
VN_SET_VK_PROPS_EXT(props, &local_props.robustness_2, exts->EXT_robustness2);
|
||||
@@ -1302,6 +1307,7 @@ vn_physical_device_get_passthrough_extensions(
|
||||
.EXT_memory_budget = false,
|
||||
.EXT_multi_draw = true,
|
||||
.EXT_mutable_descriptor_type = true,
|
||||
.EXT_nested_command_buffer = true,
|
||||
.EXT_non_seamless_cube_map = true,
|
||||
.EXT_post_depth_coverage = true,
|
||||
.EXT_primitive_topology_list_restart = true,
|
||||
|
||||
Reference in New Issue
Block a user