From 28eadff6e489b99209dce441e160cde51ec9a03e Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Tue, 10 Feb 2026 09:43:35 -0800 Subject: [PATCH] freedreno/registers: Split out "blit" usage Signed-off-by: Rob Clark Part-of: --- src/freedreno/registers/adreno/a6xx.xml | 119 +++++++++--------- src/freedreno/vulkan/tu_device.cc | 2 + .../drivers/freedreno/a6xx/fd6_emit.cc | 1 + 3 files changed, 63 insertions(+), 59 deletions(-) diff --git a/src/freedreno/registers/adreno/a6xx.xml b/src/freedreno/registers/adreno/a6xx.xml index 052dc175834..bd94a00ce1a 100644 --- a/src/freedreno/registers/adreno/a6xx.xml +++ b/src/freedreno/registers/adreno/a6xx.xml @@ -20,6 +20,7 @@ currently there are following usages: roughly corresponds to registers used in ib1 for Freedreno - "rp_blit" - the register is used inside renderpass or blits (ib2 for Freedreno) +- "blit" - used by CP_BLIT cmds It is expected that register with "cmd" usage may be written into only at the start of the command buffer (ib1), while "rp_blit" usage indicates that register @@ -2170,32 +2171,32 @@ by a particular renderpass/blit. - + - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - + + + + + + + + + @@ -2749,8 +2750,8 @@ by a particular renderpass/blit. - - + + @@ -2782,26 +2783,26 @@ by a particular renderpass/blit. - - - + + + - - - + + + - - + + - - + + - - - - + + + + @@ -4314,8 +4315,8 @@ by a particular renderpass/blit. - - + + @@ -4410,7 +4411,7 @@ by a particular renderpass/blit. - + @@ -4462,25 +4463,25 @@ by a particular renderpass/blit. badly named or the functionality moved in a6xx. But downstream kernel calls this "a6xx_sp_ps_tp_2d_cluster" --> - - + + - - + + - + - + - + - - - + + + - - - + + + - - + + - - + + @@ -4519,10 +4520,10 @@ by a particular renderpass/blit. - + - + diff --git a/src/freedreno/vulkan/tu_device.cc b/src/freedreno/vulkan/tu_device.cc index e4d20ae61b5..fd7d4ce5e7d 100644 --- a/src/freedreno/vulkan/tu_device.cc +++ b/src/freedreno/vulkan/tu_device.cc @@ -2523,6 +2523,8 @@ tu_cs_dbg_stomp_regs(struct tu_cs *cs, if (is_rp_blit) { stomp_regs(cs, &RP_BLIT_REGS[0], ARRAY_SIZE(RP_BLIT_REGS), first_reg, last_reg, inverse); + stomp_regs(cs, &BLIT_REGS[0], ARRAY_SIZE(BLIT_REGS), + first_reg, last_reg, inverse); } else { stomp_regs(cs, &CMD_REGS[0], ARRAY_SIZE(CMD_REGS), first_reg, last_reg, inverse); diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_emit.cc b/src/gallium/drivers/freedreno/a6xx/fd6_emit.cc index 61fd47673b8..e524a3aa30f 100644 --- a/src/gallium/drivers/freedreno/a6xx/fd6_emit.cc +++ b/src/gallium/drivers/freedreno/a6xx/fd6_emit.cc @@ -1101,6 +1101,7 @@ fd6_emit_restore(fd_cs &cs, struct fd_batch *batch) if (FD_DBG(STOMP)) { fd6_emit_stomp(cs, &RP_BLIT_REGS[0], ARRAY_SIZE(RP_BLIT_REGS)); + fd6_emit_stomp(cs, &BLIT_REGS[0], ARRAY_SIZE(BLIT_REGS)); fd6_emit_stomp(cs, &CMD_REGS[0], ARRAY_SIZE(CMD_REGS)); }