Skip to content
Snippets Groups Projects
Commit 25c3cae3 authored by Alyssa Rosenzweig's avatar Alyssa Rosenzweig
Browse files

panfrost: Manage texture memory with pb_slab

Previously, we allocated a single 256MB slab of texture memory on init,
never freed anything, and hoped it was enough. This is bad on so many
levels.

This patch uses the pb_slab interface courtesy of AMD to manage texture
memory. With the new API, we don't allocate any slabs on startup; we
instead provide a callback for allocating a new slab of memory, which
we implement with the existing kbase API. Then, we use its methods to
allocate and free texture memory.

For real-world motivation, without this patch, running
sway+es2gears (via Panfrost/llvmpipe respectively) would allocate 50% of
my memory, and then crash after a short amount of time due to OOM
conditions. With this patch, the same combination allocates about 30% of
memory and can run essentially indefinitely, since we're freeing
resources appropriately.

Future patches will extend this interface for other parts of the
cmdstream to further reduce our memory footprint.
parent ecfa6722
No related branches found
No related tags found
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment