Module: Mesa
Branch: main
Commit: b1e9065fe4130338fa1de78c97b846e289fd570f
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=b1e9065fe4130338fa1de78c97b846e289fd570f

Author: Gert Wollny <[email protected]>
Date:   Mon Oct 31 17:04:47 2022 +0100

r600/sfn: remove load_uniform handling

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

---

 src/gallium/drivers/r600/sfn/sfn_shader.cpp | 54 -----------------------------
 src/gallium/drivers/r600/sfn/sfn_shader.h   |  6 ----
 2 files changed, 60 deletions(-)

diff --git a/src/gallium/drivers/r600/sfn/sfn_shader.cpp 
b/src/gallium/drivers/r600/sfn/sfn_shader.cpp
index 8d6e221cdd1..666ca5ffaea 100644
--- a/src/gallium/drivers/r600/sfn/sfn_shader.cpp
+++ b/src/gallium/drivers/r600/sfn/sfn_shader.cpp
@@ -821,8 +821,6 @@ Shader::process_intrinsic(nir_intrinsic_instr *intr)
       return store_output(intr);
    case nir_intrinsic_load_input:
       return load_input(intr);
-   case nir_intrinsic_load_uniform:
-      return load_uniform(intr);
    case nir_intrinsic_load_ubo_vec4:
       return load_ubo(intr);
    case nir_intrinsic_store_scratch:
@@ -1173,58 +1171,6 @@ Shader::emit_instruction(PInst instr)
    m_current_block->push_back(instr);
 }
 
-bool
-Shader::load_uniform(nir_intrinsic_instr *intr)
-{
-   auto literal = nir_src_as_const_value(intr->src[0]);
-
-   if (literal) {
-      AluInstr *ir = nullptr;
-      auto pin = intr->dest.is_ssa && nir_dest_num_components(intr->dest) == 1 
? pin_free
-                                                                               
: pin_none;
-      for (unsigned i = 0; i < nir_dest_num_components(intr->dest); ++i) {
-
-         sfn_log << SfnLog::io << "uniform " << intr->dest.ssa.index << " 
const[" << i
-                 << "]: " << intr->const_index[i] << "\n";
-
-         auto uniform = value_factory().uniform(intr, i);
-         ir = new AluInstr(op1_mov,
-                           value_factory().dest(intr->dest, i, pin),
-                           uniform,
-                           {alu_write});
-         emit_instruction(ir);
-      }
-      if (ir)
-         ir->set_alu_flag(alu_last_instr);
-      return true;
-   } else {
-      auto addr = value_factory().src(intr->src[0], 0);
-      return load_uniform_indirect(intr, addr, 16 * nir_intrinsic_base(intr), 
0);
-   }
-}
-
-bool
-Shader::load_uniform_indirect(nir_intrinsic_instr *intr,
-                              PVirtualValue addr,
-                              int offset,
-                              int buffer_id)
-{
-   auto addr_reg = addr->as_register();
-   if (!addr) {
-      auto tmp = value_factory().temp_register();
-      emit_instruction(new AluInstr(op1_mov, tmp, addr, AluInstr::last_write));
-      addr = tmp;
-   }
-
-   RegisterVec4 dest = value_factory().dest_vec4(intr->dest, pin_group);
-
-   auto ir = new LoadFromBuffer(
-      dest, {0, 1, 2, 3}, addr_reg, offset, buffer_id, nullptr, 
fmt_32_32_32_32_float);
-   emit_instruction(ir);
-   m_flags.set(sh_indirect_const_file);
-   return true;
-}
-
 bool
 Shader::emit_load_tcs_param_base(nir_intrinsic_instr *instr, int offset)
 {
diff --git a/src/gallium/drivers/r600/sfn/sfn_shader.h 
b/src/gallium/drivers/r600/sfn/sfn_shader.h
index 2e5dd60cacc..9d7dfa73c0f 100644
--- a/src/gallium/drivers/r600/sfn/sfn_shader.h
+++ b/src/gallium/drivers/r600/sfn/sfn_shader.h
@@ -164,7 +164,6 @@ public:
    virtual bool load_input(nir_intrinsic_instr *intr) = 0;
    virtual bool store_output(nir_intrinsic_instr *intr) = 0;
 
-   bool load_uniform(nir_intrinsic_instr *intr);
    bool load_ubo(nir_intrinsic_instr *intr);
 
    ValueFactory& value_factory();
@@ -284,11 +283,6 @@ private:
 
    bool read_chipclass(std::istream& is);
 
-   bool load_uniform_indirect(nir_intrinsic_instr *intr,
-                              PVirtualValue addr,
-                              int offset,
-                              int buffer_id);
-
    bool scan_shader(const nir_function *impl);
    bool scan_uniforms(nir_variable *uniform);
    void allocate_reserved_registers();

Reply via email to