Mesa (master): swr: [rasterizer core] viewport rounding for disabled scissor
Tim Rowley
torowley at kemper.freedesktop.org
Wed Jul 20 15:22:23 UTC 2016
Module: Mesa
Branch: master
Commit: 98641f4e73030694bb79f41d40d7e1515b396f77
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=98641f4e73030694bb79f41d40d7e1515b396f77
Author: Tim Rowley <timothy.o.rowley at intel.com>
Date: Thu Jul 7 17:32:39 2016 -0600
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 <timothy.o.rowley at intel.com>
---
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<uint32_t>(right, KNOB_MAX_SCISSOR_X);
More information about the mesa-commit
mailing list