panfrost: Extend the pan_blitter lib to actually support blits
This series is an attempt at replacing u_blitter by our own blitter library so we can optimize a few things:
- no PIPE state changes (should save a few CPU cycles)
- for multi-layer blits, we don't re-emit the texture, sampler and viewport descriptors for each blit
- no vertex jobs: we forge the position array and pass it directly to the tiler jobs
But most importantly, it allows some code sharing with the Vulkan driver, which needs such a blit library anyway.
v2 keeps u_blitter() around and condition pan_blit() usage on PAN_MESA_DEBUG=panblit
.
TODO:
-
Perf analysis to see the impact of this u_blitter -> pan_blitter transition -
Real use case tests (I only made sure CI was happy, but I fear it doesn't tests all cases)
/cc @icecream95
Edited by Boris Brezillon