summaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/dri/r300
diff options
context:
space:
mode:
authorDave Airlie <[email protected]>2010-02-03 18:56:40 +1000
committerDave Airlie <[email protected]>2010-02-03 18:58:11 +1000
commitf9d734c309ca044fc70dc79eafe32b12460d65c0 (patch)
tree10b5c69c8fd680da4b74a35e4e32dc2514b3f722 /src/mesa/drivers/dri/r300
parent0d089cbb48d099b833768556266114d537c91299 (diff)
r300: fix compiler bugs introduced with MRT changes.
the first looks like a definite bug, the second I'm not so confident of but it works. Signed-off-by: Dave Airlie <[email protected]>
Diffstat (limited to 'src/mesa/drivers/dri/r300')
-rw-r--r--src/mesa/drivers/dri/r300/compiler/radeon_pair_translate.c4
-rw-r--r--src/mesa/drivers/dri/r300/r300_fragprog_common.c1
2 files changed, 3 insertions, 2 deletions
diff --git a/src/mesa/drivers/dri/r300/compiler/radeon_pair_translate.c b/src/mesa/drivers/dri/r300/compiler/radeon_pair_translate.c
index 80cc5ffe955..fff5b0c2173 100644
--- a/src/mesa/drivers/dri/r300/compiler/radeon_pair_translate.c
+++ b/src/mesa/drivers/dri/r300/compiler/radeon_pair_translate.c
@@ -208,8 +208,8 @@ static void set_pair_instruction(struct r300_fragment_program_compiler *c,
} else {
for (i = 0; i < 4; i++) {
if (inst->DstReg.Index == c->OutputColor[i]) {
- pair->RGB.Target = inst->DstReg.Index;
- pair->Alpha.Target = inst->DstReg.Index;
+ pair->RGB.Target = i;
+ pair->Alpha.Target = i;
pair->RGB.OutputWriteMask |=
inst->DstReg.WriteMask & RC_MASK_XYZ;
pair->Alpha.OutputWriteMask |=
diff --git a/src/mesa/drivers/dri/r300/r300_fragprog_common.c b/src/mesa/drivers/dri/r300/r300_fragprog_common.c
index 3ec43e62bd9..a0e2dd3c09f 100644
--- a/src/mesa/drivers/dri/r300/r300_fragprog_common.c
+++ b/src/mesa/drivers/dri/r300/r300_fragprog_common.c
@@ -221,6 +221,7 @@ static void translate_fragment_program(GLcontext *ctx, struct r300_fragment_prog
compiler.state = fp->state;
compiler.is_r500 = (r300->radeon.radeonScreen->chip_family >= CHIP_FAMILY_RV515) ? GL_TRUE : GL_FALSE;
compiler.OutputDepth = FRAG_RESULT_DEPTH;
+ memset(compiler.OutputColor, 0, 4 * sizeof(unsigned));
compiler.OutputColor[0] = FRAG_RESULT_COLOR;
compiler.AllocateHwInputs = &allocate_hw_inputs;