r300g: make pow(0,0) return 1 instead of NaN in the R500 fragment shader
authorMarek Olšák <maraeo@gmail.com>
Tue, 8 Dec 2009 03:55:32 +0000 (04:55 +0100)
committerCorbin Simpson <MostAwesomeDude@gmail.com>
Wed, 9 Dec 2009 21:38:11 +0000 (13:38 -0800)
Unfortunately we can't fix this easily in the R300 fragment shader,
and it's probably not worth the effort.

src/gallium/drivers/r300/r300_emit.c

index 7620c73cac57a824c404a23257601aef17828d85..55bc2b3528a34e9c6a3d913245d0e0bb45210582 100644 (file)
@@ -277,7 +277,7 @@ void r500_emit_fragment_program_code(struct r300_context* r300,
 
     BEGIN_CS(13 +
              ((code->inst_end + 1) * 6));
-    OUT_CS_REG(R500_US_CONFIG, 0);
+    OUT_CS_REG(R500_US_CONFIG, R500_ZERO_TIMES_ANYTHING_EQUALS_ZERO);
     OUT_CS_REG(R500_US_PIXSIZE, code->max_temp_idx);
     OUT_CS_REG(R500_US_CODE_RANGE,
                R500_US_CODE_RANGE_ADDR(0) | R500_US_CODE_RANGE_SIZE(code->inst_end));