diff --git a/src/gallium/drivers/panfrost/pan_resource.c b/src/gallium/drivers/panfrost/pan_resource.c index bcdf0753f8b..ddf8c55ce4a 100644 --- a/src/gallium/drivers/panfrost/pan_resource.c +++ b/src/gallium/drivers/panfrost/pan_resource.c @@ -1618,7 +1618,7 @@ panfrost_ptr_unmap(struct pipe_context *pctx, struct pipe_transfer *transfer) ctx, pan_resource(trans->staging.rsrc), "AFBC write staging blit"); - if (dev->debug & PAN_DBG_FORCE_PACK) { + if (pan_screen(pctx->screen)->force_afbc_packing) { if (panfrost_should_pack_afbc(dev, prsrc)) panfrost_pack_afbc(ctx, prsrc); } diff --git a/src/gallium/drivers/panfrost/pan_screen.c b/src/gallium/drivers/panfrost/pan_screen.c index 3ff777f8ce6..b71809156d0 100644 --- a/src/gallium/drivers/panfrost/pan_screen.c +++ b/src/gallium/drivers/panfrost/pan_screen.c @@ -852,6 +852,8 @@ panfrost_create_screen(int fd, const struct pipe_screen_config *config, return NULL; } + screen->force_afbc_packing = dev->debug & PAN_DBG_FORCE_PACK; + dev->ro = ro; screen->base.destroy = panfrost_destroy_screen; diff --git a/src/gallium/drivers/panfrost/pan_screen.h b/src/gallium/drivers/panfrost/pan_screen.h index d72617355a6..256872d532f 100644 --- a/src/gallium/drivers/panfrost/pan_screen.h +++ b/src/gallium/drivers/panfrost/pan_screen.h @@ -117,6 +117,7 @@ struct panfrost_screen { struct panfrost_vtable vtbl; struct disk_cache *disk_cache; unsigned max_afbc_packing_ratio; + bool force_afbc_packing; }; static inline struct panfrost_screen *