From 98641f4e73030694bb79f41d40d7e1515b396f77 Mon Sep 17 00:00:00 2001 From: Tim Rowley Date: Thu, 7 Jul 2016 17:32:39 -0600 Subject: [PATCH] swr: [rasterizer core] viewport rounding for disabled scissor Adjust viewport rounding when scissor rect is disabled during macro tile scissor setup. Signed-off-by: Tim Rowley --- src/gallium/drivers/swr/rasterizer/core/api.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/swr/rasterizer/core/api.cpp b/src/gallium/drivers/swr/rasterizer/core/api.cpp index 6460a16..aface7a 100644 --- a/src/gallium/drivers/swr/rasterizer/core/api.cpp +++ b/src/gallium/drivers/swr/rasterizer/core/api.cpp @@ -732,10 +732,12 @@ void SetupMacroTileScissors(DRAW_CONTEXT *pDC) } else { + // the vp width and height must be added to origin un-rounded then the result round to -inf. + // The cast to int works for rounding assuming all [left, right, top, bottom] are positive. left = (int32_t)pState->vp[0].x; - right = (int32_t)pState->vp[0].x + (int32_t)pState->vp[0].width; + right = (int32_t)(pState->vp[0].x + pState->vp[0].width); top = (int32_t)pState->vp[0].y; - bottom = (int32_t)pState->vp[0].y + (int32_t)pState->vp[0].height; + bottom = (int32_t)(pState->vp[0].y + pState->vp[0].height); } right = std::min(right, KNOB_MAX_SCISSOR_X); -- 2.7.4