[Spice-devel] Cross-device access in SPICE server

Noel Van Hook noel.van.hook at intelligraphics.com
Tue Mar 6 13:40:50 PST 2012


On Tue, Mar 6, 2012 at 2:33 PM, Yonit Halperin <yhalperi at redhat.com> wrote:
> On 03/05/2012 06:40 PM, Noel Van Hook wrote:
>>
>> On Sun, Mar 4, 2012 at 12:29 PM, Yonit Halperin<yhalperi at redhat.com>
>>  wrote:
>>>
>>> On 03/02/2012 09:06 PM, Noel Van Hook wrote:
>>>>
>>>>
>>>> I was wondering if anyone had any experience or insight into a way for
>>>> a worker in the server to get access to data from the other workers?
>>>> Specifically I am looking into some optimization that would require a
>>>> worker to have access to the surfaces stored in other workers.
>>>> Is there an easy way for the worker threads to access the other
>>>> workers?  I'm referring to the worker->surfaces[] array in
>>>> red_worker.c
>>>>
>>>> Thanks,
>>>> Noel
>>>>
>>>
>>> Hi,
>>>
>>> Currently the different workers share the pixmaps' cache (and also the
>>> glz
>>> dictionary). I.e., if an image is in use in more than one device, it will
>>> be
>>> sent to the client only once and will enter the shared cache.
>>> The surfaces themselves are not shared, but we plan to change the driver
>>> to
>>> use only one device for multiple monitors, and then maybe this will
>>> change.
>>> Can you be more specific about what you are trying to achieve? This will
>>> help to give you more details.
>>
>>
>> We are trying to me the X driver XRandR compliant in such a way that
>> we don't break other drivers (such as the Windows driver).
>> We can collect all the heads together and make them look like a single
>> device, but copy operations that go from one device to the other give
>> us problems. Currently we are trying to modify the server to be able
>> to access a source surface which is located on another device.
>>
> Note that making the surfaces accessible from all workers (or display
> channels in the client side) is not enough, You should also be careful with
> synchronizing the workers: If you have a qxl-1 command that access surface S
> on qxl-2, all qxl-2 commands that preceded this qxl-1 command (and modified
> the corresponding are on surface S), should be executed before this qxl-1
> command.
>

I thought about that, and I think that as long as all head are
controlled by a single driver instance which serializes the commands,
I should be ok.

Noel



-- 
Noel Van Hook - Intelligraphics, Inc
522 Cooper Ave N
Red Lodge, MT 59068
Noel.Van.Hook at Intelligraphics.com  (425) 770-5561


More information about the Spice-devel mailing list