Mesa (master): swr: set dynamic vertex size

Tim Rowley torowley at kemper.freedesktop.org
Thu Jun 29 18:39:56 UTC 2017


Module: Mesa
Branch: master
Commit: 867e1117692c4c735688b678dbdff7a5e4696d95
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=867e1117692c4c735688b678dbdff7a5e4696d95

Author: Tim Rowley <timothy.o.rowley at intel.com>
Date:   Wed Jun 28 09:54:32 2017 -0500

swr: set dynamic vertex size

Reduces the memory footprint of the frontend processing by packing
vertices.

Reviewed-by: Bruce Cherniak <bruce.cherniak at intel.com>

---

 src/gallium/drivers/swr/swr_draw.cpp | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/gallium/drivers/swr/swr_draw.cpp b/src/gallium/drivers/swr/swr_draw.cpp
index f85076b74c..f26b8e873c 100644
--- a/src/gallium/drivers/swr/swr_draw.cpp
+++ b/src/gallium/drivers/swr/swr_draw.cpp
@@ -129,8 +129,10 @@ swr_draw_vbo(struct pipe_context *pipe, const struct pipe_draw_info *info)
     * XXX setup provokingVertex & topologyProvokingVertex */
    SWR_FRONTEND_STATE feState = {0};
 
-   /* XXX this value should be minimized based on the shader set */
-   feState.vsVertexSize = SWR_VTX_NUM_SLOTS;
+   feState.vsVertexSize =
+      VERTEX_ATTRIB_START_SLOT +
+      + ctx->vs->info.base.num_outputs
+      - (ctx->vs->info.base.writes_position ? 1 : 0);
 
    if (ctx->rasterizer->flatshade_first) {
       feState.provokingVertex = {1, 0, 0};




More information about the mesa-commit mailing list