On Fri, 21 Sep 2012, Gerd Hoffmann wrote: > On 09/20/12 17:33, Stefano Stabellini wrote: > > On Thu, 20 Sep 2012, Stefano Stabellini wrote: > >> On Thu, 20 Sep 2012, Gerd Hoffmann wrote: > >>> Hi, > >>> > >>>>> In any graphics mode relevant today vga emulation will use > >>>>> qemu_create_displaysurface_from(). Whenever a DisplayAllocator is > >>>>> present or not doesn't make any difference then. > >>>> > >>>> Unfortunately if my memory doesn't fail me, Windows uses 24 bpp. > >>>> So actually the DisplayAllocator interface is the one that is going to be > >>>> used all the time. > >>> > >>> Guess we want implement 24bpp support in displaylisteners then. > >> > >> vnc doesn't support 24bpp > > > > I mean the vnc protocol doesn't support 24bpp, so it couldn't help vnc > > (I am aware that at the moment vnc is not using a DisplayAllocator, but > > I guess it could in the future). > > Yes, vnc should transform 24bpp into 32bpp. Given that vnc keeps a > shadow copy of the guest display _anyway_ (to figure which parts of the > guest display did _really_ change) we don't have to do any extra copying > work in vnc. We can just keep the shadow at 32bpp. The 'compare+copy' > code in vnc_refresh_server_surface must be able to cope with 24bpp guest > + 32bpp server surface. Done. And we've dropped the 24->32 bpp > conversion in the vga emulation along the way.
OK, I am sold :)