From: George Kyriazis Date: Tue, 6 Feb 2018 23:28:12 +0000 (-0600) Subject: swr/rast: Fix primitive replication issue in tesselation PA. X-Git-Tag: android-x86-8.1-r1~5484 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=48d62409f82050738487f15878a740f2695d8128;p=android-x86%2Fexternal-mesa.git swr/rast: Fix primitive replication issue in tesselation PA. Reviewed-by: Bruce Cherniak --- 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) {