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;
 };

Reply via email to