summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mesa/drivers/dri/r300/compiler/r3xx_vertprog.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/mesa/drivers/dri/r300/compiler/r3xx_vertprog.c b/src/mesa/drivers/dri/r300/compiler/r3xx_vertprog.c
index c05b488645..14dd36354d 100644
--- a/src/mesa/drivers/dri/r300/compiler/r3xx_vertprog.c
+++ b/src/mesa/drivers/dri/r300/compiler/r3xx_vertprog.c
@@ -607,12 +607,8 @@ static void nqssadceInit(struct nqssadce_state* s)
int i;
for(i = 0; i < VERT_RESULT_MAX; ++i) {
- if (compiler->RequiredOutputs & (1 << i)) {
- if (i != VERT_RESULT_PSIZ)
- s->Outputs[i].Sourced = WRITEMASK_XYZW;
- else
- s->Outputs[i].Sourced = WRITEMASK_X; /* ugly hack! */
- }
+ if (compiler->RequiredOutputs & (1 << i))
+ s->Outputs[i].Sourced = WRITEMASK_XYZW;
}
}
@@ -631,6 +627,8 @@ void r3xx_compile_vertex_program(struct r300_vertex_program_compiler* compiler)
rc_mesa_to_rc_program(&compiler->Base, compiler->program);
compiler->program = 0;
+ rc_move_output(&compiler->Base, VERT_RESULT_PSIZ, VERT_RESULT_PSIZ, WRITEMASK_X);
+
if (compiler->state.WPosAttr != FRAG_ATTRIB_MAX) {
rc_copy_output(&compiler->Base,
VERT_RESULT_HPOS,