diff --git a/docs/features.txt b/docs/features.txt index a6dc10c28d5..3775f615bc8 100644 --- a/docs/features.txt +++ b/docs/features.txt @@ -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) diff --git a/src/virtio/vulkan/vn_physical_device.c b/src/virtio/vulkan/vn_physical_device.c index 328232e1188..ad0d3c52766 100644 --- a/src/virtio/vulkan/vn_physical_device.c +++ b/src/virtio/vulkan/vn_physical_device.c @@ -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,