From: sandmann@cs.au.dk (Søren Sandmann)
To: Alon Levy <alevy@redhat.com>
Cc: "Søren Sandmann Pedersen" <ssp@redhat.com>,
"Gerd Hoffmann" <kraxel@redhat.com>,
spice-devel@freedesktop.org, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [Spice-devel] [PATCH] Add new client_present and client capabilities fields to QXLRom
Date: Wed, 29 Aug 2012 22:51:55 +0200 [thread overview]
Message-ID: <ye8k3whctg4.fsf@llama11.cs.au.dk> (raw)
In-Reply-To: <20120829101457.GC32547@garlic.redhat.com> (Alon Levy's message of "Wed, 29 Aug 2012 13:14:57 +0300")
Alon Levy <alevy@redhat.com> writes:
>> Good question.
>>
>> I don't know of a good way to deal with the situation where the new
>> client is unable to handle existing surfaces. I suppose in principle
>> spice-server could emulate their existence, sending them as images, but
>> I'm not familiar enough with spice-server to say whether that is
>> feasible.
>
> Sending a surface with a format the client doesn't recognize as an image
> - how does that help? you'd want to render anything dependent on that
> surface. And then the guest will be notified of the reduced
> capabilities and needs to never use those surfaces again (better yet,
> destroy them since they are just taking space).
>
> The rendering is already accomplished in on_new_display_channel_client
> with the red_flush_current(worker, 0) call, which recursively goes to
> all the dependent surfaces of each drawable and renders it too.
The scheme I had in mind was this:
- When a new non-a8-capable client appears, don't send it any of the
a8 surfaces
- If the client doesn't understand a8 surfaces,
- keep all a8 surfaces rendered on the server side
- if the guest sends a command using an a8 surface as a
destination, simply render the command on the server side
- if the client sends a command using an a8 surface as a source,
rewrite the image object to be a real image referring to the
server side bits (which are also sent or possibly cached)
rather than a surface
But it's much simpler to just say that the guest should stop referring
to a8 surfaces if the client can't handle them.
Ie., the same scheme as for commands: When a client disconnects,
spice-server changes the capability bits, then processes everything in
the ring. After this, the guest is expected to stop referring to a8
surfaces (and may indeed want to destroy them as you say).
Soren
next prev parent reply other threads:[~2012-08-29 20:51 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-08-27 17:20 [Qemu-devel] Add ability to advertise client capabilities to QXL device Søren Sandmann Pedersen
2012-08-27 17:20 ` [Qemu-devel] [PATCH] Add new client_present and client capabilities fields to QXLRom Søren Sandmann Pedersen
2012-08-28 6:15 ` Gerd Hoffmann
2012-08-29 0:58 ` Søren Sandmann
2012-08-29 6:00 ` Gerd Hoffmann
2012-08-29 21:05 ` Søren Sandmann
2012-08-29 10:14 ` [Qemu-devel] [Spice-devel] " Alon Levy
2012-08-29 20:51 ` Søren Sandmann [this message]
2012-08-30 5:34 ` Gerd Hoffmann
2012-08-30 16:03 ` Søren Sandmann
2012-08-31 7:32 ` Gerd Hoffmann
2012-09-02 21:35 ` [Qemu-devel] New patches to add capabilities to spice and qxl Søren Sandmann Pedersen
2012-09-02 21:35 ` [Qemu-devel] [PATCH-v2 spice-protocol 1/2] Add A8 surface capability Søren Sandmann Pedersen
2012-09-02 21:35 ` [Qemu-devel] [PATCH-v2 spice-protocol 2/2] Add new client_present and client capabilities fields to QXLRom Søren Sandmann Pedersen
2012-09-02 21:35 ` [Qemu-devel] [PATCH-v2 spice-gtk] Advertise SPICE_DISPLAY_CAP_A8_SURFACE Søren Sandmann Pedersen
2012-09-02 21:35 ` [Qemu-devel] [PATCH-v2 spice 1/2] Set a8 capability in the QXL device if supported by the client Søren Sandmann Pedersen
2012-09-03 7:34 ` Alon Levy
2012-09-03 17:33 ` Søren Sandmann
2012-09-03 17:49 ` Søren Sandmann
2012-09-03 17:53 ` [Qemu-devel] [PATCH 1/5] client: Advertise A8_SURFACE capability Søren Sandmann
2012-09-03 17:53 ` [Qemu-devel] [PATCH 2/5] Add new set_client_capabilities() interface to QXLInstance Søren Sandmann
2012-09-03 17:53 ` [Qemu-devel] [PATCH 3/5] Process outstanding commands in the ring after changing capability bits Søren Sandmann
2012-09-03 18:31 ` [Qemu-devel] [Spice-devel] " Alon Levy
2012-09-03 17:53 ` [Qemu-devel] [PATCH 4/5] Set a8 capability in the QXL device if supported by the client Søren Sandmann
2012-09-03 17:53 ` [Qemu-devel] [PATCH 5/5] Bump spice.h version number to 0.11.4 Søren Sandmann
2012-09-02 21:35 ` [Qemu-devel] [PATCH-v2 spice 2/2] " Søren Sandmann Pedersen
2012-09-02 21:35 ` [Qemu-devel] [PATCH-v2 qemu] qxl: Add set_client_capabilities() interface to QXLInterface Søren Sandmann Pedersen
2012-09-03 17:36 ` [Qemu-devel] [Spice-devel] " Søren Sandmann
2012-09-03 17:40 ` [Qemu-devel] [PATCH] " Søren Sandmann
2012-09-03 18:21 ` Alon Levy
2012-09-04 10:12 ` [Qemu-devel] [PATCH-v2 qemu] " Gerd Hoffmann
2012-09-04 14:14 ` [Qemu-devel] [PATCH 1/2] " Søren Sandmann
2012-09-04 14:14 ` [Qemu-devel] [PATCH 2/2] Remove #ifdef QXL_COMMAND_FLAG_COMPAT_16BPP Søren Sandmann
2012-09-04 14:46 ` [Qemu-devel] [PATCH 1/2] qxl: Add set_client_capabilities() interface to QXLInterface Gerd Hoffmann
2012-08-27 17:20 ` [Qemu-devel] [PATCH] Add new set_client_capabilities() interface to QXLInstance Søren Sandmann Pedersen
2012-08-27 17:20 ` [Qemu-devel] [PATCH] qxl: Add set_client_capabilities() interface to QXLInterface Søren Sandmann Pedersen
2012-08-28 6:19 ` Gerd Hoffmann
2012-08-27 17:20 ` [Qemu-devel] Add ability to advertise client capabilities to QXL device Søren Sandmann Pedersen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ye8k3whctg4.fsf@llama11.cs.au.dk \
--to=sandmann@cs.au.dk \
--cc=alevy@redhat.com \
--cc=kraxel@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=spice-devel@freedesktop.org \
--cc=ssp@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).