[Mesa-users] X11 forwarding issue

Pekka Paalanen ppaalanen at gmail.com
Wed Mar 25 15:40:49 UTC 2020


On Wed, 25 Mar 2020 15:51:19 +0100
Guillermo Hazebrouck <gahazebrouck at gmail.com> wrote:

> Hi Michael,
> Thanks for the info. We have not tried that yet (I will try it as soon as
> we are allowed to go back to our office :-/).
> I find it strange that it would work for 2.0 since GLX does not seem to
> implement glBindBuffer, glBufferData or any of the core profile calls. I
> only see it can handle texture buffers...

Hi,

FYI, the NVIDIA proprietary drivers completely replace almost all of the
graphics stack, including libGLX IIRC. So anything seen on NVIDIA says
nothing about any other driver.

To me it seems to have been trend for a decade or more now, that
transmitting drawing commands is being replaced with transmitting
images and video, both locally within a machine and across a network.
Games as a service and so on. I suppose it is not uncommon nowadays that
transmitting video takes less bandwidth than transmitting the drawing
commands and the data needed by them.

> The whole OpenGL + X11 world is very hard to digest for newbies like me. It
> grew up like a snowball and seems to have mutated in the meanwhile. The
> fact that the specification is broken in two parts (call it "compatibility"
> and "core" profiles) is a big pain. And with Wayland I don't see it is
> getting much better. This comes again as the promise of a new paradise, but
> in fact it is just adding more wires to the already chaotic software
> protoboard we have.

Actually, Wayland completely removes the ability to go over the network
at the display protocol level. This follows from the years of changes
around X11 (and Xorg) where more and more functionality and especially
performance relies on shared memory and shared file descriptors, which
also cannot cross a network. Applications no longer submit X11 drawing
requests, instead they draw locally and submit completed images of
windows over X11. That needs a lot of bandwidth, but available
bandwidth is infinite with shared memory - not good for a network.
Wayland fully embraced that direction of development.

I think the above largely explains why X11 is nowadays generally
considered to be inefficient going over a network. Another thing about
X11 is that it is fairly roundtrip-happy. My personal experience is
that if you stick with ancient apps, X11 forwarding is somewhat usable.

I've been lead to believe the future is VNC-like remoting, but in my
very casual attempts it has left a lot to wish for. Transmitting video
instead of data and commands does seem like the only strategy nowadays.

> There are components plugged everywhere and very little documentation
> explaining the bigger picture, as if the programmers would be so excited
> about writing "the best software ever" that they never took the time to
> explain in details what they were actually doing (sorry for this comment,
> it is a personal frustration against this recurrent behavior of the open
> source software community).

Yet I find it quite accurate. I'm guilty as well, there is always
something to improve or a product to ship, and it's not developer
documentation at the top of a todo.

A bag of random links:
https://gitlab.freedesktop.org/freedesktop/freedesktop/issues/76
which might not be quite on topic for you, but just in case...


Thanks,
pq

> El mié., 25 de mar. de 2020 a la(s) 15:05, Michael Saunders (
> r.michael.saunders at gmail.com) escribió:
> 
> > Guillermo,
> >
> > We have an engineering application that was written using the fixed
> > function pipeline as well. We have experimented with moving to the
> > programmable pipeline and noticed this same problem. What we did discover,
> > however, is that OpenGL 2.0 was supported when using GLX. I can't say we
> > tried it on a wide range of X11 platforms but at least between two Linux
> > machines that had native (not nouveau drivers) NVidia drivers it worked. We
> > had to make sure that we were using the older shader language that matched
> > OpenGL 2. I would suggest assembling a simple "hello world" program that
> > renders a gradated triangle where you can easily experiment with OpenGL
> > versioning and shader language versioning.
> >
> > Michael
> >
> > On Wed, Mar 25, 2020 at 4:59 AM Guillermo Hazebrouck <  
> > gahazebrouck at gmail.com> wrote:  
> >  
> >> Hello!
> >> I am having troubles to export an OpenGL-based application through the
> >> network using X11.
> >> At the beginning I used only compatibility mode calls (OpenGL 1.2 ->
> >> lists + glBegin/glVertex/glEnd), and everything worked like a charm.
> >> However, because a restriction on drivers and OS, I had to move the whole
> >> application to Core Profile (version 3.3 to 4.5). The performance remained
> >> good, but I was no longer able of exporting the application through X11!
> >> I started searching for information and, to my astonishment, it seems
> >> that the GLX library that is in charge of doing this (forwarding the OpenGL
> >> calls through the network) is now becoming obsolete as it is only
> >> compatible with legacy (compatibility mode) calls.
> >> Why is GLX only compatible with OpenGL lists and not able of forwarding
> >> the vertex buffers? Is there any development ongoing in that direction? Or
> >> is there any known solution to this?
> >> Thanks,
> >> Guillermo
> >>
> >> _______________________________________________
> >> mesa-users mailing list
> >> mesa-users at lists.freedesktop.org
> >> https://lists.freedesktop.org/mailman/listinfo/mesa-users
> >>  
> >  

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/mesa-users/attachments/20200325/dfbcc49d/attachment.sig>


More information about the mesa-users mailing list