nak,nvk: Implement VK_KHR_shader_quad_control

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10687
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31470>
This commit is contained in:
Faith Ekstrand 2024-09-30 17:27:54 -05:00 committed by Marge Bot
parent 62a4fe861a
commit 7dc6826bc3
4 changed files with 7 additions and 1 deletions

View file

@ -550,7 +550,7 @@ Khronos extensions that are not part of any Vulkan version:
VK_KHR_shader_maximal_reconvergence DONE (anv, lvp, nvk, radv)
VK_KHR_shader_subgroup_rotate DONE (anv, nvk, radv, tu)
VK_KHR_shader_subgroup_uniform_control_flow DONE (anv, hasvk, nvk, radv, tu)
VK_KHR_shader_quad_control DONE (anv, radv)
VK_KHR_shader_quad_control DONE (anv, nvk, radv)
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)

View file

@ -20,3 +20,4 @@ VK_KHR_shader_float_controls2 on nvk
VK_EXT_device_generated_commands on nvk
VK_EXT_host_image_copy on nvk/Turing+
VK_EXT_depth_clamp_control on anv, hasvk, nvk, radv
VK_KHR_shader_quad_control on nvk

View file

@ -890,6 +890,7 @@ nak_postprocess_nir(nir_shader *nir,
.lower_first_invocation_to_ballot = true,
.lower_read_first_invocation = true,
.lower_elect = true,
.lower_quad_vote = true,
.lower_inverse_ballot = true,
.lower_rotate_to_shuffle = true
};

View file

@ -157,6 +157,7 @@ nvk_get_device_extensions(const struct nvk_instance *instance,
.KHR_shader_integer_dot_product = true,
.KHR_shader_maximal_reconvergence = true,
.KHR_shader_non_semantic_info = true,
.KHR_shader_quad_control = true,
.KHR_shader_relaxed_extended_instruction = true,
.KHR_shader_subgroup_extended_types = true,
.KHR_shader_subgroup_rotate = nvk_use_nak(info),
@ -449,6 +450,9 @@ nvk_get_device_features(const struct nv_device_info *info,
/* VK_KHR_present_wait */
.presentWait = supported_extensions->KHR_present_wait,
/* VK_KHR_shader_quad_control */
.shaderQuadControl = nvk_use_nak(info),
/* VK_KHR_shader_clock */
.shaderSubgroupClock = true,
.shaderDeviceClock = true,