On Monday, April 07, 2008 1:46 pm Thomas Hellström wrote:While keithp's "presumed offset" is really good stuff, we should never need to read from device memory during relocations, I think. I was thinking of EXA and OpenGL software fallback cases, "download from screen" and "readpixels" types of operation, as well as pixel-buffer-object map in read mode.
Why would we need to flush at all at unbind-read-bind time? We should beWe want to make the user-space mapping cache-coherent after unbind
able to leave pages in the WC state even when we unbind them, then when
we need to bind them back into the GTT they'll be ready, but maybe I'm
misunderstanding you here...
during read, to have any serious read-speed, and the linear kernel map
has to follow, unless it's non-present. Even if it's non present, we
need to flush whatever was written through the user-space mapping from
the cache when rebinding. Having the user-space mapping read-only when
possible will help avoid this.
Ah, you actually want to *read* from memory? Yeah that would be really slow if we left it UC or WC. But I thought that was really only necessary for relocation, and keithp dealt with that with the "presumed offset" stuff? Are you seeing other cases where we need to read back frequently?