From d2de2bb9c5381dbee6a8942d523f3a08d4044cdd Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Mon, 27 Feb 2023 13:41:17 -0500 Subject: [PATCH] util/box: fix off-by-one calc error in intersection funcs the "right-most" boundary needs the -1 since it isn't inclusive oops Part-of: --- src/gallium/auxiliary/util/u_box.h | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/gallium/auxiliary/util/u_box.h b/src/gallium/auxiliary/util/u_box.h index cb547dc..328bc75 100644 --- a/src/gallium/auxiliary/util/u_box.h +++ b/src/gallium/auxiliary/util/u_box.h @@ -201,10 +201,10 @@ u_box_test_intersection_1d(const struct pipe_box *a, int ax[2], bx[2]; ax[0] = MIN2(a->x, a->x + a->width); - ax[1] = MAX2(a->x, a->x + a->width); + ax[1] = MAX2(a->x, a->x + a->width - 1); bx[0] = MIN2(b->x, b->x + b->width); - bx[1] = MAX2(b->x, b->x + b->width); + bx[1] = MAX2(b->x, b->x + b->width - 1); return ax[1] >= bx[0] && bx[1] >= ax[0]; } @@ -240,18 +240,18 @@ u_box_test_intersection_3d(const struct pipe_box *a, int ax[2], ay[2], ad[2], bx[2], by[2], bd[2]; ax[0] = MIN2(a->x, a->x + a->width); - ax[1] = MAX2(a->x, a->x + a->width); + ax[1] = MAX2(a->x, a->x + a->width - 1); ay[0] = MIN2(a->y, a->y + a->height); - ay[1] = MAX2(a->y, a->y + a->height); + ay[1] = MAX2(a->y, a->y + a->height - 1); ad[0] = MIN2(a->z, a->z + a->depth); - ad[1] = MAX2(a->z, a->z + a->depth); + ad[1] = MAX2(a->z, a->z + a->depth - 1); bx[0] = MIN2(b->x, b->x + b->width); - bx[1] = MAX2(b->x, b->x + b->width); + bx[1] = MAX2(b->x, b->x + b->width - 1); by[0] = MIN2(b->y, b->y + b->height); - by[1] = MAX2(b->y, b->y + b->height); + by[1] = MAX2(b->y, b->y + b->height - 1); bd[0] = MIN2(b->z, b->z + b->depth); - bd[1] = MAX2(b->z, b->z + b->depth); + bd[1] = MAX2(b->z, b->z + b->depth - 1); return ax[1] >= bx[0] && bx[1] >= ax[0] && ay[1] >= by[0] && by[1] >= ay[0] && -- 2.7.4