GLX(「Open GL Extension to the X Window System」の頭文字をとったもの)は、 X Window Systemコアプロトコルの拡張機能であり、 OpenGLとX Window System間のインターフェースを提供するとともに、OpenGL自体にも拡張機能を提供します。これにより、OpenGLを使用したいプログラムは、X Window Systemが提供するウィンドウ内でOpenGLを使用できるようになります。GLXは、間接状態と直接状態という2つの「状態」を区別します。
Silicon Graphics は、X Window Systemで OpenGL をサポートする取り組みの一環として GLX を開発しました。1999 年に SGI は GLX をオープンソース ライセンスでリリースし[ 2 ]、 2000 年にXFree86ソース コード バージョン 4.0に組み込まれました。そこから、このコードはフォークされたX.Org Foundationバージョンの X Window System X11R6.7.0 に引き継がれました。2008 年 9 月 19 日に、SGI は新しい SGI FreeB License Version 2.0 を作成しました。これは「現在 X.Org が使用しているフリー X11 ライセンスを反映しており」、「フリーおよびオープンソース ソフトウェア コミュニティで広く受け入れられている「フリー」の定義を満たしています」。[ 3 ] 2009 年に、フリー ソフトウェア財団はSGI Free License B をフリー ソフトウェア ライセンスとして、GLX を重要なフリー ソフトウェアグラフィックス プロジェクトとして承認しました。[ 4 ] [ 5 ] 2011年現在、GLXはバージョン1.4に達しています。
GLX API の最初の内部実装である GLcore [ 6 ]は、 Mesaのソフトウェア レンダラーのバージョンをX サーバー内にロードし、OpenGL コマンドをウィンドウまたはピクスマップにレンダリングしました。DRI の開発により、直接コンテキストを介してハードウェア アクセラレーションされた OpenGL を使用する機能が追加されました (主にビデオゲームで使用) 。2006年、ネストされたXgl X サーバーとCompizコンポジティング ウィンドウ マネージャの普及により、Accelerated Indirect GLX ( AIGLX )が開発されました。AIGLX は、Mesa DRI ドライバを X サーバー内にロードすることにより、GLX (間接コンテキスト) アプリケーションにハードウェア アクセラレーションをもたらします。この方法により、間接コンテキストを使用する X クライアント間 (すべて X サーバー内の同じアドレス空間にあります) および X クライアントとコンポジティング ウィンドウ マネージャ間で GL オブジェクトを共有できるため、コンポジションが高速化されます。 2008 年、GLcore の Mesa ソフトウェア レンダラーへのバインディングは、DRI インターフェース モジュールとして書き直され、swrast_dri.soMesa と X サーバーの結合が改善されました。また、2008 年に、DRI を置き換える新しい DRI2 が導入され、カーネル モード設定に基づく新しいモデルが導入されました。2011 年に、 OpenGL に基づく汎用ハードウェア アクセラレーション 2D X ドライバを追加することを目的としたGlamorプロジェクトが開始されました。2013 年に、Adam Jackson は、Glamor、間接レンダリングなどからのさまざまなパスを OpenGL ライブラリ libGL への単一のパスに統合するために、GLX コードを大幅に書き直しました。[ 7 ]

GLXは3つの部分から構成されています。
クライアントとサーバーが同じコンピューター上で動作しており、適切なドライバーを備えた高速3Dグラフィックスカードが利用可能な場合、DRIによって前述の2つのコンポーネントをバイパスできます。この場合、クライアントアプリケーションは複数のAPIレイヤーを介してビデオハードウェアに直接アクセスできるようになります。