diff options
author | Tim Rowley <[email protected]> | 2017-06-07 13:16:15 -0500 |
---|---|---|
committer | Tim Rowley <[email protected]> | 2017-06-16 16:20:16 -0500 |
commit | b7eb86c617ee8f73b552dc64a6d776d26672c38f (patch) | |
tree | 3956c764469ddd9d060ccf398d60a7ecdd622867 /src/gallium | |
parent | 7f3be3f0b8df1eb85130c58e545a7e73f4369069 (diff) |
swr/rast: Share vertex memory between VS input/output
Removes large simdvertex stack allocation.
Vertex shader must ensure reads happen before writes.
Reviewed-by: Bruce Cherniak <[email protected]>
Diffstat (limited to 'src/gallium')
-rw-r--r-- | src/gallium/drivers/swr/rasterizer/core/frontend.cpp | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/src/gallium/drivers/swr/rasterizer/core/frontend.cpp b/src/gallium/drivers/swr/rasterizer/core/frontend.cpp index 157a3180092..902253b1481 100644 --- a/src/gallium/drivers/swr/rasterizer/core/frontend.cpp +++ b/src/gallium/drivers/swr/rasterizer/core/frontend.cpp @@ -1727,11 +1727,7 @@ void ProcessDraw( } #else - simdvertex vin; SWR_VS_CONTEXT vsContext; - - vsContext.pVin = &vin; - SWR_FETCH_CONTEXT fetchInfo = { 0 }; fetchInfo.pStreams = &state.vertexBuffers[0]; @@ -1787,6 +1783,7 @@ void ProcessDraw( } simdvertex& vout = pa.GetNextVsOutput(); + vsContext.pVin = &vout; vsContext.pVout = &vout; if (i < endVertex) @@ -1794,7 +1791,7 @@ void ProcessDraw( // 1. Execute FS/VS for a single SIMD. AR_BEGIN(FEFetchShader, pDC->drawId); - state.pfnFetchFunc(fetchInfo, vin); + state.pfnFetchFunc(fetchInfo, vout); AR_END(FEFetchShader, 0); // forward fetch generated vertex IDs to the vertex shader |