Mesa (master): swr/rast: Corrections to multi-scissor handling

Tim Rowley torowley at kemper.freedesktop.org
Fri Dec 15 17:15:35 UTC 2017


Module: Mesa
Branch: master
Commit: 6d5275498a9a8e571048ca3dd6c99f693b49a7ed
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=6d5275498a9a8e571048ca3dd6c99f693b49a7ed

Author: Tim Rowley <timothy.o.rowley at intel.com>
Date:   Wed Nov 29 15:14:20 2017 -0600

swr/rast: Corrections to multi-scissor handling

binner's GatherScissors() will be turned into a real gather in the not
too distant future.

Reviewed-by: Bruce Cherniak <bruce.cherniak at intel.com>

---

 src/gallium/drivers/swr/rasterizer/core/binner.cpp | 176 ++++++++++-----------
 1 file changed, 88 insertions(+), 88 deletions(-)

diff --git a/src/gallium/drivers/swr/rasterizer/core/binner.cpp b/src/gallium/drivers/swr/rasterizer/core/binner.cpp
index 52375f8956..8a5356b168 100644
--- a/src/gallium/drivers/swr/rasterizer/core/binner.cpp
+++ b/src/gallium/drivers/swr/rasterizer/core/binner.cpp
@@ -226,117 +226,117 @@ static void GatherScissors(const SWR_RECT *pScissorsInFixedPoint, const uint32_t
     simdscalari &scisXmin, simdscalari &scisYmin, simdscalari &scisXmax, simdscalari &scisYmax)
 {
     scisXmin = _simd_set_epi32(
-        pScissorsInFixedPoint[pViewportIndex[0]].xmin,
-        pScissorsInFixedPoint[pViewportIndex[1]].xmin,
-        pScissorsInFixedPoint[pViewportIndex[2]].xmin,
-        pScissorsInFixedPoint[pViewportIndex[3]].xmin,
-        pScissorsInFixedPoint[pViewportIndex[4]].xmin,
-        pScissorsInFixedPoint[pViewportIndex[5]].xmin,
+        pScissorsInFixedPoint[pViewportIndex[7]].xmin,
         pScissorsInFixedPoint[pViewportIndex[6]].xmin,
-        pScissorsInFixedPoint[pViewportIndex[7]].xmin);
+        pScissorsInFixedPoint[pViewportIndex[5]].xmin,
+        pScissorsInFixedPoint[pViewportIndex[4]].xmin,
+        pScissorsInFixedPoint[pViewportIndex[3]].xmin,
+        pScissorsInFixedPoint[pViewportIndex[2]].xmin,
+        pScissorsInFixedPoint[pViewportIndex[1]].xmin,
+        pScissorsInFixedPoint[pViewportIndex[0]].xmin);
     scisYmin = _simd_set_epi32(
-        pScissorsInFixedPoint[pViewportIndex[0]].ymin,
-        pScissorsInFixedPoint[pViewportIndex[1]].ymin,
-        pScissorsInFixedPoint[pViewportIndex[2]].ymin,
-        pScissorsInFixedPoint[pViewportIndex[3]].ymin,
-        pScissorsInFixedPoint[pViewportIndex[4]].ymin,
-        pScissorsInFixedPoint[pViewportIndex[5]].ymin,
+        pScissorsInFixedPoint[pViewportIndex[7]].ymin,
         pScissorsInFixedPoint[pViewportIndex[6]].ymin,
-        pScissorsInFixedPoint[pViewportIndex[7]].ymin);
+        pScissorsInFixedPoint[pViewportIndex[5]].ymin,
+        pScissorsInFixedPoint[pViewportIndex[4]].ymin,
+        pScissorsInFixedPoint[pViewportIndex[3]].ymin,
+        pScissorsInFixedPoint[pViewportIndex[2]].ymin,
+        pScissorsInFixedPoint[pViewportIndex[1]].ymin,
+        pScissorsInFixedPoint[pViewportIndex[0]].ymin);
     scisXmax = _simd_set_epi32(
-        pScissorsInFixedPoint[pViewportIndex[0]].xmax,
-        pScissorsInFixedPoint[pViewportIndex[1]].xmax,
-        pScissorsInFixedPoint[pViewportIndex[2]].xmax,
-        pScissorsInFixedPoint[pViewportIndex[3]].xmax,
-        pScissorsInFixedPoint[pViewportIndex[4]].xmax,
-        pScissorsInFixedPoint[pViewportIndex[5]].xmax,
+        pScissorsInFixedPoint[pViewportIndex[7]].xmax,
         pScissorsInFixedPoint[pViewportIndex[6]].xmax,
-        pScissorsInFixedPoint[pViewportIndex[7]].xmax);
+        pScissorsInFixedPoint[pViewportIndex[5]].xmax,
+        pScissorsInFixedPoint[pViewportIndex[4]].xmax,
+        pScissorsInFixedPoint[pViewportIndex[3]].xmax,
+        pScissorsInFixedPoint[pViewportIndex[2]].xmax,
+        pScissorsInFixedPoint[pViewportIndex[1]].xmax,
+        pScissorsInFixedPoint[pViewportIndex[0]].xmax);
     scisYmax = _simd_set_epi32(
-        pScissorsInFixedPoint[pViewportIndex[0]].ymax,
-        pScissorsInFixedPoint[pViewportIndex[1]].ymax,
-        pScissorsInFixedPoint[pViewportIndex[2]].ymax,
-        pScissorsInFixedPoint[pViewportIndex[3]].ymax,
-        pScissorsInFixedPoint[pViewportIndex[4]].ymax,
-        pScissorsInFixedPoint[pViewportIndex[5]].ymax,
+        pScissorsInFixedPoint[pViewportIndex[7]].ymax,
         pScissorsInFixedPoint[pViewportIndex[6]].ymax,
-        pScissorsInFixedPoint[pViewportIndex[7]].ymax);
+        pScissorsInFixedPoint[pViewportIndex[5]].ymax,
+        pScissorsInFixedPoint[pViewportIndex[4]].ymax,
+        pScissorsInFixedPoint[pViewportIndex[3]].ymax,
+        pScissorsInFixedPoint[pViewportIndex[2]].ymax,
+        pScissorsInFixedPoint[pViewportIndex[01]].ymax,
+        pScissorsInFixedPoint[pViewportIndex[00]].ymax);
 }
 
 static void GatherScissors(const SWR_RECT *pScissorsInFixedPoint, const uint32_t *pViewportIndex,
     simd16scalari &scisXmin, simd16scalari &scisYmin, simd16scalari &scisXmax, simd16scalari &scisYmax)
 {
     scisXmin = _simd16_set_epi32(
-        pScissorsInFixedPoint[pViewportIndex[0]].xmin,
-        pScissorsInFixedPoint[pViewportIndex[1]].xmin,
-        pScissorsInFixedPoint[pViewportIndex[2]].xmin,
-        pScissorsInFixedPoint[pViewportIndex[3]].xmin,
-        pScissorsInFixedPoint[pViewportIndex[4]].xmin,
-        pScissorsInFixedPoint[pViewportIndex[5]].xmin,
-        pScissorsInFixedPoint[pViewportIndex[6]].xmin,
-        pScissorsInFixedPoint[pViewportIndex[7]].xmin,
-        pScissorsInFixedPoint[pViewportIndex[8]].xmin,
-        pScissorsInFixedPoint[pViewportIndex[9]].xmin,
-        pScissorsInFixedPoint[pViewportIndex[10]].xmin,
-        pScissorsInFixedPoint[pViewportIndex[11]].xmin,
-        pScissorsInFixedPoint[pViewportIndex[12]].xmin,
-        pScissorsInFixedPoint[pViewportIndex[13]].xmin,
+        pScissorsInFixedPoint[pViewportIndex[15]].xmin,
         pScissorsInFixedPoint[pViewportIndex[14]].xmin,
-        pScissorsInFixedPoint[pViewportIndex[15]].xmin);
+        pScissorsInFixedPoint[pViewportIndex[13]].xmin,
+        pScissorsInFixedPoint[pViewportIndex[12]].xmin,
+        pScissorsInFixedPoint[pViewportIndex[11]].xmin,
+        pScissorsInFixedPoint[pViewportIndex[10]].xmin,
+        pScissorsInFixedPoint[pViewportIndex[ 9]].xmin,
+        pScissorsInFixedPoint[pViewportIndex[ 8]].xmin,
+        pScissorsInFixedPoint[pViewportIndex[ 7]].xmin,
+        pScissorsInFixedPoint[pViewportIndex[ 6]].xmin,
+        pScissorsInFixedPoint[pViewportIndex[ 5]].xmin,
+        pScissorsInFixedPoint[pViewportIndex[ 4]].xmin,
+        pScissorsInFixedPoint[pViewportIndex[ 3]].xmin,
+        pScissorsInFixedPoint[pViewportIndex[ 2]].xmin,
+        pScissorsInFixedPoint[pViewportIndex[ 1]].xmin,
+        pScissorsInFixedPoint[pViewportIndex[ 0]].xmin);
 
     scisYmin = _simd16_set_epi32(
-        pScissorsInFixedPoint[pViewportIndex[0]].ymin,
-        pScissorsInFixedPoint[pViewportIndex[1]].ymin,
-        pScissorsInFixedPoint[pViewportIndex[2]].ymin,
-        pScissorsInFixedPoint[pViewportIndex[3]].ymin,
-        pScissorsInFixedPoint[pViewportIndex[4]].ymin,
-        pScissorsInFixedPoint[pViewportIndex[5]].ymin,
-        pScissorsInFixedPoint[pViewportIndex[6]].ymin,
-        pScissorsInFixedPoint[pViewportIndex[7]].ymin,
-        pScissorsInFixedPoint[pViewportIndex[8]].ymin,
-        pScissorsInFixedPoint[pViewportIndex[9]].ymin,
-        pScissorsInFixedPoint[pViewportIndex[10]].ymin,
-        pScissorsInFixedPoint[pViewportIndex[11]].ymin,
-        pScissorsInFixedPoint[pViewportIndex[12]].ymin,
-        pScissorsInFixedPoint[pViewportIndex[13]].ymin,
+        pScissorsInFixedPoint[pViewportIndex[15]].ymin,
         pScissorsInFixedPoint[pViewportIndex[14]].ymin,
-        pScissorsInFixedPoint[pViewportIndex[15]].ymin);
+        pScissorsInFixedPoint[pViewportIndex[13]].ymin,
+        pScissorsInFixedPoint[pViewportIndex[12]].ymin,
+        pScissorsInFixedPoint[pViewportIndex[11]].ymin,
+        pScissorsInFixedPoint[pViewportIndex[10]].ymin,
+        pScissorsInFixedPoint[pViewportIndex[ 9]].ymin,
+        pScissorsInFixedPoint[pViewportIndex[ 8]].ymin,
+        pScissorsInFixedPoint[pViewportIndex[ 7]].ymin,
+        pScissorsInFixedPoint[pViewportIndex[ 6]].ymin,
+        pScissorsInFixedPoint[pViewportIndex[ 5]].ymin,
+        pScissorsInFixedPoint[pViewportIndex[ 4]].ymin,
+        pScissorsInFixedPoint[pViewportIndex[ 3]].ymin,
+        pScissorsInFixedPoint[pViewportIndex[ 2]].ymin,
+        pScissorsInFixedPoint[pViewportIndex[ 1]].ymin,
+        pScissorsInFixedPoint[pViewportIndex[ 0]].ymin);
 
     scisXmax = _simd16_set_epi32(
-        pScissorsInFixedPoint[pViewportIndex[0]].xmax,
-        pScissorsInFixedPoint[pViewportIndex[1]].xmax,
-        pScissorsInFixedPoint[pViewportIndex[2]].xmax,
-        pScissorsInFixedPoint[pViewportIndex[3]].xmax,
-        pScissorsInFixedPoint[pViewportIndex[4]].xmax,
-        pScissorsInFixedPoint[pViewportIndex[5]].xmax,
-        pScissorsInFixedPoint[pViewportIndex[6]].xmax,
-        pScissorsInFixedPoint[pViewportIndex[7]].xmax,
-        pScissorsInFixedPoint[pViewportIndex[8]].xmax,
-        pScissorsInFixedPoint[pViewportIndex[9]].xmax,
-        pScissorsInFixedPoint[pViewportIndex[10]].xmax,
-        pScissorsInFixedPoint[pViewportIndex[11]].xmax,
-        pScissorsInFixedPoint[pViewportIndex[12]].xmax,
-        pScissorsInFixedPoint[pViewportIndex[13]].xmax,
+        pScissorsInFixedPoint[pViewportIndex[15]].xmax,
         pScissorsInFixedPoint[pViewportIndex[14]].xmax,
-        pScissorsInFixedPoint[pViewportIndex[15]].xmax);
+        pScissorsInFixedPoint[pViewportIndex[13]].xmax,
+        pScissorsInFixedPoint[pViewportIndex[12]].xmax,
+        pScissorsInFixedPoint[pViewportIndex[11]].xmax,
+        pScissorsInFixedPoint[pViewportIndex[10]].xmax,
+        pScissorsInFixedPoint[pViewportIndex[ 9]].xmax,
+        pScissorsInFixedPoint[pViewportIndex[ 8]].xmax,
+        pScissorsInFixedPoint[pViewportIndex[ 7]].xmax,
+        pScissorsInFixedPoint[pViewportIndex[ 6]].xmax,
+        pScissorsInFixedPoint[pViewportIndex[ 5]].xmax,
+        pScissorsInFixedPoint[pViewportIndex[ 4]].xmax,
+        pScissorsInFixedPoint[pViewportIndex[ 3]].xmax,
+        pScissorsInFixedPoint[pViewportIndex[ 2]].xmax,
+        pScissorsInFixedPoint[pViewportIndex[ 1]].xmax,
+        pScissorsInFixedPoint[pViewportIndex[ 0]].xmax);
 
     scisYmax = _simd16_set_epi32(
-        pScissorsInFixedPoint[pViewportIndex[0]].ymax,
-        pScissorsInFixedPoint[pViewportIndex[1]].ymax,
-        pScissorsInFixedPoint[pViewportIndex[2]].ymax,
-        pScissorsInFixedPoint[pViewportIndex[3]].ymax,
-        pScissorsInFixedPoint[pViewportIndex[4]].ymax,
-        pScissorsInFixedPoint[pViewportIndex[5]].ymax,
-        pScissorsInFixedPoint[pViewportIndex[6]].ymax,
-        pScissorsInFixedPoint[pViewportIndex[7]].ymax,
-        pScissorsInFixedPoint[pViewportIndex[8]].ymax,
-        pScissorsInFixedPoint[pViewportIndex[9]].ymax,
-        pScissorsInFixedPoint[pViewportIndex[10]].ymax,
-        pScissorsInFixedPoint[pViewportIndex[11]].ymax,
-        pScissorsInFixedPoint[pViewportIndex[12]].ymax,
-        pScissorsInFixedPoint[pViewportIndex[13]].ymax,
+        pScissorsInFixedPoint[pViewportIndex[15]].ymax,
         pScissorsInFixedPoint[pViewportIndex[14]].ymax,
-        pScissorsInFixedPoint[pViewportIndex[15]].ymax);
+        pScissorsInFixedPoint[pViewportIndex[13]].ymax,
+        pScissorsInFixedPoint[pViewportIndex[12]].ymax,
+        pScissorsInFixedPoint[pViewportIndex[11]].ymax,
+        pScissorsInFixedPoint[pViewportIndex[10]].ymax,
+        pScissorsInFixedPoint[pViewportIndex[ 9]].ymax,
+        pScissorsInFixedPoint[pViewportIndex[ 8]].ymax,
+        pScissorsInFixedPoint[pViewportIndex[ 7]].ymax,
+        pScissorsInFixedPoint[pViewportIndex[ 6]].ymax,
+        pScissorsInFixedPoint[pViewportIndex[ 5]].ymax,
+        pScissorsInFixedPoint[pViewportIndex[ 4]].ymax,
+        pScissorsInFixedPoint[pViewportIndex[ 3]].ymax,
+        pScissorsInFixedPoint[pViewportIndex[ 2]].ymax,
+        pScissorsInFixedPoint[pViewportIndex[ 1]].ymax,
+        pScissorsInFixedPoint[pViewportIndex[ 0]].ymax);
 }
 
 typedef void(*PFN_PROCESS_ATTRIBUTES)(DRAW_CONTEXT*, PA_STATE&, uint32_t, uint32_t, float*);




More information about the mesa-commit mailing list