freedreno: Drop fixed upper bound on # of tiles
authorRob Clark <robdclark@chromium.org>
Thu, 4 Aug 2022 19:25:57 +0000 (12:25 -0700)
committerMarge Bot <emma+marge@anholt.net>
Fri, 5 Aug 2022 17:31:55 +0000 (17:31 +0000)
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 <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17888>

src/gallium/drivers/freedreno/freedreno_gmem.c
src/gallium/drivers/freedreno/freedreno_gmem.h

index e0b0d95..284ef60 100644 (file)
@@ -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);
index 7785cef..20e6f32 100644 (file)
@@ -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;
 };