From 9da2ebf09c0c705cbe58a45ffe6b41df9a992240 Mon Sep 17 00:00:00 2001 From: Zan Dobersek Date: Sat, 14 Feb 2026 08:29:18 +0100 Subject: [PATCH] freedreno/common: set up a830 properties Adjust or fill out various properties for the a830 GPU, setting up a gen1 base. So far these mostly mirror the gen2 properties, except for gmem config layouts, and they will probably further diverge down the line. A new GPU ID for a830 is also added, Turnip there runs on top of KGSL. Signed-off-by: Zan Dobersek Part-of: --- src/freedreno/common/freedreno_devices.py | 35 +++++++++++++++++------ 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/src/freedreno/common/freedreno_devices.py b/src/freedreno/common/freedreno_devices.py index 142ed3e9bbd..27de70c8fd4 100644 --- a/src/freedreno/common/freedreno_devices.py +++ b/src/freedreno/common/freedreno_devices.py @@ -1478,6 +1478,26 @@ a8xx_base_raw_magic_regs = [ [A6XXRegs.REG_A8XX_PC_MODE_CNTL, 0x00003f00], ] +a8xx_gen1 = GPUProps( + reg_size_vec4 = 128, + sysmem_vpc_attr_buf_size = 131072, + sysmem_vpc_pos_buf_size = 65536, + sysmem_vpc_bv_pos_buf_size = 32768, + sysmem_ccu_color_cache_fraction = CCUColorCacheFraction.FULL.value, + sysmem_per_ccu_color_cache_size = 128 * 1024, + sysmem_ccu_depth_cache_fraction = CCUColorCacheFraction.FULL.value, + sysmem_per_ccu_depth_cache_size = 256 * 1024, + gmem_vpc_attr_buf_size = 49152, + gmem_vpc_pos_buf_size = 24576, + gmem_vpc_bv_pos_buf_size = 32768, + gmem_ccu_color_cache_fraction = CCUColorCacheFraction.EIGHTH.value, + gmem_per_ccu_color_cache_size = 16 * 1024, + gmem_ccu_depth_cache_fraction = CCUColorCacheFraction.FULL.value, + gmem_per_ccu_depth_cache_size = 256 * 1024, + + has_salu_int_narrowing_quirk = True +) + a8xx_gen2 = GPUProps( reg_size_vec4 = 128, sysmem_vpc_attr_buf_size = 131072, @@ -1496,30 +1516,27 @@ a8xx_gen2 = GPUProps( gmem_per_ccu_depth_cache_size = 256 * 1024, has_fs_tex_prefetch = False, - # tbd if this applies to a8xx_gen1 as well: has_salu_int_narrowing_quirk = True ) -# Totally fake, just to get cffdump to work: add_gpus([ GPUId(chip_id=0x44050000, name="FD830"), + GPUId(chip_id=0x44050001, name="FD830"), # KGSL ], A6xxGPUInfo( CHIP.A8XX, - [a7xx_base, a7xx_gen3, a8xx_base], + [a7xx_base, a7xx_gen3, a8xx_base, a8xx_gen1], num_ccu = 6, num_slices = 3, - tile_align_w = 64, + tile_align_w = 96, tile_align_h = 32, - tile_max_w = 16384, + tile_max_w = 16416, tile_max_h = 16384, num_vsc_pipes = 32, cs_shared_mem_size = 32 * 1024, wave_granularity = 2, fibers_per_sp = 128 * 2 * 16, - magic_regs = dict( - ), - raw_magic_regs = [ - ], + magic_regs = dict(), + raw_magic_regs = a8xx_base_raw_magic_regs, )) add_gpus([