[Mesa-dev] [PATCH] anv: meta_blit2d: adapt texel fetch pitch for fake w-tiled

Jason Ekstrand jason at jlekstrand.net
Wed Aug 24 18:29:52 UTC 2016


Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>

And pushed

On Wed, Aug 24, 2016 at 9:52 AM, Lionel Landwerlin <llandwerlin at gmail.com>
wrote:

> We need to compute detiling coordinates using the physical size of W tiling
> (128x32) rather than the logical size (64x64).
>
> v2: Correct comment (Jason)
>
> Fixes dEQP-VK.api.copy_and_blit.image_to_image_stencil
>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=97448
> Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
> Cc: Jason Ekstrand <jason at jlekstrand.net>
> ---
>  src/intel/vulkan/anv_meta_blit2d.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/src/intel/vulkan/anv_meta_blit2d.c
> b/src/intel/vulkan/anv_meta_blit2d.c
> index 7085f2d..6b2222c 100644
> --- a/src/intel/vulkan/anv_meta_blit2d.c
> +++ b/src/intel/vulkan/anv_meta_blit2d.c
> @@ -914,9 +914,11 @@ build_nir_w_tiled_fetch(struct nir_builder *b, struct
> anv_device *device,
>     /* First, compute the block-aligned offset */
>     nir_ssa_def *x_major = nir_ushr(b, x, nir_imm_int(b, 6));
>     nir_ssa_def *y_major = nir_ushr(b, y, nir_imm_int(b, 6));
> +   /* W tiles have physical size of 128x32 and logical size of 64x64,
> hence
> +    * the multiplication by 32 (instead of 64). */
>     nir_ssa_def *offset =
>        nir_iadd(b, nir_imul(b, y_major,
> -                              nir_imul(b, tex_pitch, nir_imm_int(b, 64))),
> +                              nir_imul(b, tex_pitch, nir_imm_int(b, 32))),
>                    nir_imul(b, x_major, nir_imm_int(b, 4096)));
>
>     /* Compute the bottom 12 bits of the offset */
> --
> 2.9.3
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20160824/32840972/attachment.html>


More information about the mesa-dev mailing list