summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGeorge Kyriazis <[email protected]>2018-02-06 17:28:12 -0600
committerGeorge Kyriazis <[email protected]>2018-02-16 10:54:01 -0600
commit48d62409f82050738487f15878a740f2695d8128 (patch)
tree891c07a17495067f4e95a75029b4d7ac50de5038
parente12db47a7ddcee6f26409b5b1dd722747560597d (diff)
swr/rast: Fix primitive replication issue in tesselation PA.
Reviewed-by: Bruce Cherniak <[email protected]>
-rw-r--r--src/gallium/drivers/swr/rasterizer/core/frontend.cpp4
-rw-r--r--src/gallium/drivers/swr/rasterizer/core/pa.h1
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)
{