From 9854a17f292193c9720cf25ab00818ecc210f911 Mon Sep 17 00:00:00 2001 From: Brian Date: Sun, 25 Feb 2007 12:47:25 -0700 Subject: [PATCH] only copy used outputs --- src/mesa/tnl/t_vb_program.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/mesa/tnl/t_vb_program.c b/src/mesa/tnl/t_vb_program.c index 62c78dc7d10..82e007a3ac1 100644 --- a/src/mesa/tnl/t_vb_program.c +++ b/src/mesa/tnl/t_vb_program.c @@ -244,7 +244,7 @@ run_vp( GLcontext *ctx, struct tnl_pipeline_stage *stage ) const GLuint size = VB->AttribPtr[attr]->size; const GLuint stride = VB->AttribPtr[attr]->stride; const GLfloat *data = (GLfloat *) (ptr + stride * i); - COPY_CLEAN_4V(machine.VertAttribs/*Inputs*/[attr], size, data); + COPY_CLEAN_4V(machine.VertAttribs[attr], size, data); } } @@ -264,9 +264,10 @@ run_vp( GLcontext *ctx, struct tnl_pipeline_stage *stage ) } /* copy the output registers into the VB->attribs arrays */ - /* XXX (optimize) could use a conditional and smaller loop limit here */ for (attr = 0; attr < VERT_RESULT_MAX; attr++) { - COPY_4V(store->attribs[attr].data[i], machine.Outputs[attr]); + if (program->Base.OutputsWritten & (1 << attr)) { + COPY_4V(store->attribs[attr].data[i], machine.Outputs[attr]); + } } #if 0 printf("HPOS: %f %f %f %f\n", -- 2.30.2