mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 02:48:06 +02:00
aco: resolve hazards before calls
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Backport-to: 26.0
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
(cherry picked from commit 613b4fe407)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40092>
This commit is contained in:
parent
697fbaddb5
commit
ba82a16761
2 changed files with 4 additions and 4 deletions
|
|
@ -644,7 +644,7 @@
|
|||
"description": "aco: resolve hazards before calls",
|
||||
"nominated": true,
|
||||
"nomination_type": 4,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"main_sha": null,
|
||||
"because_sha": null,
|
||||
"notes": null
|
||||
|
|
|
|||
|
|
@ -1914,7 +1914,9 @@ handle_block(Program* program, Ctx& ctx, Block& block)
|
|||
Handle(state, ctx, instr, block.instructions);
|
||||
|
||||
/* Resolve all possible hazards (we don't know what s_setpc_b64 jumps to). */
|
||||
if (instr->opcode == aco_opcode::s_setpc_b64) {
|
||||
if (instr->opcode == aco_opcode::s_setpc_b64 || instr->opcode == aco_opcode::s_swappc_b64 ||
|
||||
instr->opcode == aco_opcode::s_call_b64) {
|
||||
found_end |= instr->opcode == aco_opcode::s_setpc_b64;
|
||||
block.instructions.emplace_back(std::move(instr));
|
||||
|
||||
std::vector<aco_ptr<Instruction>> resolve_instrs;
|
||||
|
|
@ -1922,8 +1924,6 @@ handle_block(Program* program, Ctx& ctx, Block& block)
|
|||
block.instructions.insert(std::prev(block.instructions.end()),
|
||||
std::move_iterator(resolve_instrs.begin()),
|
||||
std::move_iterator(resolve_instrs.end()));
|
||||
|
||||
found_end = true;
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue