summaryrefslogtreecommitdiffstats
path: root/src/mesa
diff options
context:
space:
mode:
authorConnor Abbott <[email protected]>2014-08-04 13:49:34 -0700
committerKenneth Graunke <[email protected]>2014-10-15 17:05:25 -0700
commit70fa53be5ec5d46b41f0f81297f111fd8dc410b7 (patch)
tree3bd193c366a929083cdf045f66831c153da1ab3f /src/mesa
parentb17f571945d0bb6085bed50f2deaafab274ffac3 (diff)
i965/fs: don't make a fake ir_texture in the Mesa IR frontend
Now that we've made all the texture emit code mostly independent of GLSL IR, this isn't necessary any more. Signed-off-by: Connor Abbott <[email protected]> Reviewed-by: Kenneth Graunke <[email protected]> Reviewed-by: Chris Forbes <[email protected]>
Diffstat (limited to 'src/mesa')
-rw-r--r--src/mesa/drivers/dri/i965/brw_fs_fp.cpp19
1 files changed, 5 insertions, 14 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_fs_fp.cpp b/src/mesa/drivers/dri/i965/brw_fs_fp.cpp
index 1ba24a9170e..6348bc1bdae 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_fp.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_fp.cpp
@@ -391,14 +391,7 @@ fs_visitor::emit_fragment_program_code()
case OPCODE_TEX:
case OPCODE_TXB:
case OPCODE_TXP: {
- /* We piggy-back on the GLSL IR support for texture setup. To do so,
- * we have to cook up an ir_texture that has the coordinate field
- * with appropriate type, and shadow_comparitor set or not. All the
- * other properties of ir_texture are passed in as arguments to the
- * emit_texture_gen* function.
- */
- ir_texture *ir = NULL;
-
+ ir_texture_opcode op;
fs_reg lod;
fs_reg dpdy;
fs_reg coordinate = src[0];
@@ -408,10 +401,10 @@ fs_visitor::emit_fragment_program_code()
switch (fpi->Opcode) {
case OPCODE_TEX:
- ir = new(mem_ctx) ir_texture(ir_tex);
+ op = ir_tex;
break;
case OPCODE_TXP: {
- ir = new(mem_ctx) ir_texture(ir_tex);
+ op = ir_tex;
coordinate = fs_reg(this, glsl_type::vec3_type);
fs_reg invproj = fs_reg(this, glsl_type::float_type);
@@ -423,15 +416,13 @@ fs_visitor::emit_fragment_program_code()
break;
}
case OPCODE_TXB:
- ir = new(mem_ctx) ir_texture(ir_txb);
+ op = ir_txb;
lod = offset(src[0], 3);
break;
default:
unreachable("not reached");
}
- ir->type = glsl_type::vec4_type;
-
const glsl_type *coordinate_type;
switch (fpi->TexSrcTarget) {
case TEXTURE_1D_INDEX:
@@ -479,7 +470,7 @@ fs_visitor::emit_fragment_program_code()
if (fpi->TexShadow)
shadow_c = offset(coordinate, 2);
- emit_texture(ir->op, glsl_type::vec4_type, coordinate, coordinate_type,
+ emit_texture(op, glsl_type::vec4_type, coordinate, coordinate_type,
shadow_c, lod, dpdy, 0, sample_index,
reg_undef, 0, /* offset, components */
reg_undef, /* mcs */