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

Quartz quartz at
Fri Aug 21 04:13:53 UTC 2015

> If I conect from my laptop to a server via ssh -XY,
> and then launch a 3D graphical application on the server,
> and view the results back on my laptop, which side
> is doing the rendering?

Your laptop.

> I naively assumed that rendering is done where the graphical
> program is running, i.e. on the remote server,

The thing is, with X, half the program is on each.

Part of your problem here is confusion of terms. An "X server" is not 
the same thing as a physical server machine, and it's not required to 
run on one. In this context the "server" is the software that accepts 
user input and draws pixels to a screen, "clients" are the applications 
interacting with it (whether they're running on the local machine or a 
remote one).

> So does the graphical application send the data over the
> network back to my laptop, where I render it using the local resources?

Yes. The easy way to think of this is that the application simply tells 
the X server software what to draw, the X server (running on your 
laptop) is responsible for actually doing the drawing.

If you really want the physical server machine to do all the rendering 
and have it send the desktop back to the laptop as a live video stream, 
you need to look into VNC, not X. But be aware that VNC eats quite a lot 
of net bandwidth.

More information about the freebsd-questions mailing list