return m_chip_class;
}
+bool ShaderFromNirProcessor::allocate_reserved_registers()
+{
+ bool retval = do_allocate_reserved_registers();
+ return retval;
+}
+
static void remap_shader_info(r600_shader& sh_info,
std::vector<rename_reg_pair>& map,
UNUSED ValueMap& values)
std::bitset<es_last> m_sv_values;
+ bool allocate_reserved_registers();
+
private:
- virtual bool allocate_reserved_registers() = 0;
+ virtual bool do_allocate_reserved_registers() = 0;
bool emit_alu_instruction(nir_instr *instr);
bool emit_deref_instruction(nir_deref_instr* instr);
{
return true;
}
-bool ComputeShaderFromNir::allocate_reserved_registers()
+bool ComputeShaderFromNir::do_allocate_reserved_registers()
{
int thread_id_sel = m_reserved_registers++;
int wg_id_sel = m_reserved_registers++;
private:
bool emit_intrinsic_instruction_override(nir_intrinsic_instr* instr) override;
- bool allocate_reserved_registers() override;
+ bool do_allocate_reserved_registers() override;
bool do_process_inputs(nir_variable *input) override;
bool do_process_outputs(nir_variable *output) override;
bool do_emit_load_deref(const nir_variable *in_var, nir_intrinsic_instr* instr) override;
return true;
}
-bool FragmentShaderFromNir::allocate_reserved_registers()
+bool FragmentShaderFromNir::do_allocate_reserved_registers()
{
assert(!m_reserved_registers);
void emit_shader_start() override;
bool do_process_inputs(nir_variable *input) override;
- bool allocate_reserved_registers() override;
+ bool do_allocate_reserved_registers() override;
bool do_process_outputs(nir_variable *output) override;
bool do_emit_load_deref(const nir_variable *in_var, nir_intrinsic_instr* instr) override;
bool do_emit_store_deref(const nir_variable *out_var, nir_intrinsic_instr* instr) override;
}
-bool GeometryShaderFromNir::allocate_reserved_registers()
+bool GeometryShaderFromNir::do_allocate_reserved_registers()
{
const int sel[6] = {0, 0 ,0, 1, 1, 1};
const int chan[6] = {0, 1 ,3, 0, 1, 2};
};
bool do_process_inputs(nir_variable *input) override;
- bool allocate_reserved_registers() override;
+ bool do_allocate_reserved_registers() override;
bool do_process_outputs(nir_variable *output) override;
bool emit_deref_instruction_override(nir_deref_instr* instr) override;
bool emit_intrinsic_instruction_override(nir_intrinsic_instr* instr) override;
return true;
}
-bool TcsShaderFromNir::allocate_reserved_registers()
+bool TcsShaderFromNir::do_allocate_reserved_registers()
{
if (m_sv_values.test(es_primitive_id)) {
m_reserved_registers = 1;
bool scan_sysvalue_access(nir_instr *instr) override;
private:
- bool allocate_reserved_registers() override;
+ bool do_allocate_reserved_registers() override;
bool emit_intrinsic_instruction_override(nir_intrinsic_instr* instr) override;
bool store_tess_factor(nir_intrinsic_instr* instr);
return true;
}
-bool TEvalShaderFromNir::allocate_reserved_registers()
+bool TEvalShaderFromNir::do_allocate_reserved_registers()
{
if (m_sv_values.test(es_tess_coord)) {
m_reserved_registers = 1;
bool scan_sysvalue_access(nir_instr *instr) override;
PValue primitive_id() override {return m_primitive_id;}
private:
- bool allocate_reserved_registers() override;
+ bool do_allocate_reserved_registers() override;
bool emit_intrinsic_instruction_override(nir_intrinsic_instr* instr) override;
bool emit_load_tess_coord(nir_intrinsic_instr* instr);
bool load_tess_z_coord(nir_intrinsic_instr* instr);
return false;
}
-bool VertexShaderFromNir::allocate_reserved_registers()
+bool VertexShaderFromNir::do_allocate_reserved_registers()
{
/* Since the vertex ID is nearly always used, we add it here as an input so
* that the registers used for vertex attributes don't get clobbered by the
void emit_shader_start() override;
bool do_process_inputs(nir_variable *input) override;
- bool allocate_reserved_registers() override;
+ bool do_allocate_reserved_registers() override;
bool do_process_outputs(nir_variable *output) override;
bool emit_intrinsic_instruction_override(nir_intrinsic_instr* instr) override;
bool emit_store_local_shared(nir_intrinsic_instr* instr);