into distinct sub-generations. The template parameter avoids
duplication of parameters that are unique to the sub-generation.
"""
- def __init__(self, template, num_sp_cores, num_ccu, magic_regs):
+ def __init__(self, template, num_ccu, tile_align_w, tile_align_h, magic_regs):
super().__init__(gmem_align_w = 16, gmem_align_h = 4,
- tile_align_w = 32, tile_align_h = 32,
+ tile_align_w = tile_align_w,
+ tile_align_h = tile_align_h,
tile_max_w = 1024, # max_bitfield_val(5, 0, 5)
tile_max_h = max_bitfield_val(14, 8, 4),
num_vsc_pipes = 32)
- assert(num_sp_cores == num_ccu)
- self.num_sp_cores = num_sp_cores
-
- # 96 tile alignment seems correlated to 3 CCU
- if num_ccu == 3:
- self.tile_align_w = 96
+ # The # of SP cores seems to always match # of CCU
+ self.num_sp_cores = num_ccu
+ self.num_ccu = num_ccu
self.a6xx = Struct()
self.a6xx.magic = Struct()
GPUId(619),
], A6xxGPUInfo(
a6xx_gen1,
- num_sp_cores = 1,
num_ccu = 1,
+ tile_align_w = 32,
+ tile_align_h = 16,
magic_regs = dict(
PC_POWER_CNTL = 0,
TPL1_DBG_ECO_CNTL = 0x00108000,
GPUId(620),
], A6xxGPUInfo(
a6xx_gen1,
- num_sp_cores = 1,
num_ccu = 1,
+ tile_align_w = 32,
+ tile_align_h = 16,
magic_regs = dict(
PC_POWER_CNTL = 0,
TPL1_DBG_ECO_CNTL = 0x01008000,
GPUId(630),
], A6xxGPUInfo(
a6xx_gen1,
- num_sp_cores = 2,
num_ccu = 2,
+ tile_align_w = 32,
+ tile_align_h = 16,
magic_regs = dict(
PC_POWER_CNTL = 1,
TPL1_DBG_ECO_CNTL = 0x00108000,
GPUId(640),
], A6xxGPUInfo(
a6xx_gen2,
- num_sp_cores = 2,
num_ccu = 2,
+ tile_align_w = 32,
+ tile_align_h = 16,
magic_regs = dict(
PC_POWER_CNTL = 1,
TPL1_DBG_ECO_CNTL = 0x00008000,
GPUId(680),
], A6xxGPUInfo(
a6xx_gen2,
- num_sp_cores = 4,
num_ccu = 4,
+ tile_align_w = 64,
+ tile_align_h = 32,
magic_regs = dict(
PC_POWER_CNTL = 3,
TPL1_DBG_ECO_CNTL = 0x00108000,
GPUId(650),
], A6xxGPUInfo(
a6xx_gen3,
- num_sp_cores = 3,
num_ccu = 3,
+ tile_align_w = 96,
+ tile_align_h = 48,
magic_regs = dict(
PC_POWER_CNTL = 2,
# this seems to be a chicken bit that fixes cubic filtering:
GPUId(chip_id=0xffff06030500, name="Adreno 7c+ Gen 3"),
], A6xxGPUInfo(
a6xx_gen4,
- num_sp_cores = 2,
num_ccu = 2,
+ tile_align_w = 32,
+ tile_align_h = 16,
magic_regs = dict(
PC_POWER_CNTL = 1,
TPL1_DBG_ECO_CNTL = 0x05008000,
GPUId(660),
], A6xxGPUInfo(
a6xx_gen4,
- num_sp_cores = 3,
num_ccu = 3,
+ tile_align_w = 96,
+ tile_align_h = 16,
magic_regs = dict(
PC_POWER_CNTL = 2,
TPL1_DBG_ECO_CNTL = 0x05008000,