Module: Mesa Branch: main Commit: bd667acb3546940480ad7b7869bed1ac21e1a36b URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=bd667acb3546940480ad7b7869bed1ac21e1a36b
Author: Faith Ekstrand <faith.ekstr...@collabora.com> Date: Mon Dec 4 09:57:32 2023 -0600 nvk: Advertise VK_EXT_subgroup_size_control Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9617 Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26503> --- docs/features.txt | 2 +- src/nouveau/vulkan/nvk_physical_device.c | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/docs/features.txt b/docs/features.txt index 0c16645c585..b47dec1fe5b 100644 --- a/docs/features.txt +++ b/docs/features.txt @@ -493,7 +493,7 @@ Vulkan 1.3 -- all DONE: anv, radv, tu, lvp, vn VK_EXT_private_data DONE (anv, hasvk, lvp, nvk, pvr, radv, tu, v3dv, vn) VK_EXT_image_robustness DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn) VK_EXT_shader_demote_to_helper_invocation DONE (anv, hasvk, lvp, nvk, radv, tu, vn) - VK_EXT_subgroup_size_control DONE (anv, hasvk, lvp, radv, tu, vn) + VK_EXT_subgroup_size_control DONE (anv, hasvk, lvp, nvk, radv, tu, vn) VK_EXT_texel_buffer_alignment DONE (anv, hasvk, lvp, pvr, radv, tu, v3dv, vn) VK_EXT_texture_compression_astc_hdr DONE (vn) VK_EXT_tooling_info DONE (anv, hasvk, nvk, pvr, radv, tu, v3dv, vn) diff --git a/src/nouveau/vulkan/nvk_physical_device.c b/src/nouveau/vulkan/nvk_physical_device.c index 0fc3ccc213f..10f67cbf671 100644 --- a/src/nouveau/vulkan/nvk_physical_device.c +++ b/src/nouveau/vulkan/nvk_physical_device.c @@ -167,6 +167,7 @@ nvk_get_device_extensions(const struct nv_device_info *info, .EXT_separate_stencil_usage = true, .EXT_shader_demote_to_helper_invocation = true, .EXT_shader_viewport_index_layer = info->cls_eng3d >= MAXWELL_B, + .EXT_subgroup_size_control = true, .EXT_tooling_info = true, .EXT_transform_feedback = true, .EXT_vertex_attribute_divisor = true, @@ -292,6 +293,8 @@ nvk_get_device_features(const struct nv_device_info *info, .privateData = true, .shaderDemoteToHelperInvocation = true, .shaderTerminateInvocation = true, + .subgroupSizeControl = true, + .computeFullSubgroups = true, .synchronization2 = true, .dynamicRendering = true, .maintenance4 = true, @@ -653,6 +656,10 @@ nvk_get_device_properties(const struct nvk_instance *instance, .maxTimelineSemaphoreValueDifference = UINT64_MAX, /* Vulkan 1.3 properties */ + .minSubgroupSize = 32, + .maxSubgroupSize = 32, + .maxComputeWorkgroupSubgroups = 1024 / 32, + .requiredSubgroupSizeStages = 0, .maxInlineUniformBlockSize = 1 << 16, .maxPerStageDescriptorInlineUniformBlocks = 32, .maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = 32,