From 17b567485a0dffc566993e7b991440eb5983ec50 Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Fri, 12 Dec 2025 06:02:08 -0800 Subject: [PATCH] freedreno/devices: Add num_slices Add num_slices param to the device info. This will be needed for calculating LRZ layout. Signed-off-by: Rob Clark Part-of: --- src/freedreno/common/freedreno_dev_info.h | 2 ++ src/freedreno/common/freedreno_devices.py | 6 +++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/freedreno/common/freedreno_dev_info.h b/src/freedreno/common/freedreno_dev_info.h index 10f3468af20..e69588ac980 100644 --- a/src/freedreno/common/freedreno_dev_info.h +++ b/src/freedreno/common/freedreno_dev_info.h @@ -69,6 +69,8 @@ struct fd_dev_info { uint32_t num_ccu; }; + uint32_t num_slices; /* gen8+ */ + struct { uint32_t RB_DBG_ECO_CNTL; uint32_t RB_DBG_ECO_CNTL_blit; diff --git a/src/freedreno/common/freedreno_devices.py b/src/freedreno/common/freedreno_devices.py index 1a5a0fec5dd..a2637b0815c 100644 --- a/src/freedreno/common/freedreno_devices.py +++ b/src/freedreno/common/freedreno_devices.py @@ -137,7 +137,7 @@ class A6xxGPUInfo(GPUInfo): cs_shared_mem_size, wave_granularity, fibers_per_sp, magic_regs, raw_magic_regs = None, highest_bank_bit = 15, ubwc_swizzle = 0x6, macrotile_mode = 1, - threadsize_base = 64, max_waves = 16): + threadsize_base = 64, max_waves = 16, num_slices = 0): if chip == CHIP.A6XX: compute_lb_size = 0 else: @@ -163,6 +163,7 @@ class A6xxGPUInfo(GPUInfo): compute_lb_size = compute_lb_size) self.num_ccu = num_ccu + self.num_slices = num_slices self.props = Struct() @@ -1460,6 +1461,7 @@ add_gpus([ CHIP.A8XX, [a7xx_base, a7xx_gen3, a8xx_base], num_ccu = 6, + num_slices = 3, tile_align_w = 64, tile_align_h = 32, tile_max_w = 16384, @@ -1514,6 +1516,7 @@ add_gpus([ CHIP.A8XX, [a7xx_base, a7xx_gen3, a8xx_base, a8xx_gen2], num_ccu = 6, + num_slices = 3, tile_align_w = 96, tile_align_h = 32, tile_max_w = 16416, @@ -1532,6 +1535,7 @@ add_gpus([ CHIP.A8XX, [a7xx_base, a7xx_gen3, a8xx_base, a8xx_gen2], num_ccu = 8, + num_slices = 4, tile_align_w = 64, tile_align_h = 64, tile_max_w = 16384,