40372bd720
Wire up the Mesa shader disk cache into Panfrost. Coupled with the precompiles from the previous patch, this should greatly reduce shader recompile jank. This is a bare bones implementation. Obvious future work includes: - Caching internal (outside of Gallium) shaders - Implement finalize_nir to reduce on disk size of shaders That doesn't need to come in this patch. This patch does shuffle some allocation patterns around to avoid extra nir_shader_clones, but the result should be pretty clean. --- Consider dEQP-GLES31.functional.ssbo.layout.basic_unsized_array.* in the CTS. With a cold cache: 44.11user 0.66system 0:45.44elapsed 98%CPU (0avgtext+0avgdata 267804maxresident) k 0inputs+0outputs (130major+74725minor)pagefaults 0swaps But with this commit and a warm cache: 4.07user 0.35system 0:04.56elapsed 96%CPU (0avgtext+0avgdata 211012maxresident) k0inputs+0outputs (1major+49489minor)pagefaults 0swaps That's an 11x improvement! Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19363>