[Mesa-dev] [PATCH 1/6] blorp: Turn anv_CmdCopyBuffer into a blorp_buffer_copy() helper.

Chris Wilson chris at chris-wilson.co.uk
Tue Aug 29 22:13:55 UTC 2017

Quoting Kenneth Graunke (2017-08-29 22:28:38)
> Anvil already had code to copy between two buffer objects in the most
> efficient way possible, using large bpp copies, then smaller bpp copies.
> This patch moves that logic into BLORP as blorp_buffer_copy(), so we
> can reuse it in i965 as well.

Just some food for thought...

The render access pattern is terrible for wide linear buffers, as the
pixel block ends up being scattered across many pages, thrashing the TLB.
But if instead of telling it to copy as wide as possible, you just
limited it to a stride of 4096/4 (if memory serves 4 is the largest
pixel block height) then each pixel block is located inside just one
page (and hopefully cluster across the eu, further reducing the stride
may help if the spread ends up taller than wider).

More information about the mesa-dev mailing list