Module: Mesa Branch: master Commit: 742832434abc8caff2425fcc174966b2834ac552 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=742832434abc8caff2425fcc174966b2834ac552
Author: Ilia Mirkin <imir...@alum.mit.edu> Date: Sun Sep 11 13:37:30 2016 -0400 st/mesa: fix is_scissor_enabled when X/Y are negative Similar to commit 49c24d8a24 ("i965: fix noop_scissor range issue on width/height") - take the X/Y into account to determine whether the scissor covers the whole area or not. Fixes the recently-added gl-1.0-scissor-depth-clear-negative-xy piglit test. Signed-off-by: Ilia Mirkin <imir...@alum.mit.edu> Reviewed-by: Michel Dänzer <michel.daen...@amd.com> Reviewed-by: Marek Olšák <marek.ol...@amd.com> Cc: <mesa-sta...@lists.freedesktop.org> --- src/mesa/state_tracker/st_cb_clear.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/mesa/state_tracker/st_cb_clear.c b/src/mesa/state_tracker/st_cb_clear.c index e70cba6..813ba9b 100644 --- a/src/mesa/state_tracker/st_cb_clear.c +++ b/src/mesa/state_tracker/st_cb_clear.c @@ -313,11 +313,13 @@ clear_with_quad(struct gl_context *ctx, unsigned clear_buffers) static inline GLboolean is_scissor_enabled(struct gl_context *ctx, struct gl_renderbuffer *rb) { + const struct gl_scissor_rect *scissor = &ctx->Scissor.ScissorArray[0]; + return (ctx->Scissor.EnableFlags & 1) && - (ctx->Scissor.ScissorArray[0].X > 0 || - ctx->Scissor.ScissorArray[0].Y > 0 || - (unsigned) ctx->Scissor.ScissorArray[0].Width < rb->Width || - (unsigned) ctx->Scissor.ScissorArray[0].Height < rb->Height); + (scissor->X > 0 || + scissor->Y > 0 || + scissor->X + scissor->Width < rb->Width || + scissor->Y + scissor->Height < rb->Height); } /** _______________________________________________ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit