[Mesa-dev] [PATCH v3 7/7] radv: enable subgroup capabilities

Bas Nieuwenhuizen bas at basnieuwenhuizen.nl
Thu Apr 12 22:35:16 UTC 2018


Okay, this series is

Reviewed-by: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>

Please split out the patch Jason commented on and give me a link to a
branch and I'll merge.

On Tue, Apr 10, 2018 at 4:37 PM, Daniel Schürmann
<daniel.schuermann at campus.tu-berlin.de> wrote:
> ---
>  src/amd/vulkan/radv_device.c | 10 ++++++++--
>  src/amd/vulkan/radv_shader.c |  7 ++++++-
>  2 files changed, 14 insertions(+), 3 deletions(-)
>
> diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c
> index 4fc7392e65..e50b661cac 100644
> --- a/src/amd/vulkan/radv_device.c
> +++ b/src/amd/vulkan/radv_device.c
> @@ -939,8 +939,14 @@ void radv_GetPhysicalDeviceProperties2(
>                             (VkPhysicalDeviceSubgroupProperties*)ext;
>                         properties->subgroupSize = 64;
>                         properties->supportedStages = VK_SHADER_STAGE_ALL;
> -                       properties->supportedOperations = VK_SUBGROUP_FEATURE_BASIC_BIT;
> -                       properties->quadOperationsInAllStages = false;
> +                       properties->supportedOperations =
> +                                                       VK_SUBGROUP_FEATURE_BASIC_BIT |
> +                                                       VK_SUBGROUP_FEATURE_BALLOT_BIT |
> +                                                       VK_SUBGROUP_FEATURE_QUAD_BIT |
> +                                                       VK_SUBGROUP_FEATURE_SHUFFLE_BIT |
> +                                                       VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT |
> +                                                       VK_SUBGROUP_FEATURE_VOTE_BIT;
> +                       properties->quadOperationsInAllStages = true;
>                         break;
>                 }
>                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES: {
> diff --git a/src/amd/vulkan/radv_shader.c b/src/amd/vulkan/radv_shader.c
> index eaf24dcdee..9d49bc02a8 100644
> --- a/src/amd/vulkan/radv_shader.c
> +++ b/src/amd/vulkan/radv_shader.c
> @@ -213,7 +213,11 @@ radv_shader_compile_to_nir(struct radv_device *device,
>                                 .tessellation = true,
>                                 .int64 = true,
>                                 .multiview = true,
> +                               .subgroup_ballot = true,
>                                 .subgroup_basic = true,
> +                               .subgroup_quad = true,
> +                               .subgroup_shuffle = true,
> +                               .subgroup_vote = true,
>                                 .variable_pointers = true,
>                                 .gcn_shader = true,
>                                 .trinary_minmax = true,
> @@ -283,7 +287,8 @@ radv_shader_compile_to_nir(struct radv_device *device,
>                         .lower_to_scalar = 1,
>                         .lower_subgroup_masks = 1,
>                         .lower_shuffle = 1,
> -                       .lower_quad =  1,
> +                       .lower_shuffle_to_32bit = 1,
> +                       .lower_vote_eq_to_ballot = 1,
>                 });
>
>         radv_optimize_nir(nir);
> --
> 2.14.1
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list