running a graphical application over ssh - where is rendering done?

Steve O'Hara-Smith steve at
Thu Aug 20 11:20:16 UTC 2015

On Thu, 20 Aug 2015 11:38:04 +0100 (BST)
Anton Shterenlikht <mexas at> wrote:

> >From steve at Thu Aug 20 11:19:11 2015
> >
> >> So does the graphical application send the data over the
> >> network back to my laptop, where I render it using the local resources?
> >
> >	The graphical application communicates with the display server
> >using X11 protocol (and whatever extensions are available which includes
> >GLX and DRI on most systems these days) the rendering is done by the
> >display server. It doesn't have to be, the application could present a
> >bitmap and update it leaving the server to place the bitmap into a
> >window. A high resolution, 24 bit colour animation can eat a lot of
> >network bandwidth done this way, and network latency can really kill
> >interactive behaviour.
> I think I understand.
> And if you can spare another few minutes,
> where does Mesa fit in this?

	OK the whole picture.

	On the X server side Mesa is an open source implementation of OpenGL
on top of the DRI (direct rendering infrastructure) layer in the X server.
OpenGL is an open 3D graphiccs API. GLX is an X11 extension which provides
an OpenGL interface over the X11 protocol with Mesa providing the
implementation layer.

	Over on the client side libGL provides the OpenGL API with a GLX

	So the whole chain is.

Application makes OpenGL call

libGL translates it into GLX message(s) and sends to X server

GLX extension in X server executes messages using OpenGL API to Mesa

Mesa drives hardware using DRI

	Responses go through the chain in reverse.

Steve O'Hara-Smith                          |   Directable Mirror Arrays
C:>WIN                                      | A better way to focus the sun
The computer obeys and wins.                |    licences available see
You lose and Bill collects.                 |

More information about the freebsd-questions mailing list