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 <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26968>
This commit is contained in:
Iago Toral Quiroga
2024-01-10 11:31:45 +01:00
committed by Marge Bot
parent 0b0c0511b8
commit f37bb34d86
2 changed files with 11 additions and 1 deletions

View File

@@ -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_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_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_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_texel_buffer_alignment DONE (anv, hasvk, lvp, nvk, pvr, radv, tu, v3dv, vn)
VK_EXT_texture_compression_astc_hdr DONE (vn) VK_EXT_texture_compression_astc_hdr DONE (vn)
VK_EXT_tooling_info DONE (anv, hasvk, nvk, pvr, radv, tu, v3dv, vn) VK_EXT_tooling_info DONE (anv, hasvk, nvk, pvr, radv, tu, v3dv, vn)

View File

@@ -207,6 +207,7 @@ get_device_extensions(const struct v3dv_physical_device *device,
.EXT_separate_stencil_usage = true, .EXT_separate_stencil_usage = true,
.EXT_shader_demote_to_helper_invocation = true, .EXT_shader_demote_to_helper_invocation = true,
.EXT_shader_module_identifier = true, .EXT_shader_module_identifier = true,
.EXT_subgroup_size_control = true,
.EXT_texel_buffer_alignment = true, .EXT_texel_buffer_alignment = true,
.EXT_tooling_info = true, .EXT_tooling_info = true,
.EXT_vertex_attribute_divisor = 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 */ /* VK_EXT_shader_demote_to_helper_invocation */
.shaderDemoteToHelperInvocation = true, .shaderDemoteToHelperInvocation = true,
/* VK_EXT_subgroup_size_control */
.subgroupSizeControl = true,
.computeFullSubgroups = true,
}; };
} }
@@ -1301,6 +1306,11 @@ v3dv_GetPhysicalDeviceProperties2(VkPhysicalDevice physicalDevice,
.integerDotProductAccumulatingSaturating64BitUnsignedAccelerated = false, .integerDotProductAccumulatingSaturating64BitUnsignedAccelerated = false,
.integerDotProductAccumulatingSaturating64BitSignedAccelerated = false, .integerDotProductAccumulatingSaturating64BitSignedAccelerated = false,
.integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated = 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 = { VkPhysicalDeviceVulkan12Properties vk12 = {