From cda28bca0d789c328d19bf90afd35a5ff74cfb77 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 5 Aug 2011 20:16:21 -0700 Subject: [PATCH] i965/vs: Apply the gen6 math workaround for math1 instructions. Fixes glsl-vs-masked-cos. --- src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp b/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp index 4237373c13d..7e0535b5c02 100644 --- a/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp +++ b/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp @@ -122,14 +122,12 @@ vec4_visitor::emit_math1_gen6(enum opcode opcode, dst_reg dst, src_reg src) { /* The gen6 math instruction ignores the source modifiers -- * swizzle, abs, negate, and at least some parts of the register - * region description. Move the source to the corresponding slots - * of the destination generally work. + * region description. */ - src_reg expanded = src_reg(this, glsl_type::float_type); - emit(BRW_OPCODE_MOV, dst, src); - src = expanded; + src_reg temp_src = src_reg(this, glsl_type::vec4_type); + emit(BRW_OPCODE_MOV, dst_reg(temp_src), src); - emit(opcode, dst, src); + emit(opcode, dst, temp_src); } void -- 2.30.2