[Mesa-dev] [PATCH 3/7] i965/fs: Add support for bit-shift operations.

Eric Anholt eric at anholt.net
Tue Sep 27 15:08:37 PDT 2011


---
 src/mesa/drivers/dri/i965/brw_fs_visitor.cpp |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
index df43be0..d8ce47b 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
@@ -445,8 +445,14 @@ fs_visitor::visit(ir_expression *ir)
       break;
 
    case ir_binop_lshift:
+      inst = emit(BRW_OPCODE_SHL, this->result, op[0], op[1]);
+      break;
+
    case ir_binop_rshift:
-      assert(!"GLSL 1.30 features unsupported");
+      if (ir->type->base_type == GLSL_TYPE_INT)
+	 inst = emit(BRW_OPCODE_ASR, this->result, op[0], op[1]);
+      else
+	 inst = emit(BRW_OPCODE_SHR, this->result, op[0], op[1]);
       break;
    }
 }
-- 
1.7.5.4



More information about the mesa-dev mailing list