diff --git a/src/freedreno/common/freedreno_dev_info.h b/src/freedreno/common/freedreno_dev_info.h index 35e17af644a..3862d242b94 100644 --- a/src/freedreno/common/freedreno_dev_info.h +++ b/src/freedreno/common/freedreno_dev_info.h @@ -185,6 +185,8 @@ struct fd_dev_info { uint32_t RB_UNKNOWN_8E01; uint32_t VPC_DBG_ECO_CNTL; uint32_t UCHE_UNKNOWN_0E12; + + uint32_t RB_UNKNOWN_8E06; } magic; struct { diff --git a/src/freedreno/common/freedreno_devices.py b/src/freedreno/common/freedreno_devices.py index babec02142d..6f5f65a9c89 100644 --- a/src/freedreno/common/freedreno_devices.py +++ b/src/freedreno/common/freedreno_devices.py @@ -800,7 +800,9 @@ a730_magic_regs = dict( RB_DBG_ECO_CNTL_blit = 0x00000000, # is it even needed? RB_UNKNOWN_8E01 = 0x0, VPC_DBG_ECO_CNTL = 0x02000000, - UCHE_UNKNOWN_0E12 = 0x3200000 + UCHE_UNKNOWN_0E12 = 0x3200000, + + RB_UNKNOWN_8E06 = 0x02080000, ) a730_raw_magic_regs = [ @@ -893,7 +895,9 @@ add_gpus([ # HLSQ_DBG_ECO_CNTL = 0x0, RB_UNKNOWN_8E01 = 0x0, VPC_DBG_ECO_CNTL = 0x02000000, - UCHE_UNKNOWN_0E12 = 0x00000000 + UCHE_UNKNOWN_0E12 = 0x00000000, + + RB_UNKNOWN_8E06 = 0x02080000, ), raw_magic_regs = [ [A6XXRegs.REG_A6XX_UCHE_CACHE_WAYS, 0x00040004], diff --git a/src/freedreno/vulkan/tu_clear_blit.cc b/src/freedreno/vulkan/tu_clear_blit.cc index d0599da659b..c4336820816 100644 --- a/src/freedreno/vulkan/tu_clear_blit.cc +++ b/src/freedreno/vulkan/tu_clear_blit.cc @@ -1451,7 +1451,8 @@ r3d_setup(struct tu_cmd_buffer *cmd, if (CHIP >= A7XX) { tu_cs_emit_regs(cs, A7XX_RB_UNKNOWN_8812(0x3ff)); tu_cs_emit_regs(cs, A7XX_RB_UNKNOWN_88E5(0x50120004)); - tu_cs_emit_regs(cs, A7XX_RB_UNKNOWN_8E06(0x2080000)); + tu_cs_emit_regs(cs, + A7XX_RB_UNKNOWN_8E06(cmd->device->physical_device->info->a6xx.magic.RB_UNKNOWN_8E06)); } } diff --git a/src/freedreno/vulkan/tu_cmd_buffer.cc b/src/freedreno/vulkan/tu_cmd_buffer.cc index 091c8cd29d7..586753a988b 100644 --- a/src/freedreno/vulkan/tu_cmd_buffer.cc +++ b/src/freedreno/vulkan/tu_cmd_buffer.cc @@ -1652,7 +1652,7 @@ tu6_sysmem_render_begin(struct tu_cmd_buffer *cmd, struct tu_cs *cs, tu_cs_emit_regs(cs, A7XX_RB_UNKNOWN_88E5(0x50120004)); tu_cs_emit_regs(cs, - A7XX_RB_UNKNOWN_8E06(0x2080000)); + A7XX_RB_UNKNOWN_8E06(cmd->device->physical_device->info->a6xx.magic.RB_UNKNOWN_8E06)); /* These three have something to do with lrz/depth */ tu_cs_emit_regs(cs, A7XX_GRAS_UNKNOWN_8007(0x0));