aco: add new pseudo instruction p_jump_to_epilog

The first operand of this new pseudo-instruction is a 64-bit SGPR for
the continue PC, followed by a variable list of fixed VGPRS for the
color exports which are the PS epilog inputs.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17485>
This commit is contained in:
Samuel Pitoiset
2022-06-24 14:17:29 +02:00
committed by Marge Bot
parent 0fd3754c26
commit 8bdcc20815
5 changed files with 23 additions and 3 deletions
+3 -2
View File
@@ -359,9 +359,10 @@ force_waitcnt(wait_ctx& ctx, wait_imm& imm)
void
kill(wait_imm& imm, Instruction* instr, wait_ctx& ctx, memory_sync_info sync_info)
{
if (debug_flags & DEBUG_FORCE_WAITCNT) {
if (instr->opcode == aco_opcode::s_setpc_b64 || (debug_flags & DEBUG_FORCE_WAITCNT)) {
/* Force emitting waitcnt states right after the instruction if there is
* something to wait for.
* something to wait for. This is also applied for s_setpc_b64 to ensure
* waitcnt states are inserted before jumping to the PS epilog.
*/
force_waitcnt(ctx, imm);
}