summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mesa/tnl/t_vb_program.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/mesa/tnl/t_vb_program.c b/src/mesa/tnl/t_vb_program.c
index 62c78dc7d1..82e007a3ac 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",