From 7902d9ee329011df905532073d65e65fe4ef8620 Mon Sep 17 00:00:00 2001 From: Yiwei Zhang Date: Wed, 5 Mar 2025 21:18:44 -0800 Subject: [PATCH] venus: support VK_KHR_ray_tracing_position_fetch Signed-off-by: Yiwei Zhang Part-of: --- docs/features.txt | 2 +- src/virtio/vulkan/vn_physical_device.c | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/features.txt b/docs/features.txt index 16e2320f517..ade6b8ac1a9 100644 --- a/docs/features.txt +++ b/docs/features.txt @@ -559,7 +559,7 @@ Khronos extensions that are not part of any Vulkan version: VK_KHR_ray_query DONE (anv/gfx12.5+, lvp, radv/gfx10.3+, tu/a740+, vn) VK_KHR_ray_tracing_maintenance1 DONE (anv/gfx12.5+, radv/gfx10.3+, tu/a740+) VK_KHR_ray_tracing_pipeline DONE (anv/gfx12.5+, lvp, radv/gfx10.3+, vn) - VK_KHR_ray_tracing_position_fetch DONE (anv, radv/gfx10.3+) + VK_KHR_ray_tracing_position_fetch DONE (anv, radv/gfx10.3+, vn) VK_KHR_shader_clock DONE (anv, hasvk, lvp, nvk, radv, vn) VK_KHR_shader_maximal_reconvergence DONE (anv, lvp, nvk, panvk/v10+, radv, vn) VK_KHR_shader_subgroup_uniform_control_flow DONE (anv, hasvk, nvk, panvk/v10+, radv, tu, vn) diff --git a/src/virtio/vulkan/vn_physical_device.c b/src/virtio/vulkan/vn_physical_device.c index f8cbcca8472..651d36c0794 100644 --- a/src/virtio/vulkan/vn_physical_device.c +++ b/src/virtio/vulkan/vn_physical_device.c @@ -161,6 +161,8 @@ vn_physical_device_init_features(struct vn_physical_device *physical_dev) VkPhysicalDeviceFragmentShadingRateFeaturesKHR fragment_shading_rate; VkPhysicalDeviceRayQueryFeaturesKHR ray_query; VkPhysicalDeviceRayTracingPipelineFeaturesKHR ray_tracing_pipeline; + VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR + ray_tracing_position_fetch; VkPhysicalDeviceShaderClockFeaturesKHR shader_clock; VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR shader_maximal_reconvergence; VkPhysicalDeviceShaderQuadControlFeaturesKHR shader_quad_control; @@ -305,6 +307,7 @@ vn_physical_device_init_features(struct vn_physical_device *physical_dev) VN_ADD_PNEXT_EXT(feats2, FRAGMENT_SHADING_RATE_FEATURES_KHR, local_feats.fragment_shading_rate, exts->KHR_fragment_shading_rate); VN_ADD_PNEXT_EXT(feats2, RAY_QUERY_FEATURES_KHR, local_feats.ray_query, exts->KHR_ray_query); VN_ADD_PNEXT_EXT(feats2, RAY_TRACING_PIPELINE_FEATURES_KHR, local_feats.ray_tracing_pipeline, exts->KHR_ray_tracing_pipeline); + VN_ADD_PNEXT_EXT(feats2, RAY_TRACING_POSITION_FETCH_FEATURES_KHR, local_feats.ray_tracing_position_fetch, exts->KHR_ray_tracing_position_fetch); VN_ADD_PNEXT_EXT(feats2, SHADER_CLOCK_FEATURES_KHR, local_feats.shader_clock, exts->KHR_shader_clock); VN_ADD_PNEXT_EXT(feats2, SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR, local_feats.shader_maximal_reconvergence, exts->KHR_shader_maximal_reconvergence); VN_ADD_PNEXT_EXT(feats2, SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR, local_feats.shader_subgroup_uniform_control_flow, exts->KHR_shader_subgroup_uniform_control_flow); @@ -1239,6 +1242,7 @@ vn_physical_device_get_passthrough_extensions( .KHR_pipeline_library = true, .KHR_ray_query = physical_dev->ray_tracing, .KHR_ray_tracing_pipeline = physical_dev->ray_tracing, + .KHR_ray_tracing_position_fetch = physical_dev->ray_tracing, .KHR_shader_clock = true, .KHR_shader_maximal_reconvergence = true, .KHR_shader_quad_control = true,