[Mesa-dev] [PATCH] i965/miptree: Fix can_blit_slice()

Chris Wilson chris at chris-wilson.co.uk
Mon Jul 23 19:20:15 UTC 2018


Quoting Nanley Chery (2018-07-23 18:17:15)
> Satisfy the BLT engine's row pitch limitation on the destination
> miptree. The destination miptree is untiled, so its row_pitch will be
> slightly less than or equal to the source miptree's row_pitch. Use the
> source miptree's row_pitch in can_blit_slice instead of its blt_pitch.
> 
> Fixes 0288fe8d0417730bdd5b3477130dd1dc32bdbcd3
> ("i965/miptree: Use the correct BLT pitch")
> 
> Cc: <mesa-stable at lists.freedesktop.org>
> Reported-by: Dylan Baker <dylan at pnwbakers.com>
> ---
>  src/mesa/drivers/dri/i965/intel_mipmap_tree.c | 9 +++++++--
>  1 file changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
> index a18d5ac3624..d8e823e4826 100644
> --- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
> +++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c
> @@ -3544,8 +3544,13 @@ static bool
>  can_blit_slice(struct intel_mipmap_tree *mt,
>                 unsigned int level, unsigned int slice)
>  {
> -   /* See intel_miptree_blit() for details on the 32k pitch limit. */
> -   if (intel_miptree_blt_pitch(mt) >= 32768)
> +   /* The blit destination is untiled, so its row_pitch will be slightly less
> +    * than or equal to the source's row_pitch. The BLT engine only supports
> +    * linear row pitches up to but not including 32k.
> +    *
> +    * See intel_miptree_blit() for details on the 32k pitch limit.
> +    */
> +   if (mt->surf.row_pitch >= 32768)
>        return false;

I see the difference, but do we copy the whole slice or a region of it?
-Chris


More information about the mesa-dev mailing list