Hi,
Signed-off-by: Gerd Hoffmann<kra...@redhat.com>
I've taken a quick look and have a few questions.
Does this work without libspice (I think no)?
Correct, it needs libspice. Even in case you'll use qxl with sdl/vnc
libspice is needed to do the rendering.
Why does spice need to perform arbitrary gpa -> hva conversions?
Shouldn't everything happen within video ram?
Hmm, guess I should write up docs/qxl.txt explaining a few concepts.
QXL uses memory slots for addressing. The guest specifies the address
of some object (command, command data such as bitmaps, surfaces, ...)
using a slot+offset tuple.
Memory slots are created by the guest. qxl checks the request. The
allowed memory range covers the two pci slots at the moment. If the
checks pass qxl informs the spice server about the new slot and the
location in qemu's address space so spice server can follow those
references when parsing the qxl commands.
In a few places qxl needs to look at the commands itself, then it needs
to do the memory slot lookup as well of course. qxl_phys2virt does
that, maybe I should rename that to qxl_memslot_lookup() or something
simliar to make more clear what it actually does.
cheers
Gerd