diff options
author | Connor Abbott <[email protected]> | 2014-08-04 13:49:34 -0700 |
---|---|---|
committer | Kenneth Graunke <[email protected]> | 2014-10-15 17:05:25 -0700 |
commit | 70fa53be5ec5d46b41f0f81297f111fd8dc410b7 (patch) | |
tree | 3bd193c366a929083cdf045f66831c153da1ab3f /src/mesa | |
parent | b17f571945d0bb6085bed50f2deaafab274ffac3 (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.cpp | 19 |
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 */ |