From 48d62409f82050738487f15878a740f2695d8128 Mon Sep 17 00:00:00 2001 From: George Kyriazis Date: Tue, 6 Feb 2018 17:28:12 -0600 Subject: swr/rast: Fix primitive replication issue in tesselation PA. Reviewed-by: Bruce Cherniak --- src/gallium/drivers/swr/rasterizer/core/frontend.cpp | 4 ++-- src/gallium/drivers/swr/rasterizer/core/pa.h | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/swr/rasterizer/core/frontend.cpp b/src/gallium/drivers/swr/rasterizer/core/frontend.cpp index 33533af630a..13c9f3670f7 100644 --- a/src/gallium/drivers/swr/rasterizer/core/frontend.cpp +++ b/src/gallium/drivers/swr/rasterizer/core/frontend.cpp @@ -1338,7 +1338,7 @@ static void TessellationStages( tsData.ppIndices, tsData.NumPrimitives, tsState.postDSTopology, - numVertsPerPrim); + NumVertsPerPrim(tsState.postDSTopology, false)); while (tessPa.HasWork()) { @@ -1431,7 +1431,7 @@ static void TessellationStages( pfnClipFunc(pDC, tessPa, workerId, prim_simd16, GenMask(numPrims), primID, vViewportIdx, vRtIdx); } #else - // Gather data from the SVG if provided. + // Gather data from the SGV if provided. simdscalari vViewportIdx = SIMD::setzero_si(); simdscalari vRtIdx = SIMD::setzero_si(); SIMD::Vec4 svgAttrib[4]; diff --git a/src/gallium/drivers/swr/rasterizer/core/pa.h b/src/gallium/drivers/swr/rasterizer/core/pa.h index c88b4bfd97d..ed644c044c3 100644 --- a/src/gallium/drivers/swr/rasterizer/core/pa.h +++ b/src/gallium/drivers/swr/rasterizer/core/pa.h @@ -1330,6 +1330,7 @@ struct PA_TESS : PA_STATE SWR_ASSERT(slot < m_numAttributes); SWR_ASSERT(primIndex < PA_TESS::NumPrims()); + const float* pVertDataBase = (const float*)&m_pVertexData[slot * m_attributeStrideInVectors * 4]; for (uint32_t i = 0; i < m_numVertsPerPrim; ++i) { -- cgit v1.2.3