Module: Mesa Branch: main Commit: f37bb34d8667e4fa5b9406d2d60dc708d816deaf URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=f37bb34d8667e4fa5b9406d2d60dc708d816deaf
Author: Iago Toral Quiroga <ito...@igalia.com> Date: Wed Jan 10 11:31:45 2024 +0100 v3dv: expose VK_EXT_subgroup_size_control This is trivial for us since we don't support variable subgroup sizes. Reviewed-by: Alejandro PiƱeiro <apinhe...@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26968> --- docs/features.txt | 2 +- src/broadcom/vulkan/v3dv_device.c | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/docs/features.txt b/docs/features.txt index cde9da5f52b..953696a58fc 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, v3dv, vn) - VK_EXT_subgroup_size_control DONE (anv, hasvk, lvp, nvk, radv, tu, vn) + VK_EXT_subgroup_size_control DONE (anv, hasvk, lvp, nvk, radv, tu, v3dv, vn) VK_EXT_texel_buffer_alignment DONE (anv, hasvk, lvp, nvk, 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/broadcom/vulkan/v3dv_device.c b/src/broadcom/vulkan/v3dv_device.c index 4497942ac4c..3f8b1970f44 100644 --- a/src/broadcom/vulkan/v3dv_device.c +++ b/src/broadcom/vulkan/v3dv_device.c @@ -207,6 +207,7 @@ get_device_extensions(const struct v3dv_physical_device *device, .EXT_separate_stencil_usage = true, .EXT_shader_demote_to_helper_invocation = true, .EXT_shader_module_identifier = true, + .EXT_subgroup_size_control = true, .EXT_texel_buffer_alignment = true, .EXT_tooling_info = true, .EXT_vertex_attribute_divisor = true, @@ -448,6 +449,10 @@ get_features(const struct v3dv_physical_device *physical_device, /* VK_EXT_shader_demote_to_helper_invocation */ .shaderDemoteToHelperInvocation = true, + + /* VK_EXT_subgroup_size_control */ + .subgroupSizeControl = true, + .computeFullSubgroups = true, }; } @@ -1301,6 +1306,11 @@ v3dv_GetPhysicalDeviceProperties2(VkPhysicalDevice physicalDevice, .integerDotProductAccumulatingSaturating64BitUnsignedAccelerated = false, .integerDotProductAccumulatingSaturating64BitSignedAccelerated = false, .integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated = false, + /* VK_EXT_subgroup_size_control */ + .minSubgroupSize = V3D_CHANNELS, + .maxSubgroupSize = V3D_CHANNELS, + .maxComputeWorkgroupSubgroups = 16, /* 256 / 16 */ + .requiredSubgroupSizeStages = VK_SHADER_STAGE_COMPUTE_BIT, }; VkPhysicalDeviceVulkan12Properties vk12 = {