From 37f11ff1d49469a6f2fba876fca6c2742d0aae4a Mon Sep 17 00:00:00 2001 From: Danylo Piliaiev Date: Tue, 24 Oct 2023 12:14:41 +0200 Subject: [PATCH] freedreno/devices: Support Adreno 725 For 0x07030002 chip id different names are returned on different phones: Adreno730v3 or Adreno725v1. Settle on 725 to disambiguate them. The only difference from base 730 is that it has conditional execution of compute shader at the start of every command buffer. Signed-off-by: Danylo Piliaiev Part-of: --- src/freedreno/common/freedreno_devices.py | 103 +++++++++++++--------- 1 file changed, 63 insertions(+), 40 deletions(-) diff --git a/src/freedreno/common/freedreno_devices.py b/src/freedreno/common/freedreno_devices.py index cf6e9d0fab7..3ec46c1c32b 100644 --- a/src/freedreno/common/freedreno_devices.py +++ b/src/freedreno/common/freedreno_devices.py @@ -704,6 +704,8 @@ add_gpus([ ) )) +a7xx_725 = A7XXProps() + a7xx_730 = A7XXProps() a7xx_740 = A7XXProps( @@ -711,6 +713,65 @@ a7xx_740 = A7XXProps( has_event_write_sample_count = True, ) +a730_magic_regs = dict( + TPL1_DBG_ECO_CNTL = 0x1000000, + GRAS_DBG_ECO_CNTL = 0x800, + SP_CHICKEN_BITS = 0x1440, + UCHE_CLIENT_PF = 0x00000084, + PC_MODE_CNTL = 0x0000003f, # 0x00001f1f in some tests + SP_DBG_ECO_CNTL = 0x10000000, + RB_DBG_ECO_CNTL = 0x00000000, + RB_DBG_ECO_CNTL_blit = 0x00000000, # is it even needed? + RB_UNKNOWN_8E01 = 0x0, + VPC_DBG_ECO_CNTL = 0x02000000, + UCHE_UNKNOWN_0E12 = 0x3200000 + ) + +a730_raw_magic_regs = [ + [A6XXRegs.REG_A6XX_UCHE_CACHE_WAYS, 0x00840004], + [A6XXRegs.REG_A6XX_TPL1_UNKNOWN_B602, 0x00000724], + + [A6XXRegs.REG_A7XX_SP_UNKNOWN_AE08, 0x00002400], + [A6XXRegs.REG_A7XX_SP_UNKNOWN_AE09, 0x00000000], + [A6XXRegs.REG_A7XX_SP_UNKNOWN_AE0A, 0x00000000], + [A6XXRegs.REG_A7XX_UCHE_UNKNOWN_0E10, 0x00000000], + [A6XXRegs.REG_A7XX_UCHE_UNKNOWN_0E11, 0x00000040], + [A6XXRegs.REG_A7XX_SP_UNKNOWN_AE6C, 0x00008000], + [A6XXRegs.REG_A6XX_PC_DBG_ECO_CNTL, 0x20080000], + [A6XXRegs.REG_A7XX_PC_UNKNOWN_9E24, 0x21fc7f00], + [A6XXRegs.REG_A7XX_VFD_UNKNOWN_A600, 0x00000000], + [A6XXRegs.REG_A7XX_SP_UNKNOWN_AE06, 0x00000000], + [A6XXRegs.REG_A7XX_SP_UNKNOWN_AE6A, 0x00000000], + [A6XXRegs.REG_A7XX_SP_UNKNOWN_AE6B, 0x00000080], + [A6XXRegs.REG_A7XX_SP_UNKNOWN_AE73, 0x00000000], + [A6XXRegs.REG_A7XX_SP_UNKNOWN_AB02, 0x00000000], + [A6XXRegs.REG_A7XX_SP_UNKNOWN_AB01, 0x00000000], + [A6XXRegs.REG_A7XX_SP_UNKNOWN_AB22, 0x00000000], + [A6XXRegs.REG_A7XX_SP_UNKNOWN_B310, 0x00000000], + + [A6XXRegs.REG_A7XX_GRAS_UNKNOWN_8120, 0x09510840], + [A6XXRegs.REG_A7XX_GRAS_UNKNOWN_8121, 0x00000a62], + ] + +add_gpus([ + # These are named as Adreno730v3 or Adreno725v1. + GPUId(chip_id=0x07030002, name="FD725"), + GPUId(chip_id=0xffff07030002, name="FD725"), + ], A6xxGPUInfo( + CHIP.A7XX, + [a6xx_gen4, a7xx_725], + num_ccu = 4, + tile_align_w = 64, + tile_align_h = 32, + num_vsc_pipes = 32, + cs_shared_mem_size = 32 * 1024, + wave_granularity = 2, + fibers_per_sp = 128 * 2 * 16, + magic_regs = a730_magic_regs, + raw_magic_regs = a730_raw_magic_regs, + max_sets = 8, + )) + add_gpus([ GPUId(chip_id=0x07030001, name="FD730"), # KGSL, no speedbin data GPUId(chip_id=0xffff07030001, name="FD730"), # Default no-speedbin fallback @@ -724,46 +785,8 @@ add_gpus([ cs_shared_mem_size = 32 * 1024, wave_granularity = 2, fibers_per_sp = 128 * 2 * 16, - magic_regs = dict( - # PC_POWER_CNTL = 7, - TPL1_DBG_ECO_CNTL = 0x1000000, - GRAS_DBG_ECO_CNTL = 0x800, - SP_CHICKEN_BITS = 0x1440, - UCHE_CLIENT_PF = 0x00000084, - PC_MODE_CNTL = 0x0000003f, # 0x00001f1f in some tests - SP_DBG_ECO_CNTL = 0x10000000, - RB_DBG_ECO_CNTL = 0x00000000, - RB_DBG_ECO_CNTL_blit = 0x00000000, # is it even needed? - # HLSQ_DBG_ECO_CNTL = 0x0, - RB_UNKNOWN_8E01 = 0x0, - VPC_DBG_ECO_CNTL = 0x02000000, - UCHE_UNKNOWN_0E12 = 0x3200000 - ), - raw_magic_regs = [ - [A6XXRegs.REG_A6XX_UCHE_CACHE_WAYS, 0x00840004], - [A6XXRegs.REG_A6XX_TPL1_UNKNOWN_B602, 0x00000724], - - [A6XXRegs.REG_A7XX_SP_UNKNOWN_AE08, 0x00002400], - [A6XXRegs.REG_A7XX_SP_UNKNOWN_AE09, 0x00000000], - [A6XXRegs.REG_A7XX_SP_UNKNOWN_AE0A, 0x00000000], - [A6XXRegs.REG_A7XX_UCHE_UNKNOWN_0E10, 0x00000000], - [A6XXRegs.REG_A7XX_UCHE_UNKNOWN_0E11, 0x00000040], - [A6XXRegs.REG_A7XX_SP_UNKNOWN_AE6C, 0x00008000], - [A6XXRegs.REG_A6XX_PC_DBG_ECO_CNTL, 0x20080000], - [A6XXRegs.REG_A7XX_PC_UNKNOWN_9E24, 0x21fc7f00], - [A6XXRegs.REG_A7XX_VFD_UNKNOWN_A600, 0x00000000], - [A6XXRegs.REG_A7XX_SP_UNKNOWN_AE06, 0x00000000], - [A6XXRegs.REG_A7XX_SP_UNKNOWN_AE6A, 0x00000000], - [A6XXRegs.REG_A7XX_SP_UNKNOWN_AE6B, 0x00000080], - [A6XXRegs.REG_A7XX_SP_UNKNOWN_AE73, 0x00000000], - [A6XXRegs.REG_A7XX_SP_UNKNOWN_AB02, 0x00000000], - [A6XXRegs.REG_A7XX_SP_UNKNOWN_AB01, 0x00000000], - [A6XXRegs.REG_A7XX_SP_UNKNOWN_AB22, 0x00000000], - [A6XXRegs.REG_A7XX_SP_UNKNOWN_B310, 0x00000000], - - [A6XXRegs.REG_A7XX_GRAS_UNKNOWN_8120, 0x09510840], - [A6XXRegs.REG_A7XX_GRAS_UNKNOWN_8121, 0x00000a62], - ], + magic_regs = a730_magic_regs, + raw_magic_regs = a730_raw_magic_regs, max_sets = 8, ))