[Mesa-dev] [PATCH] i965/fs: Don't mix integer/float immediates in i2b handling.
Kenneth Graunke
kenneth at whitecape.org
Fri Jan 11 14:19:56 PST 2013
The simulator gets very angry about our i2b code:
cmp.ne(16) g3<1>D g2<0,1,0>D 0F
We can't mix integer DWord and float types. The only reason to use 0F
here was to share code with f2b. Split it and use 0D instead.
---
src/mesa/drivers/dri/i965/brw_fs_visitor.cpp | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
index 815e421..fd07864 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
@@ -506,9 +506,11 @@ fs_visitor::visit(ir_expression *ir)
break;
case ir_unop_f2b:
- case ir_unop_i2b:
emit(CMP(this->result, op[0], fs_reg(0.0f), BRW_CONDITIONAL_NZ));
break;
+ case ir_unop_i2b:
+ emit(CMP(this->result, op[0], fs_reg(0), BRW_CONDITIONAL_NZ));
+ break;
case ir_unop_trunc:
emit(RNDZ(this->result, op[0]));
--
1.8.1
More information about the mesa-dev
mailing list