From: Tim Rowley Date: Wed, 29 Nov 2017 21:14:20 +0000 (-0600) Subject: swr/rast: Corrections to multi-scissor handling X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=6d5275498a9a8e571048ca3dd6c99f693b49a7ed;p=mesa.git 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 --- diff --git a/src/gallium/drivers/swr/rasterizer/core/binner.cpp b/src/gallium/drivers/swr/rasterizer/core/binner.cpp index 52375f8956c..8a5356b168d 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*);