From: Eric Anholt Date: Fri, 14 Oct 2016 22:15:13 +0000 (-0700) Subject: state_tracker: Fix check for scissor enabled when < 0. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=46cd3bab933196f46521c9462552ed19d16817e6;p=mesa.git state_tracker: Fix check for scissor enabled when < 0. DEQP's clear tests like to give us x + w < 0 or y + h < 0. Since we were comparing to an unsigned, it would get promoted to unsigned and come out as bignum >= width or height and we would clear the whole fb instead of none of the fb. Fixes 10 tests under deqp-gles2/functional/color_clear. Reviewed-by: Kenneth Graunke Acked-by: Edward O'Callaghan Reviewed-by: Marek Olšák --- diff --git a/src/mesa/state_tracker/st_cb_clear.c b/src/mesa/state_tracker/st_cb_clear.c index 813ba9b10ff..158efc186c0 100644 --- a/src/mesa/state_tracker/st_cb_clear.c +++ b/src/mesa/state_tracker/st_cb_clear.c @@ -318,8 +318,8 @@ is_scissor_enabled(struct gl_context *ctx, struct gl_renderbuffer *rb) return (ctx->Scissor.EnableFlags & 1) && (scissor->X > 0 || scissor->Y > 0 || - scissor->X + scissor->Width < rb->Width || - scissor->Y + scissor->Height < rb->Height); + scissor->X + scissor->Width < (int)rb->Width || + scissor->Y + scissor->Height < (int)rb->Height); } /**