anv: meta_blit2d: adapt texel fetch pitch for fake w-tiled
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@intel.com> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:

committed by
Jason Ekstrand

parent
87a88f2daa
commit
91987c51e3
@@ -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 */
|
||||
|
Reference in New Issue
Block a user