i965: Fix execution size of scalar TCS barrier setup code.
[mesa.git] / src / mesa / drivers / dri / i965 / brw_cubemap_normalize.cpp
index 46155fb43af9688521050d3b48550abf8754b2e9..2ff9ec16fdb66a61c50c4e3054cc896dacbdc968 100644 (file)
@@ -30,8 +30,8 @@
  * \author Eric Anholt <eric@anholt.net>
  */
 
-#include "glsl/glsl_types.h"
-#include "glsl/ir.h"
+#include "compiler/glsl_types.h"
+#include "compiler/glsl/ir.h"
 #include "program/prog_instruction.h" /* For WRITEMASK_* */
 
 class brw_cubemap_normalize_visitor : public ir_hierarchical_visitor {
@@ -52,7 +52,7 @@ brw_cubemap_normalize_visitor::visit_leave(ir_texture *ir)
    if (ir->sampler->type->sampler_dimensionality != GLSL_SAMPLER_DIM_CUBE)
       return visit_continue;
 
-   if (ir->op == ir_txs)
+   if (!ir->coordinate)
       return visit_continue;
 
    void *mem_ctx = ralloc_parent(ir);
@@ -92,10 +92,12 @@ brw_cubemap_normalize_visitor::visit_leave(ir_texture *ir)
    /* coordinate.xyz *= expr */
    assign = new(mem_ctx) ir_assignment(
       new(mem_ctx) ir_dereference_variable(var),
-      new(mem_ctx) ir_expression(ir_binop_mul,
-                                 ir->coordinate->type,
-                                 new(mem_ctx) ir_dereference_variable(var),
-                                 expr));
+      new(mem_ctx) ir_swizzle(
+         new(mem_ctx) ir_expression(ir_binop_mul,
+                                    ir->coordinate->type,
+                                    new(mem_ctx) ir_dereference_variable(var),
+                                    expr),
+         0, 1, 2, 0, 3));
    assign->write_mask = WRITEMASK_XYZ;
    base_ir->insert_before(assign);
    ir->coordinate = new(mem_ctx) ir_dereference_variable(var);