Series Reviewed-by: Bruce Cherniak <bruce.chern...@intel.com> > On Jan 24, 2018, at 9:31 AM, George Kyriazis <george.kyria...@intel.com> > wrote: > > Early Rasterization did not initially work with USE_SIMD16_FRONTEND=0. > Fix it so it works there, too. Please note that the default setting > is USE_SIMD16_FRONTEND=1. > --- > .../drivers/swr/rasterizer/core/frontend.cpp | 66 +++++++++++----------- > 1 file changed, 33 insertions(+), 33 deletions(-) > > diff --git a/src/gallium/drivers/swr/rasterizer/core/frontend.cpp > b/src/gallium/drivers/swr/rasterizer/core/frontend.cpp > index 9600f78..66c4b74 100644 > --- a/src/gallium/drivers/swr/rasterizer/core/frontend.cpp > +++ b/src/gallium/drivers/swr/rasterizer/core/frontend.cpp > @@ -1032,31 +1032,31 @@ static void GeometryShaderStage( > simdscalari vPrimId = > _simd_set1_epi32(pPrimitiveId[inputPrim]); > > // Gather data from the SVG if provided. > - simdscalari vViewportIdx = > SIMD16::setzero_si(); > - simdscalari vRtIdx = SIMD16::setzero_si(); > - SIMD8::Vec4 svgAttrib[4]; > + simdscalari vViewportIdx = > SIMD::setzero_si(); > + simdscalari vRtIdx = SIMD::setzero_si(); > + SIMD::Vec4 svgAttrib[4]; > > if (state.backendState.readViewportArrayIndex > || state.backendState.readRenderTargetArrayIndex) > { > - tessPa.Assemble(VERTEX_SGV_SLOT, > svgAttrib); > + gsPa.Assemble(VERTEX_SGV_SLOT, > svgAttrib); > } > > > if (state.backendState.readViewportArrayIndex) > { > - vViewportIdx = > SIMD8::castps_si(svgAttrib[0][VERTEX_SGV_VAI_COMP]); > + vViewportIdx = > SIMD::castps_si(svgAttrib[0][VERTEX_SGV_VAI_COMP]); > > // OOB VPAI indices => forced to zero. > - vViewportIdx = > SIMD8::max_epi32(vViewportIdx, SIMD8::setzero_si()); > - simd16scalari vNumViewports = > SIMD8::set1_epi32(KNOB_NUM_VIEWPORTS_SCISSORS); > - simd16scalari vClearMask = > SIMD8::cmplt_epi32(vViewportIdx, vNumViewports); > - vViewportIdx = SIMD8::and_si(vClearMask, > vViewportIdx); > - tessPa.viewportArrayActive = true; > + vViewportIdx = > SIMD::max_epi32(vViewportIdx, SIMD::setzero_si()); > + simdscalari vNumViewports = > SIMD::set1_epi32(KNOB_NUM_VIEWPORTS_SCISSORS); > + simdscalari vClearMask = > SIMD::cmplt_epi32(vViewportIdx, vNumViewports); > + vViewportIdx = SIMD::and_si(vClearMask, > vViewportIdx); > + gsPa.viewportArrayActive = true; > } > if > (state.backendState.readRenderTargetArrayIndex) > { > - vRtIdx = > SIMD8::castps_si(svgAttrib[0][VERTEX_SGV_RTAI_COMP]); > - tessPa.rtArrayActive = true; > + vRtIdx = > SIMD::castps_si(svgAttrib[0][VERTEX_SGV_RTAI_COMP]); > + gsPa.rtArrayActive = true; > } > > pfnClipFunc(pDC, gsPa, workerId, attrib, > GenMask(gsPa.NumPrims()), vPrimId, vViewportIdx, vRtIdx); > @@ -1437,9 +1437,9 @@ static void TessellationStages( > } > #else > // Gather data from the SVG if provided. > - simdscalari vViewportIdx = SIMD16::setzero_si(); > - simdscalari vRtIdx = SIMD16::setzero_si(); > - SIMD8::Vec4 svgAttrib[4]; > + simdscalari vViewportIdx = SIMD::setzero_si(); > + simdscalari vRtIdx = SIMD::setzero_si(); > + SIMD::Vec4 svgAttrib[4]; > > if (state.backendState.readViewportArrayIndex || > state.backendState.readRenderTargetArrayIndex) > { > @@ -1448,18 +1448,18 @@ static void TessellationStages( > > if (state.backendState.readViewportArrayIndex) > { > - vViewportIdx = > SIMD8::castps_si(svgAttrib[0][VERTEX_SGV_VAI_COMP]); > + vViewportIdx = > SIMD::castps_si(svgAttrib[0][VERTEX_SGV_VAI_COMP]); > > // OOB VPAI indices => forced to zero. > - vViewportIdx = SIMD8::max_epi32(vViewportIdx, > SIMD8::setzero_si()); > - simd16scalari vNumViewports = > SIMD8::set1_epi32(KNOB_NUM_VIEWPORTS_SCISSORS); > - simd16scalari vClearMask = > SIMD8::cmplt_epi32(vViewportIdx, vNumViewports); > - vViewportIdx = SIMD8::and_si(vClearMask, > vViewportIdx); > + vViewportIdx = SIMD::max_epi32(vViewportIdx, > SIMD::setzero_si()); > + simdscalari vNumViewports = > SIMD::set1_epi32(KNOB_NUM_VIEWPORTS_SCISSORS); > + simdscalari vClearMask = > SIMD::cmplt_epi32(vViewportIdx, vNumViewports); > + vViewportIdx = SIMD::and_si(vClearMask, > vViewportIdx); > tessPa.viewportArrayActive = true; > } > if (state.backendState.readRenderTargetArrayIndex) > { > - vRtIdx = > SIMD8::castps_si(svgAttrib[0][VERTEX_SGV_RTAI_COMP]); > + vRtIdx = > SIMD::castps_si(svgAttrib[0][VERTEX_SGV_RTAI_COMP]); > tessPa.rtArrayActive = true; > } > pfnClipFunc(pDC, tessPa, workerId, prim, > @@ -2053,30 +2053,30 @@ void ProcessDraw( > SWR_ASSERT(pDC->pState->pfnProcessPrims); > > // Gather data from the SVG if provided. > - simdscalari vViewportIdx = > SIMD16::setzero_si(); > - simdscalari vRtIdx = > SIMD16::setzero_si(); > - SIMD8::Vec4 svgAttrib[4]; > + simdscalari vViewportIdx = > SIMD::setzero_si(); > + simdscalari vRtIdx = SIMD::setzero_si(); > + SIMD::Vec4 svgAttrib[4]; > > if > (state.backendState.readViewportArrayIndex || > state.backendState.readRenderTargetArrayIndex) > { > - tessPa.Assemble(VERTEX_SGV_SLOT, > svgAttrib); > + pa.Assemble(VERTEX_SGV_SLOT, > svgAttrib); > } > > if > (state.backendState.readViewportArrayIndex) > { > - vViewportIdx = > SIMD8::castps_si(svgAttrib[0][VERTEX_SGV_VAI_COMP]); > + vViewportIdx = > SIMD::castps_si(svgAttrib[0][VERTEX_SGV_VAI_COMP]); > > // OOB VPAI indices => forced to zero. > - vViewportIdx = > SIMD8::max_epi32(vViewportIdx, SIMD8::setzero_si()); > - simd16scalari vNumViewports = > SIMD8::set1_epi32(KNOB_NUM_VIEWPORTS_SCISSORS); > - simd16scalari vClearMask = > SIMD8::cmplt_epi32(vViewportIdx, vNumViewports); > - vViewportIdx = > SIMD8::and_si(vClearMask, vViewportIdx); > - tessPa.viewportArrayActive = true; > + vViewportIdx = > SIMD::max_epi32(vViewportIdx, SIMD::setzero_si()); > + simdscalari vNumViewports = > SIMD::set1_epi32(KNOB_NUM_VIEWPORTS_SCISSORS); > + simdscalari vClearMask = > SIMD::cmplt_epi32(vViewportIdx, vNumViewports); > + vViewportIdx = > SIMD::and_si(vClearMask, vViewportIdx); > + pa.viewportArrayActive = true; > } > if > (state.backendState.readRenderTargetArrayIndex) > { > - vRtIdx = > SIMD8::castps_si(svgAttrib[0][VERTEX_SGV_RTAI_COMP]); > - tessPa.rtArrayActive = true; > + vRtIdx = > SIMD::castps_si(svgAttrib[0][VERTEX_SGV_RTAI_COMP]); > + pa.rtArrayActive = true; > } > > pDC->pState->pfnProcessPrims(pDC, pa, > workerId, prim, > -- > 2.7.4 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev