[Mesa-dev] [PATCH 1/2] radv: rely on ac_compute_cmask() for CMASK info

Bas Nieuwenhuizen bas at basnieuwenhuizen.nl
Mon Jun 17 09:14:54 UTC 2019


R-b for the series

On Thu, Jun 13, 2019, 5:14 PM Samuel Pitoiset <samuel.pitoiset at gmail.com>
wrote:

> Instead of re-computing in the driver. The 3d and cube flags
> are correctly set, so the same values should returned by
> ac_compute_surface().
>
> Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
> ---
>  src/amd/vulkan/radv_image.c | 45 +++----------------------------------
>  1 file changed, 3 insertions(+), 42 deletions(-)
>
> diff --git a/src/amd/vulkan/radv_image.c b/src/amd/vulkan/radv_image.c
> index d8dc2dfabde..909145e1e75 100644
> --- a/src/amd/vulkan/radv_image.c
> +++ b/src/amd/vulkan/radv_image.c
> @@ -885,10 +885,6 @@ radv_image_get_cmask_info(struct radv_device *device,
>                           struct radv_image *image,
>                           struct radv_cmask_info *out)
>  {
> -       unsigned pipe_interleave_bytes =
> device->physical_device->rad_info.pipe_interleave_bytes;
> -       unsigned num_pipes =
> device->physical_device->rad_info.num_tile_pipes;
> -       unsigned cl_width, cl_height;
> -
>         assert(image->plane_count == 1);
>
>         if (device->physical_device->rad_info.chip_class >= GFX9) {
> @@ -897,44 +893,9 @@ radv_image_get_cmask_info(struct radv_device *device,
>                 return;
>         }
>
> -       switch (num_pipes) {
> -       case 2:
> -               cl_width = 32;
> -               cl_height = 16;
> -               break;
> -       case 4:
> -               cl_width = 32;
> -               cl_height = 32;
> -               break;
> -       case 8:
> -               cl_width = 64;
> -               cl_height = 32;
> -               break;
> -       case 16: /* Hawaii */
> -               cl_width = 64;
> -               cl_height = 64;
> -               break;
> -       default:
> -               assert(0);
> -               return;
> -       }
> -
> -       unsigned base_align = num_pipes * pipe_interleave_bytes;
> -
> -       unsigned width =
> align(image->planes[0].surface.u.legacy.level[0].nblk_x, cl_width*8);
> -       unsigned height =
> align(image->planes[0].surface.u.legacy.level[0].nblk_y, cl_height*8);
> -       unsigned slice_elements = (width * height) / (8*8);
> -
> -       /* Each element of CMASK is a nibble. */
> -       unsigned slice_bytes = slice_elements / 2;
> -
> -       out->slice_tile_max = (width * height) / (128*128);
> -       if (out->slice_tile_max)
> -               out->slice_tile_max -= 1;
> -
> -       out->alignment = MAX2(256, base_align);
> -       out->size = (image->type == VK_IMAGE_TYPE_3D ? image->info.depth :
> image->info.array_size) *
> -                   align(slice_bytes, base_align);
> +       out->slice_tile_max =
> image->planes[0].surface.u.legacy.cmask_slice_tile_max;
> +       out->alignment = image->planes[0].surface.cmask_alignment;
> +       out->size = image->planes[0].surface.cmask_size;
>  }
>
>  static void
> --
> 2.22.0
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20190617/e8b3770f/attachment.html>


More information about the mesa-dev mailing list