From: Tim Rowley Date: Thu, 7 Jul 2016 23:32:39 +0000 (-0600) Subject: swr: [rasterizer core] viewport rounding for disabled scissor X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=98641f4e73030694bb79f41d40d7e1515b396f77;p=mesa.git 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 --- diff --git a/src/gallium/drivers/swr/rasterizer/core/api.cpp b/src/gallium/drivers/swr/rasterizer/core/api.cpp index 6460a16ec3f..aface7a77ef 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);