Replaces the u_blitter pile of hacks for wallpapering (resolves) with a Gallium-agnostic, hardware-specific technique instead. The net result of this is slightly more efficient, taking advantage of a few features that can't get routed through Gallium, but more importantly paves the way for cleanly implementing MRT resolves which the old solution could fundamentally not handle -- as well, all of this would need to be implemented for
LOAD_OP_LOAD support in Vulkan, so we might as well get this right now in case anyone writes a Midgard VK driver. So this MR implements resolves for MRT surfaces as well as single render-targets, and includes Z/S resolves as well, enabling us to fix the remaining gles2 failures on T760/T860
Code is still a mess
This breaks Bifrost. But Bifrost doesn't actually need any of these hacks, it has proper native preload that actually works. Just need to get that wired up.
Still need to delete the old u_blitter code path once Bifrost is ported over and it's totally unused.Code still used for Bifrost. Native bf path later.
This doesn't handle partial_update yet because I don't understand the current impl very well and don't have a good way to test it.Partial update implemented.
Probably some buggy interactions with MSAAMSAA loads implemented.
Even so, I'd like some review from @bbrezillon at this stage.