mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 02:20:11 +01:00
r600/sfn: chain group barrier and predicate instructions
It seems they can not be emitted in the same ALU group Signed-off-by: Gert Wollny <gert.wollny@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37096>
This commit is contained in:
parent
f9ae43bf04
commit
6cc25b15a1
2 changed files with 8 additions and 2 deletions
|
|
@ -1439,7 +1439,6 @@ void Shader::InstructionChain::visit(AluInstr *instr)
|
|||
if (last_ssbo_instr)
|
||||
instr->add_required_instr(last_ssbo_instr);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void
|
||||
|
|
@ -1448,6 +1447,13 @@ Shader::InstructionChain::visit(ScratchIOInstr *instr)
|
|||
apply(instr, &last_scratch_instr);
|
||||
}
|
||||
|
||||
void
|
||||
Shader::InstructionChain::visit(IfInstr *instr)
|
||||
{
|
||||
if (last_group_barrier)
|
||||
instr->predicate()->add_required_instr(last_group_barrier);
|
||||
}
|
||||
|
||||
void
|
||||
Shader::InstructionChain::visit(GDSInstr *instr)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -380,7 +380,6 @@ private:
|
|||
void visit(FetchInstr *instr) override { (void)instr; }
|
||||
void visit(Block *instr) override { (void)instr; }
|
||||
void visit(ControlFlowInstr *instr) override { (void)instr; }
|
||||
void visit(IfInstr *instr) override { (void)instr; }
|
||||
void visit(StreamOutInstr *instr) override { (void)instr; }
|
||||
void visit(MemRingOutInstr *instr) override { (void)instr; }
|
||||
void visit(EmitVertexInstr *instr) override { (void)instr; }
|
||||
|
|
@ -388,6 +387,7 @@ private:
|
|||
void visit(LDSAtomicInstr *instr) override { (void)instr; }
|
||||
void visit(LDSReadInstr *instr) override { (void)instr; }
|
||||
|
||||
void visit(IfInstr *instr) override;
|
||||
void visit(AluInstr *instr) override;
|
||||
void visit(ScratchIOInstr *instr) override;
|
||||
void visit(GDSInstr *instr) override;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue