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();
