iris: Introduce asynchronous copy support via the Tigerlake+ blitter hardware
This series adds support to BLORP for emitting Tigerlake's new XY_BLOCK_COPY_BLT command on the asynchronous copy engine. Unlike prior blitter paths, this one actually is fast, and has a decent feature set on DG2. It then hooks the blitter path up in iris for resource_copy_region()
, transfer_map()
staging blits, and some blit()
calls.
In particular, DRI PRIME should now use the blitter paths, allowing the LMEM -> SMEM copy to happen asynchronously while the 3D engine races ahead to rendering the next frame. This should help hybrid graphics performance.
Future work is to...
- support non-zero clear colors on DG2
- hook this up as a transfer queue in anv