OSDN Git Service

r600g: LIT: swap MUL_LIT operands to fix 0^0
authorVadim Girlin <vadimgirlin@gmail.com>
Wed, 6 Jul 2011 01:29:08 +0000 (05:29 +0400)
committerAlex Deucher <alexdeucher@gmail.com>
Fri, 8 Jul 2011 21:23:07 +0000 (17:23 -0400)
commit189303fb302b3e2576c5e327fc85a464403a5e0d
tree4f6f5576557968582518a6d92d6c793f5014b62c
parentc4da12e74fd89c4657931d891c96741647bb45e9
r600g: LIT: swap MUL_LIT operands to fix 0^0

For 0^0 case result of "LOG_CLAMPED ...,0" is -MAX_FLOAT, and then result of
"MUL_LIT ...,0,-MAX_FLOAT,..." is -MAX_FLOAT instead of 0 because of special
src1 checks for -MAX_FLOAT. So swap src0/1:
"MUL_LIT ...,-MAX_FLOAT,0,..." to get expected 0, then result of
"EXP_IEEE ...,0" is 1 as expected for LIT.

Signed-off-by: Vadim Girlin <vadimgirlin@gmail.com>
src/gallium/drivers/r600/r600_shader.c