From: Tim Rowley Date: Thu, 14 Dec 2017 19:49:56 +0000 (-0600) Subject: swr/rast: Move more RTAI handling out of binner X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f475ac3c40c6204ef73ad5d07d9ae6932822cc2f;p=mesa.git swr/rast: Move more RTAI handling out of binner 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 7ef87c4443d..9aa9f9e79b1 100644 --- a/src/gallium/drivers/swr/rasterizer/core/binner.cpp +++ b/src/gallium/drivers/swr/rasterizer/core/binner.cpp @@ -1023,18 +1023,7 @@ void BinPostSetupPointsImpl( SIMD_T::store_si(reinterpret_cast(aMTBottom), bbox.ymax); // store render target array index - OSALIGNSIMD16(uint32_t) aRTAI[SIMD_WIDTH]; - if (state.backendState.readRenderTargetArrayIndex) - { - typename SIMD_T::Vec4 vRtai[2]; - pa.Assemble(VERTEX_SGV_SLOT, vRtai); - typename SIMD_T::Integer vRtaii = SIMD_T::castps_si(vRtai[0][VERTEX_SGV_RTAI_COMP]); - SIMD_T::store_si(reinterpret_cast(aRTAI), vRtaii); - } - else - { - SIMD_T::store_si(reinterpret_cast(aRTAI), SIMD_T::setzero_si()); - } + const uint32_t *aRTAI = reinterpret_cast(&rtIdx); OSALIGNSIMD16(float) aPointSize[SIMD_WIDTH]; SIMD_T::store_ps(reinterpret_cast(aPointSize), vPointSize); diff --git a/src/gallium/drivers/swr/rasterizer/core/clip.h b/src/gallium/drivers/swr/rasterizer/core/clip.h index e5e00d49b02..592c9bfa73e 100644 --- a/src/gallium/drivers/swr/rasterizer/core/clip.h +++ b/src/gallium/drivers/swr/rasterizer/core/clip.h @@ -646,6 +646,7 @@ public: PA_STATE_OPT clipPA(pDC, numEmittedPrims, reinterpret_cast(&transposedPrims[0]), numEmittedVerts, SWR_VTX_NUM_SLOTS, true, NumVertsPerPrim, clipTopology); clipPA.viewportArrayActive = pa.viewportArrayActive; + clipPA.rtArrayActive = pa.rtArrayActive; static const uint32_t primMaskMap[] = { 0x0, 0x1, 0x3, 0x7, 0xf, 0x1f, 0x3f, 0x7f };