venus: added passthrough extension support - Part III

Below are added:
1. VK_KHR_shader_maximal_reconvergence
2. VK_KHR_shader_subgroup_uniform_control_flow
3. VK_KHR_shader_quad_control
4. VK_EXT_shader_subgroup_vote

Test:
- dEQP-VK.reconvergence.*
- dEQP-VK.subgroups.subgroup_uniform_control_flow.*
- dEQP-VK.subgroups.shader_quad_control.*

Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33783>
This commit is contained in:
Yiwei Zhang 2025-02-26 16:39:11 -08:00 committed by Marge Bot
parent f16345b2f6
commit 1fe8be9215
2 changed files with 14 additions and 4 deletions

View file

@ -561,9 +561,9 @@ Khronos extensions that are not part of any Vulkan version:
VK_KHR_ray_tracing_pipeline DONE (anv/gfx12.5+, lvp, radv/gfx10.3+)
VK_KHR_ray_tracing_position_fetch DONE (anv, radv/gfx10.3+)
VK_KHR_shader_clock DONE (anv, hasvk, lvp, nvk, radv, vn)
VK_KHR_shader_maximal_reconvergence DONE (anv, lvp, nvk, radv)
VK_KHR_shader_subgroup_uniform_control_flow DONE (anv, hasvk, nvk, radv, tu)
VK_KHR_shader_quad_control DONE (anv, nvk, radv)
VK_KHR_shader_maximal_reconvergence DONE (anv, lvp, nvk, radv, vn)
VK_KHR_shader_subgroup_uniform_control_flow DONE (anv, hasvk, nvk, radv, tu, vn)
VK_KHR_shader_quad_control DONE (anv, nvk, radv, vn)
VK_KHR_shared_presentable_image not started
VK_KHR_surface DONE (anv, dzn, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_surface_protected_capabilities DONE (anv, lvp, nvk, radv, tu, v3dv, vn)
@ -650,7 +650,7 @@ Khronos extensions that are not part of any Vulkan version:
VK_EXT_shader_replicated_composites DONE (anv, dzn, hasvk, lvp, nvk, radv, tu)
VK_EXT_shader_stencil_export DONE (anv, lvp, radv, tu, vn)
VK_EXT_shader_subgroup_ballot DONE (anv, dzn, hasvk, lvp, nvk, radv, vn)
VK_EXT_shader_subgroup_vote DONE (anv, dzn, hasvk, lvp, nvk, radv)
VK_EXT_shader_subgroup_vote DONE (anv, dzn, hasvk, lvp, nvk, radv, vn)
VK_EXT_shader_module_identifier DONE (anv, hasvk, nvk, panvk, radv, tu, v3dv)
VK_EXT_surface_maintenance1 DONE (anv, lvp, nvk, radv, tu, v3dv, vn)
VK_EXT_swapchain_maintenance1 DONE (anv, lvp, nvk, radv, tu, v3dv, vn)

View file

@ -157,6 +157,9 @@ vn_physical_device_init_features(struct vn_physical_device *physical_dev)
VkPhysicalDeviceDepthClampZeroOneFeaturesKHR depth_clamp_zero_one;
VkPhysicalDeviceFragmentShadingRateFeaturesKHR fragment_shading_rate;
VkPhysicalDeviceShaderClockFeaturesKHR shader_clock;
VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR shader_maximal_reconvergence;
VkPhysicalDeviceShaderQuadControlFeaturesKHR shader_quad_control;
VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR shader_subgroup_uniform_control_flow;
VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR
workgroup_memory_explicit_layout;
@ -285,6 +288,9 @@ vn_physical_device_init_features(struct vn_physical_device *physical_dev)
VN_ADD_PNEXT_EXT(feats2, DEPTH_CLAMP_ZERO_ONE_FEATURES_KHR, local_feats.depth_clamp_zero_one, exts->KHR_depth_clamp_zero_one || exts->EXT_depth_clamp_zero_one);
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, 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);
VN_ADD_PNEXT_EXT(feats2, SHADER_QUAD_CONTROL_FEATURES_KHR, local_feats.shader_quad_control, exts->KHR_shader_quad_control);
VN_ADD_PNEXT_EXT(feats2, WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR, local_feats.workgroup_memory_explicit_layout, exts->KHR_workgroup_memory_explicit_layout);
/* EXT */
@ -1171,6 +1177,9 @@ vn_physical_device_get_passthrough_extensions(
.KHR_fragment_shading_rate = true,
.KHR_pipeline_library = true,
.KHR_shader_clock = true,
.KHR_shader_maximal_reconvergence = true,
.KHR_shader_quad_control = true,
.KHR_shader_subgroup_uniform_control_flow = true,
.KHR_workgroup_memory_explicit_layout = true,
/* EXT */
@ -1214,6 +1223,7 @@ vn_physical_device_get_passthrough_extensions(
.EXT_sample_locations = true,
.EXT_shader_stencil_export = true,
.EXT_shader_subgroup_ballot = true,
.EXT_shader_subgroup_vote = true,
.EXT_transform_feedback = true,
.EXT_vertex_attribute_divisor = true,
.EXT_vertex_input_dynamic_state = true,