nvk: Advertise VK_KHR_shader_subgroup_rotate.

Signed-off-by: Robin Kertels <robin.kertels@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27863>
This commit is contained in:
Robin Kertels 2024-02-28 23:19:23 +01:00 committed by Marge Bot
parent 714acf7d21
commit d097a60d57
4 changed files with 10 additions and 2 deletions

View File

@ -538,7 +538,7 @@ Khronos extensions that are not part of any Vulkan version:
VK_KHR_shader_clock DONE (anv, hasvk, lvp, nvk, radv, vn)
VK_KHR_shader_expect_assume DONE (anv, dzn, hasvk, lvp, nvk, panvk, pvr, radv, tu, v3dv, vn)
VK_KHR_shader_maximal_reconvergence DONE (anv, lvp, nvk, radv)
VK_KHR_shader_subgroup_rotate DONE (anv, radv)
VK_KHR_shader_subgroup_rotate DONE (anv, nvk, radv)
VK_KHR_shader_subgroup_uniform_control_flow DONE (anv, hasvk, nvk, radv)
VK_KHR_shader_quad_control DONE (radv)
VK_KHR_shared_presentable_image not started

View File

@ -1,5 +1,5 @@
VK_EXT_map_memory_placed on RADV, ANV and NVK
VK_KHR_shader_subgroup_rotate on RADV and ANV
VK_KHR_shader_subgroup_rotate on RADV and ANV and NVK
VK_KHR_load_store_op_none on RADV, ANV, NVK and Turnip
VK_KHR_line_rasterization on RADV, ANV, NVK and Turnip
VK_KHR_index_type_uint8 on RADV, ANV, NVK and Turnip

View File

@ -150,6 +150,7 @@ nvk_get_device_extensions(const struct nvk_instance *instance,
.KHR_shader_maximal_reconvergence = true,
.KHR_shader_non_semantic_info = true,
.KHR_shader_subgroup_extended_types = true,
.KHR_shader_subgroup_rotate = nvk_use_nak(info),
.KHR_shader_subgroup_uniform_control_flow = nvk_use_nak(info),
.KHR_shader_terminate_invocation =
(nvk_nak_stages(info) & VK_SHADER_STAGE_FRAGMENT_BIT) != 0,
@ -426,6 +427,10 @@ nvk_get_device_features(const struct nv_device_info *info,
/* VK_KHR_shader_maximal_reconvergence */
.shaderMaximalReconvergence = true,
/* VK_KHR_shader_subgroup_rotate */
.shaderSubgroupRotate = nvk_use_nak(info),
.shaderSubgroupRotateClustered = nvk_use_nak(info),
/* VK_KHR_vertex_attribute_divisor */
.vertexAttributeInstanceRateDivisor = true,
.vertexAttributeInstanceRateZeroDivisor = true,
@ -761,6 +766,8 @@ nvk_get_device_properties(const struct nvk_instance *instance,
VK_SUBGROUP_FEATURE_BASIC_BIT |
VK_SUBGROUP_FEATURE_CLUSTERED_BIT |
VK_SUBGROUP_FEATURE_QUAD_BIT |
VK_SUBGROUP_FEATURE_ROTATE_BIT_KHR |
VK_SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT_KHR |
VK_SUBGROUP_FEATURE_SHUFFLE_BIT |
VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT |
VK_SUBGROUP_FEATURE_VOTE_BIT,

View File

@ -156,6 +156,7 @@ nvk_get_spirv_options(struct vk_physical_device *vk_pdev,
.subgroup_ballot = true,
.subgroup_basic = true,
.subgroup_quad = true,
.subgroup_rotate = true,
.subgroup_shuffle = true,
.subgroup_uniform_control_flow = true,
.subgroup_vote = true,