i965: Drop ir->op != ir_txf condition in offset checking.
authorKenneth Graunke <kenneth@whitecape.org>
Mon, 1 Sep 2014 08:39:14 +0000 (01:39 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Thu, 16 Oct 2014 00:04:43 +0000 (17:04 -0700)
brw_lower_unnormalized_offset sets ir->offset to NULL if it applies the
texelFetchOffset workarounds, so there's no need to special case it
here---there won't be an offset for ir_txf.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Chris Forbes <chrisf@ijw.co.nz>
src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp

index 52771e97634069e55820b062f03ddadf69e7ca44..163d6423d9e7c819de5de319a0291998ce8b271a 100644 (file)
@@ -1492,8 +1492,7 @@ fs_visitor::emit_texture_gen7(ir_texture *ir, fs_reg dst, fs_reg coordinate,
    }
    int length = 0;
 
-   if (ir->op == ir_tg4 || (ir->offset && ir->op != ir_txf) ||
-       is_high_sampler(brw, sampler)) {
+   if (ir->op == ir_tg4 || ir->offset || is_high_sampler(brw, sampler)) {
       /* For general texture offsets (no txf workaround), we need a header to
        * put them in.  Note that for SIMD16 we're making space for two actual
        * hardware registers here, so the emit will have to fix up for this.
@@ -1989,7 +1988,7 @@ fs_visitor::visit(ir_texture *ir)
                                lod, lod2, sampler);
    }
 
-   if (ir->offset != NULL && ir->op != ir_txf)
+   if (ir->offset != NULL)
       inst->texture_offset = brw_texture_offset(ctx, ir->offset->as_constant());
 
    if (ir->op == ir_tg4)
index ef923ddcc03bbcf8dc9beac5f5586baed63f1dce..88ec79e98f1a5936719fc9a58fb4af29201a4639 100644 (file)
@@ -2552,7 +2552,7 @@ vec4_visitor::visit(ir_texture *ir)
 
    vec4_instruction *inst = new(mem_ctx) vec4_instruction(this, opcode);
 
-   if (ir->offset != NULL && ir->op != ir_txf)
+   if (ir->offset != NULL)
       inst->texture_offset = brw_texture_offset(ctx, ir->offset->as_constant());
 
    /* Stuff the channel select bits in the top of the texture offset */