r600/sfn: Make address split pass obligatory

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25159>
This commit is contained in:
Gert Wollny
2023-09-15 20:41:56 +02:00
committed by Marge Bot
parent f16582b654
commit 552e9ddcc4
4 changed files with 4 additions and 12 deletions
@@ -450,9 +450,7 @@ AssamblerVisitor::visit(const AluGroup& group)
if (group.slots() == 0)
return;
static const unsigned slot_limit = r600::sfn_log.has_debug_flag(r600::SfnLog::noaddrsplit) ?
248 : 256;
static const unsigned slot_limit = 256;
if (m_bc->cf_last && !m_bc->force_add_cf) {
if (group.has_lds_group_start()) {
@@ -478,7 +476,6 @@ AssamblerVisitor::visit(const AluGroup& group)
instr->opcode() == op0_group_barrier && m_bc->cf_last->ndw + 14 > slot_limit) {
assert(0 && "Not allowed to start new alu group here");
assert(m_bc->cf_last->nlds_read == 0);
assert(r600::sfn_log.has_debug_flag(r600::SfnLog::noaddrsplit));
m_bc->force_add_cf = 1;
m_last_addr = nullptr;
}
@@ -65,7 +65,6 @@ static const struct debug_named_value sfn_debug_options[] = {
{"opt", SfnLog::opt, "Log optimization" },
{"steps", SfnLog::steps, "Log shaders at transformation steps" },
{"noopt", SfnLog::noopt, "Don't run backend optimizations" },
{"noaddrsplit", SfnLog::noaddrsplit, "Don't split address loads early" },
{"warn" , SfnLog::warn, "Print warnings" },
DEBUG_NAMED_VALUE_END
};
-1
View File
@@ -70,7 +70,6 @@ public:
nomerge = 1 << 16,
steps = 1 << 17,
noopt = 1 << 18,
noaddrsplit = 1 << 19,
warn = 1 << 20,
};
+3 -6
View File
@@ -965,8 +965,7 @@ r600_shader_from_nir(struct r600_context *rctx,
}
}
if (!r600::sfn_log.has_debug_flag(r600::SfnLog::noaddrsplit))
split_address_loads(*shader);
split_address_loads(*shader);
if (r600::sfn_log.has_debug_flag(r600::SfnLog::steps)) {
std::cerr << "Shader after splitting address loads\n";
@@ -1020,10 +1019,8 @@ r600_shader_from_nir(struct r600_context *rctx,
/* We already schedule the code with this in mind, no need to handle this
* in the backend assembler */
if (!r600::sfn_log.has_debug_flag(r600::SfnLog::noaddrsplit)) {
pipeshader->shader.bc.ar_handling = AR_HANDLE_NORMAL;
pipeshader->shader.bc.r6xx_nop_after_rel_dst = 0;
}
pipeshader->shader.bc.ar_handling = AR_HANDLE_NORMAL;
pipeshader->shader.bc.r6xx_nop_after_rel_dst = 0;
r600::sfn_log << r600::SfnLog::shader_info << "pipeshader->shader.processor_type = "
<< pipeshader->shader.processor_type << "\n";