Hi all,

I have been using persistently-mapped buffers for a while in my applications but have never quite understood how they actually work.

Specifically, I'd be interested in what happens when say submitting a draw call where the pixel shader would read from a persistently|coherently-mapped SSBO that was just written to by the CPU.

Does the driver detects that the resource is being used and schedules a DMA transfer? then it would stall the CP until that transfer has completed?
Will it always copy the full range? or can it somehow detect which ranges were written to by the CPU?
Or does it work completely differently?

I am mainly interested in what happens with NVIDIA and AMD architectures.

Many thanks!