<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Oct 13, 2014 at 9:54 PM, Kenneth Graunke <span dir="ltr"><<a href="mailto:kenneth@whitecape.org" target="_blank">kenneth@whitecape.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">From: Connor Abbott <<a href="mailto:connor.abbott@intel.com">connor.abbott@intel.com</a>><br>
<br>
At this point, the only thing it's used for is the opcode.<br>
<br>
Signed-off-by: Connor Abbott <<a href="mailto:connor.abbott@intel.com">connor.abbott@intel.com</a>><br>
Reviewed-by: Kenneth Graunke <<a href="mailto:kenneth@whitecape.org">kenneth@whitecape.org</a>><br>
---<br>
 src/mesa/drivers/dri/i965/brw_fs.h           |  6 ++---<br>
 src/mesa/drivers/dri/i965/brw_fs_fp.cpp      |  6 ++---<br>
 src/mesa/drivers/dri/i965/brw_fs_visitor.cpp | 35 ++++++++++++++--------------<br>
 3 files changed, 23 insertions(+), 24 deletions(-)<br>
<br>
diff --git a/src/mesa/drivers/dri/i965/brw_fs.h b/src/mesa/drivers/dri/i965/brw_fs.h<br>
index 5441031..2615e40 100644<br>
--- a/src/mesa/drivers/dri/i965/brw_fs.h<br>
+++ b/src/mesa/drivers/dri/i965/brw_fs.h<br>
@@ -470,18 +470,18 @@ public:<br>
    void compute_sample_position(fs_reg dst, fs_reg int_sample_pos);<br>
    fs_reg rescale_texcoord(fs_reg coordinate, const glsl_type *coord_type,<br>
                            bool is_rect, uint32_t sampler, int texunit);<br>
-   fs_inst *emit_texture_gen4(ir_texture *ir, fs_reg dst,<br>
+   fs_inst *emit_texture_gen4(ir_texture_opcode op, fs_reg dst,<br>
                               fs_reg coordinate, int coord_components,<br>
                               fs_reg shadow_comp,<br>
                               fs_reg lod, fs_reg lod2, int grad_components,<br>
                               uint32_t sampler);<br>
-   fs_inst *emit_texture_gen5(ir_texture *ir, fs_reg dst,<br>
+   fs_inst *emit_texture_gen5(ir_texture_opcode op, fs_reg dst,<br>
                               fs_reg coordinate, int coord_components,<br>
                               fs_reg shadow_comp,<br>
                               fs_reg lod, fs_reg lod2, int grad_components,<br>
                               fs_reg sample_index, uint32_t sampler,<br>
                               bool has_offset);<br>
-   fs_inst *emit_texture_gen7(ir_texture *ir, fs_reg dst,<br>
+   fs_inst *emit_texture_gen7(ir_texture_opcode op, fs_reg dst,<br>
                               fs_reg coordinate, int coord_components,<br>
                               fs_reg shadow_comp,<br>
                               fs_reg lod, fs_reg lod2, int grad_components,<br>
diff --git a/src/mesa/drivers/dri/i965/brw_fs_fp.cpp b/src/mesa/drivers/dri/i965/brw_fs_fp.cpp<br>
index a77769b..99cdecb 100644<br>
--- a/src/mesa/drivers/dri/i965/brw_fs_fp.cpp<br>
+++ b/src/mesa/drivers/dri/i965/brw_fs_fp.cpp<br>
@@ -487,11 +487,11 @@ fs_visitor::emit_fragment_program_code()<br>
<br>
          fs_inst *inst;<br>
          if (brw->gen >= 7) {<br>
-            inst = emit_texture_gen7(ir, dst, coordinate, coord_components, shadow_c, lod, dpdy, 0, sample_index, fs_reg(0u), fs_reg(fpi->TexSrcUnit), texel_offset);<br>
+            inst = emit_texture_gen7(ir->op, dst, coordinate, coord_components, shadow_c, lod, dpdy, 0, sample_index, fs_reg(0u), fs_reg(fpi->TexSrcUnit), texel_offset);<br>
          } else if (brw->gen >= 5) {<br>
-            inst = emit_texture_gen5(ir, dst, coordinate, coord_components, shadow_c, lod, dpdy, 0, sample_index, fpi->TexSrcUnit, false);<br>
+            inst = emit_texture_gen5(ir->op, dst, coordinate, coord_components, shadow_c, lod, dpdy, 0, sample_index, fpi->TexSrcUnit, false);<br>
          } else {<br>
-            inst = emit_texture_gen4(ir, dst, coordinate, coord_components, shadow_c, lod, dpdy, 0, fpi->TexSrcUnit);<br>
+            inst = emit_texture_gen4(ir->op, dst, coordinate, coord_components, shadow_c, lod, dpdy, 0, fpi->TexSrcUnit);<br>
          }<br>
<br>
          inst->shadow_compare = fpi->TexShadow;<br>
diff --git a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp<br>
index c741ca3..2251bae 100644<br>
--- a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp<br>
+++ b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp<br>
@@ -1166,7 +1166,7 @@ fs_visitor::visit(ir_assignment *ir)<br>
 }<br>
<br>
 fs_inst *<br>
-fs_visitor::emit_texture_gen4(ir_texture *ir, fs_reg dst,<br>
+fs_visitor::emit_texture_gen4(ir_texture_opcode op, fs_reg dst,<br>
                               fs_reg coordinate, int coord_components,<br>
                               fs_reg shadow_c,<br>
                               fs_reg lod, fs_reg dPdy, int grad_components,<br>
@@ -1194,13 +1194,13 @@ fs_visitor::emit_texture_gen4(ir_texture *ir, fs_reg dst,<br>
       }<br>
       mlen += 3;<br>
<br>
-      if (ir->op == ir_tex) {<br>
+      if (op == ir_tex) {<br>
         /* There's no plain shadow compare message, so we use shadow<br>
          * compare with a bias of 0.0.<br>
          */<br>
         emit(MOV(fs_reg(MRF, base_mrf + mlen), fs_reg(0.0f)));<br>
         mlen++;<br>
-      } else if (ir->op == ir_txb || ir->op == ir_txl) {<br>
+      } else if (op == ir_txb || op == ir_txl) {<br>
         emit(MOV(fs_reg(MRF, base_mrf + mlen), lod));<br>
         mlen++;<br>
       } else {<br>
@@ -1209,7 +1209,7 @@ fs_visitor::emit_texture_gen4(ir_texture *ir, fs_reg dst,<br>
<br>
       emit(MOV(fs_reg(MRF, base_mrf + mlen), shadow_c));<br>
       mlen++;<br>
-   } else if (ir->op == ir_tex) {<br>
+   } else if (op == ir_tex) {<br>
       for (int i = 0; i < coord_components; i++) {<br>
         emit(MOV(fs_reg(MRF, base_mrf + mlen + i), coordinate));<br>
         coordinate = offset(coordinate, 1);<br>
@@ -1220,7 +1220,7 @@ fs_visitor::emit_texture_gen4(ir_texture *ir, fs_reg dst,<br>
       }<br>
       /* gen4's SIMD8 sampler always has the slots for u,v,r present. */<br>
       mlen += 3;<br>
-   } else if (ir->op == ir_txd) {<br>
+   } else if (op == ir_txd) {<br>
       fs_reg &dPdx = lod;<br>
<br>
       for (int i = 0; i < coord_components; i++) {<br>
@@ -1255,7 +1255,7 @@ fs_visitor::emit_texture_gen4(ir_texture *ir, fs_reg dst,<br>
         dPdy = offset(dPdy, 1);<br>
       }<br>
       mlen += MAX2(grad_components, 2);<br>
-   } else if (ir->op == ir_txs) {<br>
+   } else if (op == ir_txs) {<br>
       /* There's no SIMD8 resinfo message on Gen4.  Use SIMD16 instead. */<br>
       simd16 = true;<br>
       emit(MOV(fs_reg(MRF, base_mrf + mlen, BRW_REGISTER_TYPE_UD), lod));<br>
@@ -1265,7 +1265,7 @@ fs_visitor::emit_texture_gen4(ir_texture *ir, fs_reg dst,<br>
        * instructions.  We'll need to do SIMD16 here.<br>
        */<br>
       simd16 = true;<br>
-      assert(ir->op == ir_txb || ir->op == ir_txl || ir->op == ir_txf);<br>
+      assert(op == ir_txb || op == ir_txl || op == ir_txf);<br>
<br>
       for (int i = 0; i < coord_components; i++) {<br>
         emit(MOV(fs_reg(MRF, base_mrf + mlen + i * 2, coordinate.type),<br>
@@ -1300,8 +1300,7 @@ fs_visitor::emit_texture_gen4(ir_texture *ir, fs_reg dst,<br>
    }<br></blockquote><div><br></div><div>Uh... This doesn't build.  You're missing a hunk inside the "if (simd16)" block to use the type from dst rather than brw_type_for_base_type(ir->type).<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
    enum opcode opcode;<br>
-<br>
-   switch (ir->op) {<br>
+   switch (op) {<br>
    case ir_tex: opcode = SHADER_OPCODE_TEX; break;<br>
    case ir_txb: opcode = FS_OPCODE_TXB; break;<br>
    case ir_txl: opcode = SHADER_OPCODE_TXL; break;<br>
@@ -1338,7 +1337,7 @@ fs_visitor::emit_texture_gen4(ir_texture *ir, fs_reg dst,<br>
  * surprising in the disassembly.<br>
  */<br>
 fs_inst *<br>
-fs_visitor::emit_texture_gen5(ir_texture *ir, fs_reg dst,<br>
+fs_visitor::emit_texture_gen5(ir_texture_opcode op, fs_reg dst,<br>
                               fs_reg coordinate, int vector_elements,<br>
                               fs_reg shadow_c,<br>
                               fs_reg lod, fs_reg lod2, int grad_components,<br>
@@ -1374,7 +1373,7 @@ fs_visitor::emit_texture_gen5(ir_texture *ir, fs_reg dst,<br>
    }<br>
<br>
    enum opcode opcode;<br>
-   switch (ir->op) {<br>
+   switch (op) {<br>
    case ir_tex:<br>
       opcode = SHADER_OPCODE_TEX;<br>
       break;<br>
@@ -1479,7 +1478,7 @@ is_high_sampler(struct brw_context *brw, fs_reg sampler)<br>
 }<br>
<br>
 fs_inst *<br>
-fs_visitor::emit_texture_gen7(ir_texture *ir, fs_reg dst,<br>
+fs_visitor::emit_texture_gen7(ir_texture_opcode op, fs_reg dst,<br>
                               fs_reg coordinate, int coord_components,<br>
                               fs_reg shadow_c,<br>
                               fs_reg lod, fs_reg lod2, int grad_components,<br>
@@ -1495,7 +1494,7 @@ fs_visitor::emit_texture_gen7(ir_texture *ir, fs_reg dst,<br>
    }<br>
    int length = 0;<br>
<br>
-   if (ir->op == ir_tg4 || offset_value.file != BAD_FILE ||<br>
+   if (op == ir_tg4 || offset_value.file != BAD_FILE ||<br>
        is_high_sampler(brw, sampler)) {<br>
       /* For general texture offsets (no txf workaround), we need a header to<br>
        * put them in.  Note that for SIMD16 we're making space for two actual<br>
@@ -1522,7 +1521,7 @@ fs_visitor::emit_texture_gen7(ir_texture *ir, fs_reg dst,<br>
    bool coordinate_done = false;<br>
<br>
    /* Set up the LOD info */<br>
-   switch (ir->op) {<br>
+   switch (op) {<br>
    case ir_tex:<br>
    case ir_lod:<br>
       break;<br>
@@ -1656,7 +1655,7 @@ fs_visitor::emit_texture_gen7(ir_texture *ir, fs_reg dst,<br>
<br>
    /* Generate the SEND */<br>
    enum opcode opcode;<br>
-   switch (ir->op) {<br>
+   switch (op) {<br>
    case ir_tex: opcode = SHADER_OPCODE_TEX; break;<br>
    case ir_txb: opcode = FS_OPCODE_TXB; break;<br>
    case ir_txl: opcode = SHADER_OPCODE_TXL; break;<br>
@@ -2003,19 +2002,19 @@ fs_visitor::visit(ir_texture *ir)<br>
    fs_reg dst = fs_reg(this, glsl_type::get_instance(ir->type->base_type, 4, 1));<br>
<br>
    if (brw->gen >= 7) {<br>
-      inst = emit_texture_gen7(ir, dst, coordinate, coord_components,<br>
+      inst = emit_texture_gen7(ir->op, dst, coordinate, coord_components,<br>
                                shadow_comparitor,<br>
                                lod, lod2, grad_components,<br>
                                sample_index, mcs, sampler_reg,<br>
                                offset_value);<br>
    } else if (brw->gen >= 5) {<br>
-      inst = emit_texture_gen5(ir, dst, coordinate, coord_components,<br>
+      inst = emit_texture_gen5(ir->op, dst, coordinate, coord_components,<br>
                                shadow_comparitor,<br>
                                lod, lod2, grad_components,<br>
                                sample_index, sampler,<br>
                                ir->offset != NULL);<br>
    } else {<br>
-      inst = emit_texture_gen4(ir, dst, coordinate, coord_components,<br>
+      inst = emit_texture_gen4(ir->op, dst, coordinate, coord_components,<br>
                                shadow_comparitor,<br>
                                lod, lod2, grad_components,<br>
                                sampler);<br>
<span class="HOEnZb"><font color="#888888">--<br>
2.1.2<br>
<br>
_______________________________________________<br>
mesa-dev mailing list<br>
<a href="mailto:mesa-dev@lists.freedesktop.org">mesa-dev@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/mesa-dev" target="_blank">http://lists.freedesktop.org/mailman/listinfo/mesa-dev</a><br>
</font></span></blockquote></div><br></div></div>