From: Rob Clark Date: Sat, 23 May 2020 18:50:14 +0000 (-0700) Subject: freedreno/gmemtool: make GMEM alignment per-gen X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b20663c5ba9523d24edfb6f1ce42561e36607f4a;p=mesa.git freedreno/gmemtool: make GMEM alignment per-gen `gmem_page_align` is generation specific (with the exception of a2xx which has a different value for fast-clear). So we should override the value from the captured gmem_key according to the gpu we are emulating for the purposes of calculating gmem config. Signed-off-by: Rob Clark Part-of: --- diff --git a/src/gallium/drivers/freedreno/gmemtool.c b/src/gallium/drivers/freedreno/gmemtool.c index 9b68b28a919..5120797bbd4 100644 --- a/src/gallium/drivers/freedreno/gmemtool.c +++ b/src/gallium/drivers/freedreno/gmemtool.c @@ -77,6 +77,7 @@ struct gpu_info { uint32_t gmem_alignw; uint32_t gmem_alignh; uint32_t num_vsc_pipes; + uint8_t gmem_page_align; uint32_t gmemsize_bytes; }; @@ -87,10 +88,10 @@ struct gpu_info { /* keep sorted by gpu name: */ static const struct gpu_info gpu_infos[] = { - { "a306", 307, 32, 32, 8, SZ_128K }, - { "a530", 530, 64, 32, 16, SZ_1M }, - { "a618", 618, 32, 32, 32, SZ_512K }, - { "a630", 630, 32, 32, 32, SZ_1M }, + { "a306", 307, 32, 32, 8, 4, SZ_128K }, + { "a530", 530, 64, 32, 16, 4, SZ_1M }, + { "a618", 618, 32, 32, 32, 1, SZ_512K }, + { "a630", 630, 32, 32, 32, 1, SZ_1M }, }; int @@ -132,8 +133,9 @@ main(int argc, char **argv) /* And finally run thru all the GMEM keys: */ for (int i = 0; i < ARRAY_SIZE(keys); i++) { - struct fd_gmem_stateobj *gmem = - gmem_stateobj_init(&screen, (void *)&keys[i]); + struct gmem_key key = keys[i]; + key.gmem_page_align = gpu_info->gmem_page_align; + struct fd_gmem_stateobj *gmem = gmem_stateobj_init(&screen, &key); dump_gmem_state(gmem); ralloc_free(gmem); }