i965: Use UniformBooleanTrue value for boolean literal true.
authorMatt Turner <mattst88@gmail.com>
Sat, 9 Aug 2014 02:44:22 +0000 (19:44 -0700)
committerMatt Turner <mattst88@gmail.com>
Tue, 19 Aug 2014 01:35:49 +0000 (18:35 -0700)
Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp

index 05082eed719d338b15402be7041c3878f2182001..1245c8a7667e4ebc52c8b855625280d34052e59d 100644 (file)
@@ -2209,7 +2209,9 @@ fs_visitor::visit(ir_constant *ir)
            emit(MOV(dst_reg, fs_reg(ir->value.i[i])));
            break;
         case GLSL_TYPE_BOOL:
-           emit(MOV(dst_reg, fs_reg((int)ir->value.b[i])));
+            emit(MOV(dst_reg,
+                     fs_reg(ir->value.b[i] != 0 ? ctx->Const.UniformBooleanTrue
+                                                : 0)));
            break;
         default:
            unreachable("Non-float/uint/int/bool constant");
index f22d38d71ee37276722494636029f63def5ba6ea..cb9a1b1b68ffcbff67eaf6f69a2b75db679cdde4 100644 (file)
@@ -2231,7 +2231,9 @@ vec4_visitor::emit_constant_values(dst_reg *dst, ir_constant *ir)
         emit(MOV(*dst, src_reg(ir->value.u[i])));
         break;
       case GLSL_TYPE_BOOL:
-        emit(MOV(*dst, src_reg(ir->value.b[i])));
+         emit(MOV(*dst,
+                  src_reg(ir->value.b[i] != 0 ? ctx->Const.UniformBooleanTrue
+                                              : 0)));
         break;
       default:
         unreachable("Non-float/uint/int/bool constant");