On Wednesday, April 28, 2021 9:56:25 AM PDT Jason Ekstrand wrote:
On Wed, Apr 28, 2021 at 11:41 AM Matthew Auld matthew.auld@intel.com wrote:
[snip]
Slightly orthogonal: what does Mesa do here for snooped vs LLC platforms? Does it make such a distinction? Just curious.
In Vulkan on non-LLC platforms, we only enable snooping for things that are going to be mapped: staging buffers, state buffers, batches, etc. For anything that's not mapped (tiled images, etc.) we leave snooping off on non-LLC platforms so we don't take a hit from it. In GL, I think it works out to be effectively the same but it's a less obvious decision there.
--Jason
iris currently enables snooping on non-LLC platforms when Gallium marks a resource as PIPE_USAGE_STAGING, which generally means it's going to be mapped and "fast CPU access" is desired. Most buffers are not snooped.
I don't believe i965 uses snooping at all, surprisingly.
--Ken