Module: Mesa Branch: main Commit: 2d7f00d5c86e8a234f1c198c3bb0dd8f132a1f31 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=2d7f00d5c86e8a234f1c198c3bb0dd8f132a1f31
Author: Rob Clark <[email protected]> Date: Thu Aug 4 12:25:57 2022 -0700 freedreno: Drop fixed upper bound on # of tiles Placate things that think 16k x 16k FBO is a good idea. Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6997 Signed-off-by: Rob Clark <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17888> --- src/gallium/drivers/freedreno/freedreno_gmem.c | 4 ++-- src/gallium/drivers/freedreno/freedreno_gmem.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/gallium/drivers/freedreno/freedreno_gmem.c b/src/gallium/drivers/freedreno/freedreno_gmem.c index e0b0d95ca8a..284ef60bbce 100644 --- a/src/gallium/drivers/freedreno/freedreno_gmem.c +++ b/src/gallium/drivers/freedreno/freedreno_gmem.c @@ -300,6 +300,8 @@ gmem_stateobj_init(struct fd_screen *screen, struct gmem_key *key) gmem->width = key->width; gmem->height = key->height; + gmem->tile = rzalloc_array(gmem, struct fd_tile, gmem->nbins_x * gmem->nbins_y); + if (BIN_DEBUG) { dump_gmem_state(gmem); dump_gmem_key(key); @@ -396,8 +398,6 @@ gmem_stateobj_init(struct fd_screen *screen, struct gmem_key *key) struct fd_tile *tile = &gmem->tile[t]; uint32_t p; - assert(t < ARRAY_SIZE(gmem->tile)); - /* pipe number: */ p = ((i / tpp_y) * div_round_up(gmem->nbins_x, tpp_x)) + (j / tpp_x); assert(p < gmem->num_vsc_pipes); diff --git a/src/gallium/drivers/freedreno/freedreno_gmem.h b/src/gallium/drivers/freedreno/freedreno_gmem.h index 7785cefa26f..20e6f32d89c 100644 --- a/src/gallium/drivers/freedreno/freedreno_gmem.h +++ b/src/gallium/drivers/freedreno/freedreno_gmem.h @@ -62,7 +62,7 @@ struct fd_gmem_stateobj { uint8_t num_vsc_pipes; /* number of pipes for a20x */ struct fd_vsc_pipe vsc_pipe[32]; - struct fd_tile tile[2048]; + struct fd_tile *tile; struct list_head node; };
