swr: set dynamic vertex size

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

Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
This commit is contained in:
Tim Rowley
2017-06-28 09:54:32 -05:00
parent 9f6110ad32
commit 867e111769
+4 -2
View File
@@ -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};