[Mesa-stable] [PATCH] i965: Fix check for negative pitch in can_do_fast_copy_blit().
Jason Ekstrand
jason at jlekstrand.net
Fri Jan 27 21:52:46 UTC 2017
I think this is ok,
Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>
On Thu, Jan 26, 2017 at 1:27 AM, Kenneth Graunke <kenneth at whitecape.org>
wrote:
> At this point, the pitch is in bytes. We haven't yet divided the pitch
> by 4 for tiled surfaces, so abs(pitch) may be larger than 32K. This
> means the bit 15 trick won't work.
>
> The caller now has signed integers anyway, so just pass those through
> and do the obvious check.
>
> Cc: "17.0" <mesa-stable at lists.freedesktop.org>
> Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
> ---
> src/mesa/drivers/dri/i965/intel_blit.c | 10 ++++------
> 1 file changed, 4 insertions(+), 6 deletions(-)
>
> diff --git a/src/mesa/drivers/dri/i965/intel_blit.c
> b/src/mesa/drivers/dri/i965/intel_blit.c
> index 9863ca1f94a..4d4ab911cbc 100644
> --- a/src/mesa/drivers/dri/i965/intel_blit.c
> +++ b/src/mesa/drivers/dri/i965/intel_blit.c
> @@ -476,11 +476,11 @@ static bool
> can_fast_copy_blit(struct brw_context *brw,
> drm_intel_bo *src_buffer,
> int16_t src_x, int16_t src_y,
> - uintptr_t src_offset, uint32_t src_pitch,
> + uintptr_t src_offset, int32_t src_pitch,
> uint32_t src_tiling, uint32_t src_tr_mode,
> drm_intel_bo *dst_buffer,
> int16_t dst_x, int16_t dst_y,
> - uintptr_t dst_offset, uint32_t dst_pitch,
> + uintptr_t dst_offset, int32_t dst_pitch,
> uint32_t dst_tiling, uint32_t dst_tr_mode,
> int16_t w, int16_t h, uint32_t cpp,
> GLenum logic_op)
> @@ -516,10 +516,8 @@ can_fast_copy_blit(struct brw_context *brw,
> if (!_mesa_is_pow_two(cpp) || cpp > 16)
> return false;
>
> - /* For Fast Copy Blits the pitch cannot be a negative number. So, bit
> 15
> - * of the destination pitch must be zero.
> - */
> - if ((src_pitch >> 15 & 1) != 0 || (dst_pitch >> 15 & 1) != 0)
> + /* For Fast Copy Blits the pitch cannot be a negative number. */
> + if (src_pitch < 0 || dst_pitch < 0)
> return false;
>
> /* For Linear surfaces, the pitch has to be an OWord (16byte)
> multiple. */
> --
> 2.11.0
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-stable/attachments/20170127/f9681052/attachment.html>
More information about the mesa-stable
mailing list