Module: Mesa
Branch: master
Commit: 23b87b56b6f3454a8c746f04b5b13a48e5003ebe
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=23b87b56b6f3454a8c746f04b5b13a48e5003ebe

Author: Gert Wollny <[email protected]>
Date:   Mon Jan  4 09:55:40 2021 +0100

r600/sfn: remove old cube texturing code

Signed-off-by: Gert Wollny <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9302>

---

 .../drivers/r600/sfn/sfn_emittexinstruction.cpp    | 354 +--------------------
 .../drivers/r600/sfn/sfn_emittexinstruction.h      |  10 -
 2 files changed, 1 insertion(+), 363 deletions(-)

diff --git a/src/gallium/drivers/r600/sfn/sfn_emittexinstruction.cpp 
b/src/gallium/drivers/r600/sfn/sfn_emittexinstruction.cpp
index f17e7f5f90f..906c9c72268 100644
--- a/src/gallium/drivers/r600/sfn/sfn_emittexinstruction.cpp
+++ b/src/gallium/drivers/r600/sfn/sfn_emittexinstruction.cpp
@@ -43,30 +43,7 @@ bool EmitTexInstruction::do_emit(nir_instr* instr)
    if (!get_inputs(*ir, src))
       return false;
 
-   if (ir->sampler_dim == GLSL_SAMPLER_DIM_CUBE) {
-      switch (ir->op) {
-      case nir_texop_tex:
-         return emit_cube_tex(ir, src);
-      case nir_texop_txf:
-         return emit_cube_txf(ir, src);
-      case nir_texop_txb:
-         return emit_cube_txb(ir, src);
-      case nir_texop_txl:
-         return emit_cube_txl(ir, src);
-      case nir_texop_txs:
-         return emit_tex_txs(ir, src, {0,1,2,3});
-      case nir_texop_txd:
-         return emit_cube_txd(ir, src);
-      case nir_texop_lod:
-         return emit_cube_lod(ir, src);
-      case nir_texop_tg4:
-         return emit_cube_tg4(ir, src);
-      case nir_texop_query_levels:
-         return emit_tex_txs(ir, src, {3,7,7,7});
-      default:
-         return false;
-      }
-   } else if (ir->sampler_dim == GLSL_SAMPLER_DIM_BUF) {
+   if (ir->sampler_dim == GLSL_SAMPLER_DIM_BUF) {
       switch (ir->op) {
       case nir_texop_txf:
          return emit_buf_txf(ir, src);
@@ -106,290 +83,6 @@ bool EmitTexInstruction::do_emit(nir_instr* instr)
    }
 }
 
-bool EmitTexInstruction::emit_cube_txf(UNUSED nir_tex_instr* instr, UNUSED 
TexInputs &src)
-{
-   return false;
-}
-
-bool EmitTexInstruction::emit_cube_txd(nir_tex_instr* instr, TexInputs& 
tex_src)
-{
-
-   assert(instr->src[0].src.is_ssa);
-
-   r600::sfn_log << SfnLog::instr << "emit '"
-                 << *reinterpret_cast<nir_instr*>(instr)
-                 << "' (" << __func__ << ")\n";
-
-   auto tex_op = TexInstruction::sample_g;
-
-   std::array<PValue, 4> v;
-   for (int i = 0; i < 4; ++i)
-      v[i] = from_nir(instr->dest, i);
-
-   GPRVector cubed(v);
-   emit_cube_prep(tex_src.coord, cubed, instr->is_array);
-
-   std::array<PValue,4> dst_elms;
-   std::array<PValue,4> src_elms;
-
-   const uint16_t lookup[4] = {1, 0, 3, 2};
-   for (uint16_t i = 0; i < 4; ++i) {
-      dst_elms[i] = v[i];
-      src_elms[i] = cubed.reg_i(lookup[i]);
-   }
-
-   GPRVector empty_dst(0, {7,7,7,7});
-
-   if (instr->is_shadow)  {
-      emit_instruction(new AluInstruction(op1_mov, src_elms[3], 
tex_src.comperator,
-                       {alu_last_instr, alu_write}));
-      tex_op = TexInstruction::sample_c_g;
-   }
-
-
-   PValue half(new LiteralValue(0.5f));
-   for (int i = 0; i < 3; ++i) {
-      emit_instruction(new AluInstruction(op2_mul_ieee, tex_src.ddx.reg_i(i), 
{tex_src.ddx.reg_i(i), half},
-      {alu_last_instr, alu_write}));
-   }
-   for (int i = 0; i < 3; ++i) {
-      emit_instruction(new AluInstruction(op2_mul_ieee, tex_src.ddy.reg_i(i), 
{tex_src.ddy.reg_i(i), half},
-      {alu_last_instr, alu_write}));
-   }
-
-   auto sampler = get_sampler_id(instr->sampler_index, tex_src.sampler_deref);
-   assert(!sampler.indirect);
-
-   TexInstruction *irgh = new TexInstruction(TexInstruction::set_gradient_h, 
empty_dst, tex_src.ddx,
-                                             sampler.id, sampler.id + 
R600_MAX_CONST_BUFFERS, tex_src.sampler_offset);
-   irgh->set_dest_swizzle({7,7,7,7});
-
-   TexInstruction *irgv = new TexInstruction(TexInstruction::set_gradient_v, 
empty_dst, tex_src.ddy,
-                           sampler.id, sampler.id + R600_MAX_CONST_BUFFERS, 
tex_src.sampler_offset);
-   irgv->set_dest_swizzle({7,7,7,7});
-
-   GPRVector dst(dst_elms);
-   GPRVector src(src_elms);
-   TexInstruction *ir = new TexInstruction(tex_op, dst, src, 
instr->sampler_index,
-                                 sampler.id + R600_MAX_CONST_BUFFERS, 
tex_src.sampler_offset);
-
-   set_rect_coordinate_flags(instr, ir);
-   //set_offsets(ir, tex_src.offset);
-
-   emit_instruction(irgh);
-   emit_instruction(irgv);
-   emit_instruction(ir);
-   return true;
-}
-
-
-bool EmitTexInstruction::emit_cube_txl(nir_tex_instr* instr, TexInputs& 
tex_src)
-{
-   assert(instr->src[0].src.is_ssa);
-
-   if (instr->is_shadow)
-      return false;
-
-   r600::sfn_log << SfnLog::instr << "emit '"
-                 << *reinterpret_cast<nir_instr*>(instr)
-                 << "' (" << __func__ << ")\n";
-
-   std::array<PValue, 4> v;
-   for (int i = 0; i < 4; ++i)
-      v[i] = from_nir(instr->dest, i);
-
-   GPRVector cubed(v);
-   emit_cube_prep(tex_src.coord, cubed, instr->is_array);
-
-   std::array<PValue,4> dst_elms;
-   std::array<PValue,4> src_elms;
-
-   const uint16_t lookup[4] = {1, 0, 3, 2};
-   for (uint16_t i = 0; i < 4; ++i) {
-      dst_elms[i] = v[i];
-      src_elms[i] = cubed.reg_i(lookup[i]);
-   }
-
-   auto *ir = new AluInstruction(op1_mov, src_elms[3], tex_src.lod,
-                                 {alu_last_instr, alu_write});
-   emit_instruction(ir);
-
-   GPRVector src(src_elms);
-   GPRVector dst(dst_elms);
-
-   auto sampler = get_sampler_id(instr->sampler_index, tex_src.sampler_deref);
-   assert(!sampler.indirect);
-
-   auto tir = new TexInstruction(TexInstruction::sample_l, dst, src,
-                                 sampler.id,sampler.id + 
R600_MAX_CONST_BUFFERS,
-                                 tex_src.sampler_offset);
-
-   if (instr->is_array)
-      tir->set_flag(TexInstruction::z_unnormalized);
-
-   emit_instruction(tir);
-   return true;
-}
-
-bool EmitTexInstruction::emit_cube_lod(nir_tex_instr* instr, TexInputs& src)
-{
-   auto tex_op = TexInstruction::get_tex_lod;
-
-   std::array<PValue, 4> v;
-   for (int i = 0; i < 4; ++i)
-      v[i] = from_nir(instr->dest, i);
-
-   GPRVector cubed(v);
-   emit_cube_prep(src.coord, cubed, instr->is_array);
-
-   auto sampler = get_sampler_id(instr->sampler_index, src.sampler_deref);
-   assert(!sampler.indirect);
-
-   auto dst = make_dest(*instr);
-   auto irt = new TexInstruction(tex_op, dst, cubed, sampler.id,
-                                 sampler.id + R600_MAX_CONST_BUFFERS,
-                                 src.sampler_offset);
-
-   emit_instruction(irt);
-   return true;
-
-}
-
-
-bool EmitTexInstruction::emit_cube_txb(nir_tex_instr* instr, TexInputs& 
tex_src)
-{
-   assert(instr->src[0].src.is_ssa);
-
-   r600::sfn_log << SfnLog::instr << "emit '"
-                 << *reinterpret_cast<nir_instr*>(instr)
-                 << "' (" << __func__ << ")\n";
-
-   std::array<PValue, 4> v;
-   for (int i = 0; i < 4; ++i)
-      v[i] = from_nir(instr->dest, i);
-
-   GPRVector cubed(v);
-   emit_cube_prep(tex_src.coord, cubed, instr->is_array);
-
-   std::array<PValue,4> dst_elms;
-   std::array<PValue,4> src_elms;
-
-   const uint16_t lookup[4] = {1, 0, 3, 2};
-   for (uint16_t i = 0; i < 4; ++i) {
-      dst_elms[i] = v[i];
-      src_elms[i] = v[lookup[i]];
-   }
-
-   GPRVector src(src_elms);
-   GPRVector dst(dst_elms);
-
-   auto tex_op = TexInstruction::sample_lb;
-   if (!instr->is_shadow)  {
-      emit_instruction(new AluInstruction(op1_mov, src_elms[3], tex_src.bias,
-                                          {alu_last_instr, alu_write}));
-   } else {
-      emit_instruction(new AluInstruction(op1_mov, src_elms[3], 
tex_src.comperator,
-                       {alu_last_instr, alu_write}));
-      tex_op = TexInstruction::sample_c_lb;
-   }
-
-   auto sampler = get_sampler_id(instr->sampler_index, tex_src.sampler_deref);
-   assert(!sampler.indirect && "Indirect sampler selection not yet supported");
-
-   auto tir = new TexInstruction(tex_op, dst, src,
-                                 sampler.id,
-                                 sampler.id + R600_MAX_CONST_BUFFERS, 
tex_src.sampler_offset);
-   emit_instruction(tir);
-   return true;
-
-}
-
-bool EmitTexInstruction::emit_cube_tex(nir_tex_instr* instr, TexInputs& 
tex_src)
-{
-   std::array<PValue, 4> v;
-   for (int i = 0; i < 4; ++i)
-      v[i] = from_nir(instr->dest, i);
-
-   auto tex_op = TexInstruction::sample;
-   GPRVector cubed(v);
-   emit_cube_prep(tex_src.coord, cubed, instr->is_array);
-
-   std::array<PValue,4> dst_elms;
-   std::array<PValue,4> src_elms;
-
-   const uint16_t lookup[4] = {1, 0, 3, 2};
-   for (uint16_t i = 0; i < 4; ++i) {
-      dst_elms[i] = v[i];
-      src_elms[i] = v[lookup[i]];
-   }
-
-   if (instr->is_shadow)  {
-      emit_instruction(new AluInstruction(op1_mov, src_elms[3], 
tex_src.comperator,
-                       {alu_last_instr, alu_write}));
-      tex_op = TexInstruction::sample_c;
-   }
-
-   GPRVector dst(dst_elms);
-   GPRVector src(src_elms);
-
-   auto sampler = get_sampler_id(instr->sampler_index, tex_src.sampler_deref);
-   assert(!sampler.indirect && "Indirect sampler selection not yet supported");
-
-   auto tir = new TexInstruction(tex_op, dst, src,
-                                 sampler.id,
-                                 sampler.id + R600_MAX_CONST_BUFFERS, 
tex_src.sampler_offset);
-   if (instr->is_array)
-      tir->set_flag(TexInstruction::z_unnormalized);
-
-   emit_instruction(tir);
-   return true;
-
-}
-
-bool EmitTexInstruction::emit_cube_prep(const GPRVector& coord, GPRVector& 
cubed, bool is_array)
-{
-   AluInstruction *ir = nullptr;
-   const uint16_t src0_chan[4] = {2, 2, 0, 1};
-   const uint16_t src1_chan[4] = {1, 0, 2, 2};
-
-   for (int i = 0; i < 4; ++i)  {
-      ir = new AluInstruction(op2_cube, cubed.reg_i(i), 
coord.reg_i(src0_chan[i]),
-                              coord.reg_i(src1_chan[i]), {alu_write});
-
-      emit_instruction(ir);
-   }
-   ir->set_flag(alu_last_instr);
-
-   ir = new AluInstruction(op1_recip_ieee, cubed.reg_i(2), cubed.reg_i(2), 
{alu_write, alu_last_instr});
-   ir->set_flag(alu_src0_abs);
-   emit_instruction(ir);
-
-   PValue one_p_5(new LiteralValue(1.5f));
-   for (int i = 0; i < 2; ++i)  {
-      ir = new AluInstruction(op3_muladd, cubed.reg_i(i), cubed.reg_i(i), 
cubed.reg_i(2),
-                              one_p_5, {alu_write});
-      emit_instruction(ir);
-   }
-   ir->set_flag(alu_last_instr);
-
-   if (is_array) {
-      auto face = cubed.reg_i(3);
-      PValue array_index = get_temp_register();
-
-      ir = new AluInstruction(op1_rndne, array_index, coord.reg_i(3), 
{alu_write, alu_last_instr});
-      emit_instruction(ir);
-
-      ir = new AluInstruction(op2_max, array_index, {array_index, 
Value::zero}, {alu_write, alu_last_instr});
-      emit_instruction(ir);
-
-      ir = new AluInstruction(op3_muladd, face, {array_index, PValue (new 
LiteralValue(8.0f)), face},
-                              {alu_write, alu_last_instr});
-      emit_instruction(ir);
-   }
-
-   return true;
-}
-
 bool EmitTexInstruction::emit_buf_txf(nir_tex_instr* instr, TexInputs &src)
 {
    auto dst = make_dest(*instr);
@@ -740,51 +433,6 @@ bool EmitTexInstruction::emit_tex_tg4(nir_tex_instr* 
instr, TexInputs& src)
    return true;
 }
 
-bool EmitTexInstruction::emit_cube_tg4(nir_tex_instr* instr, TexInputs& 
tex_src)
-{
-   std::array<PValue, 4> v;
-   for (int i = 0; i < 4; ++i)
-      v[i] = from_nir(instr->dest, i);
-
-   auto tex_op = TexInstruction::gather4;
-   GPRVector cubed(v);
-   emit_cube_prep(tex_src.coord, cubed, instr->is_array);
-
-   std::array<PValue,4> dst_elms;
-   std::array<PValue,4> src_elms;
-
-   const uint16_t lookup[4] = {1, 0, 3, 2};
-   for (uint16_t i = 0; i < 4; ++i) {
-      dst_elms[i] = v[i];
-      src_elms[i] = v[lookup[i]];
-   }
-
-   if (instr->is_shadow)  {
-      emit_instruction(new AluInstruction(op1_mov, src_elms[3], 
tex_src.comperator,
-                       {alu_last_instr, alu_write}));
-      tex_op = TexInstruction::gather4_c;
-   }
-
-   GPRVector dst(dst_elms);
-   GPRVector src(src_elms);
-
-   auto sampler = get_sampler_id(instr->sampler_index, tex_src.sampler_deref);
-   assert(!sampler.indirect && "Indirect sampler selection not yet supported");
-
-   auto tir = new TexInstruction(tex_op, dst, src, sampler.id,
-                                 sampler.id + R600_MAX_CONST_BUFFERS, 
tex_src.sampler_offset);
-
-   tir->set_gather_comp(instr->component);
-
-   tir->set_dest_swizzle({1, 2, 0, 3});
-
-   if (instr->is_array)
-      tir->set_flag(TexInstruction::z_unnormalized);
-
-   emit_instruction(tir);
-   return true;
-}
-
 bool EmitTexInstruction::emit_tex_txf_ms(nir_tex_instr* instr, TexInputs& src)
 {
    assert(instr->src[0].src.is_ssa);
diff --git a/src/gallium/drivers/r600/sfn/sfn_emittexinstruction.h 
b/src/gallium/drivers/r600/sfn/sfn_emittexinstruction.h
index 2ed0e0e2f35..e11ebda1cb1 100644
--- a/src/gallium/drivers/r600/sfn/sfn_emittexinstruction.h
+++ b/src/gallium/drivers/r600/sfn/sfn_emittexinstruction.h
@@ -55,16 +55,6 @@ private:
       PValue texture_offset;
    };
 
-
-   bool emit_cube_tex(nir_tex_instr* instr, TexInputs& src);
-   bool emit_cube_txf(nir_tex_instr* instr, TexInputs& src);
-   bool emit_cube_txb(nir_tex_instr* instr, TexInputs& src);
-   bool emit_cube_txl(nir_tex_instr* instr, TexInputs& src);
-   bool emit_cube_txd(nir_tex_instr* instr, TexInputs& src);
-   bool emit_cube_lod(nir_tex_instr* instr, TexInputs& src);
-   bool emit_cube_tg4(nir_tex_instr* instr, TexInputs& src);
-   bool emit_cube_prep(const GPRVector& coord, GPRVector& cubed, bool 
is_array);
-
    bool emit_tex_tex(nir_tex_instr* instr, TexInputs& src);
 
    bool emit_tex_txf(nir_tex_instr* instr, TexInputs &src);

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to