Hi Mark, On Sat, Oct 26, 2019 at 10:35:20AM +0100, Mark Cave-Ayland wrote:
> > However, the VRAM in Artist is not really exposed to the Host. Instead, > > there's the Chipset inbetween that can do byte swapping (Colormap is LE, > > VRAM is BE) and Bit-to-Byte/Word/Dword conversion. For example you could > > write 0x55 into that VRAM region, and the chipset would expand that to > > VRAM Bytes: 00 01 00 01 00 01 00 01. And to make it even worse emulation > > wise it can also do different encodings for Read or Write accesses, and > > mask out certain bits of the data. So after trying to convert it to the > > "dirty bitmap" API i decided to just leave it as it is. The CPU load > > used by the display update code is usually < 1%, so it's ok for me. > > Wow that sounds that some interesting hardware(!). Does it make sense to > model the > behaviour of the chipset separately using a proxy MemoryRegion similar to > virtio i.e. > introduce an intermediate IO MemoryRegion that does the swapping and then > forward it > onto the VRAM MemoryRegion? Thanks for the pointer, i'll check whether that would work. For now i think i'll remove the Artist patch from the series, so we can apply the other patches, and i'll re-submit Artist when it's done. I guess the rewrite to use a MemRegion is a bit bigger. But i would to get the other patches in especially the LASI Stuff as both Helge and i have a lot of stuff depending on that. Regards Sven