Skip to content

iris: Introduce asynchronous copy support via the Tigerlake+ blitter hardware

Kenneth Graunke requested to merge kwg/mesa:blip into main

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

Merge request reports