From owner-freebsd-questions@freebsd.org Thu Aug 20 11:20:16 2015 Return-Path: Delivered-To: freebsd-questions@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B221D9BDD03 for ; Thu, 20 Aug 2015 11:20:16 +0000 (UTC) (envelope-from steve@sohara.org) Received: from uk1rly2283.eechost.net (relay01.mail.uk1.eechost.net [217.69.40.69]) by mx1.freebsd.org (Postfix) with ESMTP id 60D3D7DB for ; Thu, 20 Aug 2015 11:20:15 +0000 (UTC) (envelope-from steve@sohara.org) Received: from [88.151.27.41] (helo=smtp.marelmo.com) by uk1rly2283.eechost.net with esmtpa (Exim 4.72) (envelope-from ) id 1ZSNtB-0002lX-Vu; Thu, 20 Aug 2015 12:20:10 +0100 Received: from [192.168.63.1] (helo=steve.lan.sohara.org) by smtp.marelmo.com with smtp (Exim 4.85 (FreeBSD)) (envelope-from ) id 1ZSNtB-000PKK-B2; Thu, 20 Aug 2015 11:20:09 +0000 Date: Thu, 20 Aug 2015 12:20:07 +0100 From: Steve O'Hara-Smith To: mexas@bris.ac.uk Cc: freebsd-questions@freebsd.org Subject: Re: running a graphical application over ssh - where is rendering done? Message-Id: <20150820122007.a8e774fe9f4f5cfa97554803@sohara.org> In-Reply-To: <201508201038.t7KAc4lc034291@mech-as222.men.bris.ac.uk> References: <20150820111735.bfbba2567ac9d797e7c0eecb@sohara.org> <201508201038.t7KAc4lc034291@mech-as222.men.bris.ac.uk> X-Mailer: Sylpheed 3.4.3 (GTK+ 2.24.28; amd64-portbld-freebsd10.1) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Auth-Info: 24227@permanet.ie (plain) X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 20 Aug 2015 11:20:16 -0000 On Thu, 20 Aug 2015 11:38:04 +0100 (BST) Anton Shterenlikht wrote: > >From steve@sohara.org 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 backend. 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. | http://www.sohara.org/