[Mesa-dev] [PATCH 09/20] swr/rast: Pass prim to ClipSimd
Tim Rowley
timothy.o.rowley at intel.com
Thu Dec 14 21:34:49 UTC 2017
---
src/gallium/drivers/swr/rasterizer/core/clip.h | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/src/gallium/drivers/swr/rasterizer/core/clip.h b/src/gallium/drivers/swr/rasterizer/core/clip.h
index 148f661ab4..8b947668d3 100644
--- a/src/gallium/drivers/swr/rasterizer/core/clip.h
+++ b/src/gallium/drivers/swr/rasterizer/core/clip.h
@@ -437,7 +437,7 @@ public:
return SIMD_T::movemask_ps(vClipCullMask);
}
- void ClipSimd(const typename SIMD_T::Float &vPrimMask, const typename SIMD_T::Float &vClipMask, PA_STATE &pa, const typename SIMD_T::Integer &vPrimId, const typename SIMD_T::Integer &vViewportIdx)
+ void ClipSimd(const typename SIMD_T::Vec4 prim[], const typename SIMD_T::Float &vPrimMask, const typename SIMD_T::Float &vClipMask, PA_STATE &pa, const typename SIMD_T::Integer &vPrimId, const typename SIMD_T::Integer &vViewportIdx)
{
// input/output vertex store for clipper
SIMDVERTEX_T<SIMD_T> vertices[7]; // maximum 7 verts generated per triangle
@@ -452,10 +452,9 @@ public:
// assemble pos
typename SIMD_T::Vec4 tmpVector[NumVertsPerPrim];
- pa.Assemble(VERTEX_POSITION_SLOT, tmpVector);
for (uint32_t i = 0; i < NumVertsPerPrim; ++i)
{
- vertices[i].attrib[VERTEX_POSITION_SLOT] = tmpVector[i];
+ vertices[i].attrib[VERTEX_POSITION_SLOT] = prim[i];
}
// assemble attribs
@@ -568,7 +567,8 @@ public:
SIMDVERTEX_T<SIMD_T> transposedPrims[2];
#endif
- for (uint32_t inputPrim = 0; inputPrim < pa.NumPrims(); ++inputPrim)
+ uint32_t numInputPrims = pa.NumPrims();
+ for (uint32_t inputPrim = 0; inputPrim < numInputPrims; ++inputPrim)
{
uint32_t numEmittedVerts = pVertexCount[inputPrim];
if (numEmittedVerts < NumVertsPerPrim)
@@ -716,7 +716,7 @@ public:
AR_BEGIN(FEGuardbandClip, pa.pDC->drawId);
// we have to clip tris, execute the clipper, which will also
// call the binner
- ClipSimd(SIMD_T::vmask_ps(primMask), SIMD_T::vmask_ps(clipMask), pa, primId, viewportIdx);
+ ClipSimd(prim, SIMD_T::vmask_ps(primMask), SIMD_T::vmask_ps(clipMask), pa, primId, viewportIdx);
AR_END(FEGuardbandClip, 1);
}
else if (validMask)
--
2.14.1
More information about the mesa-dev
mailing list