Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
GLX
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{other uses}} {{refimprove|date=July 2012}} {{short description|Extension to the X Window System core protocol}} {{Infobox software | name = GLX | logo = | screenshot = | caption = | collapsible = | author = [[Silicon Graphics, Inc.|SGI]] | developer = | released = 1992 | latest release version = 1.4 | latest release date = December 16, 2005 | latest preview version = | latest preview date = | programming language = [[C (programming language)|C]] | operating system = | platform = | size = | language = | status = | genre = | license = SGI FreeB License<ref>{{cite web | url=http://oss.sgi.com/projects/FreeB/ | title=History and Most Recent Version of the SGI Free Software License B | date=2012 | author=oss-project-owners | publisher=[[Silicon Graphics International]] | access-date=2017-04-11 | archive-url=https://web.archive.org/web/20170420064437/http://oss.sgi.com/projects/FreeB/ | archive-date=2017-04-20 | url-status=dead }}</ref> | website = {{URL|https://dri.freedesktop.org/wiki/GLX/}} <!-- Better than nothing, and FreeDesktop do seem to be the ones in charge of its amendments --> }} '''GLX''' ([[Acronym and initialism|initialism]] for "Open'''GL''' Extension to the '''X''' Window System") is an extension to the [[X Window System core protocol]] providing an [[Interface (computing)|interface]] between [[OpenGL]] and the [[X Window System]] as well as extensions to OpenGL itself. It enables programs wishing to use OpenGL to do so within a window provided by the X Window System. GLX distinguishes two "states": indirect state and direct state. ==History== [[Silicon Graphics]] developed GLX as part of their effort to support OpenGL in the [[X Window System]]. In 1999 SGI released GLX under an [[open-source license]],<ref>{{cite web | title=OpenGL Sample Implementation | url=http://oss.sgi.com/projects/ogl-sample/ | author=Jon Leech | date=2012 | publisher=[[Silicon Graphics International]] | access-date=2017-04-11 | archive-date=2011-05-14 | archive-url=https://web.archive.org/web/20110514113623/http://oss.sgi.com/projects/ogl-sample/ | url-status=dead }}</ref> letting it be incorporated in [[XFree86]] source code version 4.0 in 2000. From there, the code was inherited by the forked [[X.Org Server|X.Org Foundation]] version of the X Window System X11R6.7.0. On September 19, 2008, SGI created a new SGI FreeB License Version 2.0, which "now mirrors the free X11 license used by X.Org" and "meets the free and open source software community's widely accepted definition of 'free'".<ref>{{cite web | url=http://www.sgi.com/company_info/newsroom/press_releases/2008/september/opengl.html | title=SGI Further Opens Its OpenGL Contributions | date=2008-09-19 | archive-url=https://web.archive.org/web/20120211122230/http://www.sgi.com/company_info/newsroom/press_releases/2008/september/opengl.html | archive-date=2012-02-11 | url-status=dead}}</ref> In 2009 the [[Free Software Foundation]] endorsed the SGI Free License B to be a [[free-software license]], and GLX to be an important [[free-software]] graphics project.<ref>{{cite web | url=https://www.fsf.org/news/thank-you-sgi | title=Thank you SGI, for freeing the GNU/Linux 3D desktop! | first=Matt | last=Lee | date=2008-09-19 | publisher=[[Free Software Foundation]] | access-date=2017-04-11}}</ref><ref>{{cite web | url=https://www.fsf.org/blogs/licensing/2009-01-xorg-glx | title=3D graphics are 100% free software | author=brett | date=2009-01-13 | publisher=Free Software Foundation | access-date=2017-04-11}}</ref> As of 2011, GLX has reached version 1.4. The first internal implementation of GLX API, called GLcore,<ref>{{cite web | url=https://dri.freedesktop.org/wiki/GLcore/ | title=DRI – GLcore | date=2016-07-20 | publisher=[[freedesktop.org]] | access-date=2017-04-11}}</ref> loaded a version of the software renderer of [[Mesa (computer graphics)|Mesa]] inside the X server and rendered the OpenGL commands in a window or pixmap. With the development of [[Direct Rendering Infrastructure|DRI]], the ability to use hardware accelerated OpenGL through direct contexts was added (primarily used by [[videogame]]s). In 2006, the popularization of the nested [[Xgl]] X server and [[Compiz]] [[compositing window manager]] lead to the development of Accelerated Indirect GLX ([[AIGLX]]). AIGLX brings hardware acceleration to the GLX (indirect context) applications by loading the Mesa DRI driver inside the X server. This method enables the sharing of GL objects between X clients using indirect contexts (they all are in the same address space in the X server) and also between a X client and the compositing window manager, thus accelerating composition. In 2008 the binding in GLcore to the Mesa software renderer was rewritten as a DRI interface module, called <code>swrast_dri.so</code>, improving the coupling of Mesa and the X server. Also in the year 2008 the new DRI2 was introduced to replace DRI, and with it a new model based in the [[Kernel mode-setting]]. In 2011, the [[Glamor (software)|Glamor]] project started, aiming to add a generic hardware-accelerated 2D X driver based in OpenGL. In 2013 Adam Jackson did a major rewrite of GLX code to consolidate the diverse paths from Glamor, indirect rendering, ... to one unique path to OpenGL's library libGL.<ref>{{cite web | url=https://www.youtube.com/watch?v=4Fr7pzoNSbQ |archive-url=https://ghostarchive.org/varchive/youtube/20211221/4Fr7pzoNSbQ |archive-date=2021-12-21 |url-status=live| title=Rewriting GLX To Rewrite X | last=Jackson | first=Adam | date=2014-02-04 | publisher=[[Linux.conf.au]] | access-date=2017-04-11}}{{cbignore}}</ref> <gallery mode=packed heights=150px style="text-align:left"> File:Linux graphics drivers 2D.svg|2D drivers inside of the [[display server|X server]] File:Linux graphics drivers Utah GLX.svg|Indirect rendering over GLX, using [[Utah GLX]] File:Linux graphics drivers DRI early.svg|Early [[Direct Rendering Infrastructure]] File:Linux graphics drivers DRI current.svg|Finally all access goes through the [[Direct Rendering Manager]] File:Linux graphics drivers DRI Wayland.svg|In Linux kernel 3.12 ''render nodes'' were merged and the [[Kernel mode-setting|KMS]] was split off. [[Wayland (display server protocol)|Wayland]] implements direct rendering over [[EGL (API)|EGL]] </gallery> == Features == [[File:Xf86 glxgears.png|thumb|upright=0.75|GLX demo (glxgears) included with X11]] GLX consists of three parts: # An [[Application programming interface|API]] that provides OpenGL functions to an X Window System application. # An extension of the X protocol, which allows the client (the OpenGL application) to send 3D rendering commands to the X server (the software responsible for the display). The client and server software may run on different computers. # An extension of the X server that receives the rendering commands from the client and passes them on to the installed OpenGL library If client and server are running on the same computer and an accelerated 3D graphics card using a suitable driver is available, the former two components can be bypassed by [[Direct Rendering Infrastructure|DRI]]. In this case, the client application is then allowed to directly access the video hardware through several API layers. ==Implementations== * [[Mesa 3D]] – a [[free and open-source]] [[Library (computing)|library]] which implements a couple of graphical APIs and also the available [[Free and open-source device drivers: graphics]]; for a last resort Mesa 3D also offers fallback [[software rendering]]. * The proprietary device drivers for graphics chips also include an implementation of GLX. ==See also== * [[WGL (API)|WGL]] – the equivalent [[Microsoft Windows]] interface to OpenGL * [[Core OpenGL|CGL]] – the equivalent [[macOS]] interface to OpenGL * [[EGL (API)|EGL]] – a similar cross-platform interface between OpenGL ES or VG and the underlying native platform window system * [[OpenGL Utility Toolkit|GLUT]] – library of utilities for OpenGL programs == References == {{Reflist|30em}} == External links == * [https://khronos.org/registry/OpenGL/specs/gl/glx1.4.pdf OpenGL® Graphics with the X Window System®] * {{webarchive | url=https://web.archive.org/web/20090608080346/http://www.sgi.com/products/software/opensource/glx/ | date=2009-06-08 | title=SGI - Open Source Code/GLX}} * [https://khronos.org/registry/OpenGL/index_gl.php#apispecs Current OpenGL API, OpenGL Shading Language and GLX Specifications and Reference Pages] {{XWinSys}} [[Category:OpenGL]] [[Category:X Window extensions]] [[Category:X-based libraries]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Cbignore
(
edit
)
Template:Cite web
(
edit
)
Template:Infobox
(
edit
)
Template:Infobox software
(
edit
)
Template:Main other
(
edit
)
Template:Other uses
(
edit
)
Template:Refimprove
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Template other
(
edit
)
Template:Webarchive
(
edit
)
Template:XWinSys
(
edit
)