[Spice-devel] RFC: Integrating Virgil and Spice

Dave Airlie airlied at gmail.com
Fri Oct 11 01:31:24 CEST 2013


>>
>> OpenGL 1.0 maybe nobody has made any accommodation to remote rendering
>> in years, they haven't defined GLX protocol for new extensions in
>> probably 8-10 years,
>>
>> The thing is 3D rendering is high bandwidth for anything non-trivial,
>> the amount of data apps move to GPUs is huge for most things.
>
> Most opengl applications, but perhaps that's not so true for desktop apps in general (including aero etc), as you noted for gnome-shell, which is more animated than most applications that just want simple smooth transitions. I am not looking at remote gaming or 3d benchmark.
>
> Even when a lot of data moves to GPU, I wonder how much can actually be cached (ie how much is generated on CPU).

A lot of our desktop apps however are going to GL, like libreoffice
and firefox and I expect they'll be generating a fair amount of data,
not as much as games or benchmarks but still enough.

>> There are numerous massive problems with remote rendering the android
>> remoting guys don't solve because they either don't need to or they
>> are too hard, but for a desktop you'd have to. I'll enumerate them for
>> posterity :-) Also your GL knowledge is a bit out of date :-P
>>
>> 1) readback - spice currently doesn't do remote readback it always
>> does pixman rendering locally when the client reads something back,
>> now GL isn't pixel perfect and if we have different rendering hw or sw
>> rendering on the host and the client then we'd be giving back results
>> that weren't entirely accurate. Now do we just readback from the
>> client then? probably going to suck. Now things like gnome-shell use a
>> technique called picking on mouse movement and clicks, every mouse
>> movement can cause a readback so it know what object is under the
>> mouse, can you say latency enough?
>
> This is already in opengl 1.0 iirc (so probably with remoting in mind ;), and I don't think latency for picking matters so much in remote environment (even then, when there is a mouse click/event on client side, we could already gather some picking information perhaps, to avoid round trip), I was also imagining the double rendering that you mentionned.

No you are thinking about GL 1.0 GL_SELECT this isn't what is used
anymore, gnome-shell renders a backbuffer with colors and then does a
glReadPixels on it, there are optimisation to aviod this in some cases
but in any complex scene its probably the only useful way. The latency
is every mouse movement is going to generate another round drop for
the readpixels of the place it lands, that is going to be sluggish.

Dave.


More information about the Spice-devel mailing list