From 638341d7090bee9f19570f0edc2cec8f5c057bc7 Mon Sep 17 00:00:00 2001 From: Yiwei Zhang Date: Tue, 11 Mar 2025 15:35:21 -0700 Subject: [PATCH] venus: support VK_EXT_pipeline_library_group_handles This completes the entire series of ray tracing support. Signed-off-by: Yiwei Zhang Part-of: --- docs/features.txt | 2 +- src/virtio/vulkan/vn_physical_device.c | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/features.txt b/docs/features.txt index 1804ad46b34..02de51e5b65 100644 --- a/docs/features.txt +++ b/docs/features.txt @@ -635,7 +635,7 @@ Khronos extensions that are not part of any Vulkan version: VK_EXT_pageable_device_local_memory DONE (lvp) VK_EXT_pci_bus_info DONE (anv, hasvk, nvk, radv, vn) VK_EXT_physical_device_drm DONE (anv, hasvk, nvk, panvk, radv, tu, v3dv, vn) - VK_EXT_pipeline_library_group_handles DONE (anv, radv) + VK_EXT_pipeline_library_group_handles DONE (anv, radv, vn) VK_EXT_post_depth_coverage DONE (anv/gfx11+, lvp, nvk, radv/gfx10+, tu, vn) VK_EXT_primitive_topology_list_restart DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn) VK_EXT_primitives_generated_query DONE (anv, hasvk, lvp, nvk, radv, tu, vn) diff --git a/src/virtio/vulkan/vn_physical_device.c b/src/virtio/vulkan/vn_physical_device.c index b6365566a19..fbc4997d583 100644 --- a/src/virtio/vulkan/vn_physical_device.c +++ b/src/virtio/vulkan/vn_physical_device.c @@ -203,6 +203,7 @@ vn_physical_device_init_features(struct vn_physical_device *physical_dev) VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT mutable_descriptor_type; VkPhysicalDeviceNestedCommandBufferFeaturesEXT nested_command_buffer; VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT non_seamless_cube_map; + VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT pipeline_library_group_handles; VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT primitive_topology_list_restart; VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT @@ -347,6 +348,7 @@ vn_physical_device_init_features(struct vn_physical_device *physical_dev) 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, PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT, local_feats.pipeline_library_group_handles, exts->EXT_pipeline_library_group_handles); 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); VN_ADD_PNEXT_EXT(feats2, PROVOKING_VERTEX_FEATURES_EXT, local_feats.provoking_vertex, exts->EXT_provoking_vertex); @@ -1305,6 +1307,7 @@ vn_physical_device_get_passthrough_extensions( .EXT_mutable_descriptor_type = true, .EXT_nested_command_buffer = true, .EXT_non_seamless_cube_map = true, + .EXT_pipeline_library_group_handles = physical_dev->ray_tracing, .EXT_post_depth_coverage = true, .EXT_primitive_topology_list_restart = true, .EXT_primitives_generated_query = true,