On Thu, 20 Sep 2012, Gerd Hoffmann wrote: > > Pixman or non-pixman, I still think that this could benefit from > > implementing a DisplayAllocator interface: it would avoid a memcpy > > whenever there is no need for scaling and pixel conversions. > > There is one more issue I didn't mention yet: The framebuffer memory > should better be treaded as write-only memory as this is what gfx cards > are optimized for. Read access works of course, but can be _very_ slow > depending on the hardware.
That is true, however do we actually read the framebuffer back anywhere? I don't think that the vga emulator reads back anything. In any case if the memory is WC, there might still be some benefit in writing the framebuffer all in one go but I don't think that the difference would noticeble. If it is, it might be a good idea to get rid of DisplayAllocator altogether. > So implementing a DisplayAllocator and thereby making the vga emulation > operate directly on framebuffer memory is a very bad idea IMO. Most > likely it will make certain operations (like cirrus bitblits) slower > even though it saves a memcpy. It is not just one memcpy less, it is also about zero latency. Otherwise we have the typical problem of having to wait 30ms before the screen update. Not nice.