• We’re currently investigating an issue related to the forum theme and styling that is impacting page layout and visual formatting. The problem has been identified, and we are actively working on a resolution. There is no impact to user data or functionality, this is strictly a front-end display issue. We’ll post an update once the fix has been deployed. Thanks for your patience while we get this sorted.

Anyone else using XGL (the Linux OpenGL window and desktop renderer)?

I'm amazed that it works with my NVIDIA FX 5200. The only downside is that you have to disable it to run OpenGL applications, but that should be rectified in a future version.
 
It probably already is fixed.

With AIGLX I am able to use open source DRI drivers to run indirect rendered desktop with OpenGL applications pretty well. There is ugliness when trying to 'wobble' the opengl applications around, but it works.

The latest versions of Nvidia's drivers it should provide AIGLX support so you can run regular X.org stuff, but have it all 3d. You also need a new enough X.org version that supports AIGLX also.
 
Originally posted by: drag
It probably already is fixed.

With AIGLX I am able to use open source DRI drivers to run indirect rendered desktop with OpenGL applications pretty well. There is ugliness when trying to 'wobble' the opengl applications around, but it works.

The latest versions of Nvidia's drivers it should provide AIGLX support so you can run regular X.org stuff, but have it all 3d. You also need a new enough X.org version that supports AIGLX also.
I don't really understand the difference between XGL and AIGLX, nor do I really understand the difference between the two OpenGL compositing window managers: Compiz and Beryl. I'm running Compiz and XGL because it seemed to be the easiest to install with SUSE.
 
Well you have regular X server; Just the traditional XFree86 setup, X.org forked it and has been improving it.

there are 2 parts to a X server (the thing that controls the display and controller input). There is the DDX and DIX.

DDX stands for 'Device Dependant X'
and DIX stands for 'Device Independant X'.

Now DIX is common to all X.org-based X servers. This is the application, networking, library stuff. The things that application programmers deal with directly.

DDX is the portion of X that is dependant on the hardware and operating system. This is the stuff that controls the drivers, low-level display and stuff like that.

Now X.org actually has multiple DDX implimentations going on. The most common you deal with in Linux and that is the XFree DDX. But there are others. Such as Xnest, which is actually a X server inside of a Xserver. So you can have Gnome running on the regular XFree-style stuff (your standard desktop), but have Xnest running in a window on that running KDE.

Then besides those two there are DDXs for Windows and OS X as well as things like Kdrive, which are for more embedded-style devices.

Well a new one is called XGL. This is a DDX that uses OpenGL to be driven and is currently in development. The current XFree we use now uses it's own drivers and it's own stuff to control hardware. XGL on the other hand is more independant.. it doesn't control the hardware directly as it mearly uses OpenGL. Anything that supports OpenGL would (theoretically) support XGL.

Now this is the confusing part. The XGL you call XGL is not the XGL I am talking about. This is part of the evidence of the disconnect that happenned between Novell and the X.org developers.

The XGL from Suse and what your using right now is called XGLX by X.org folks. So we will call it XGLX.

Now XGLX uses portions from X.org's XGL and code is suppose to go back and forth.


At the current time there are some major limitations to OpenGL. OpenGL is a API for programming applications. It's not a API for programming _displays_. Most of what is required is there for programming a X server, but there lacks some details about things like being able to provide a way to resize a display.

So currently by sticking to pure OpenGL standards you can't do it. Currently people are working in including this into OpenGL, but obvoiusly this sort of thing is a bit slow.

Meanwhile X.org needs a lot of work. There are a lot of things that need to be done and a lot of new stuff that needs to be figured out. So while OpenGL is extended people are working on modernizing X.org.

XGLX is a approach by Novell to accomplish this. So the goal eventually is to move to a pure OpenGL-driven X (get rid of all legacy drivers, get rid of X controlling hardware and let the OS do all of that) So their approach is to run XGLX as a full screen application on top of a existing XFree-style X server. So when your in "XGLX" it's like being a full screen video game, except that it's a X server. This is what your currently using.


Now the second approach is championed by Redhat and is what is being used currently by X.org. This is called AIGLX.

Now AIGLX is not a X server like Novell's XGLX. What AIGLX is is a extension to the existing XFree-style xserver that enables accelerated indirect rendering.

Now you need to understand the difference between Direct Rendering vs Indirect Rendering.

Ok... You understand, of course, that XFree/X.org xservers is extensable. You can run extensions that add functionality.. like browser plugins.

Back in the day SGI had their operating system called Irix. They were pioneers in 3D graphics and out of the 3d API designed for Irix they created OpenGL. Now they had their own propriatory X, but they ended up developing GLX extension used by X.org that provided OpenGL support in the X server.

Then came the need to get hardware acceleration for OpenGL. Thus the DRI project was born. (developed from Mesa; the open source OpenGL stack), which created the Direct Rendering Infrastructure for accelerating OpenGL graphics. So with GLX and DRI extensions combined X.org can provide open source accelerated 3d graphics. (nvidia uses their own propriatory design to do direct rendering)

So now you have two ways to drive OpenGL graphics. One way is through indirect rendering, which the X server provides OpenGL.. Or through direct rendering were the application bypasses X completely and grabs OpenGL directly from the hardware driver libraries.

Traditionally only Direct Rendering was accelerated. It was the classic test to find out if you had hardware acceleration was to to check and make sure that direct rendering is enabled in your X server. Indirect rendering was always a sign that you had no acceleration for 3d graphics.

However AIGLX changes this. AIGLX provides accelerated indirect rendering, it's not as fast as direct rendering, but it is still accelerated and is still pretty fast.

When running Compiz or Beryl on a AIGLX-enabled X.org server they can do the OpenGL composition and then you get nice results without having to install any additional software. That is a very nice thing. You edit your x.org correctly you get AIGLX. No need to install extra software.


So in summary:
AIGLX is a extension to your regular X server that provides accelerated indirect rendering that can provide the basis nessicary to run Compiz/Beryl.

Novell's XGL is a full screen X server application that runs on top of your regular X server that can provide the basis nessicary to run Compiz/Beryl.


Hope that makes sense.
 
nor do I really understand the difference between the two OpenGL compositing window managers: Compiz and Beryl.

Compiz is a project and new compositing window manager developed by Novell.
Beryl is a fork from Compiz that concentrates on eye candy.

Also they aren't the only game in town either. For example one that is coming fairly soon is that Gnome has extended Metacity to include 3d composition features, but it won't be enabled by default by most distros until later.

 
If Novell's XGL is basically an OpenGL application running full screen, wouldn't you need a heck of a video card to then run another OpenGL application?
 
Not if you disable it first. 😉

It's certainly possible to run multiple 3d applications at once, but it's not very common for people to do that in Linux.
 
So they way it's working for me is definitely not with XGLX. However, I'm pretty sure it's not using AIGLX either. Now I don't really care about the nitty-gritty details, I just know it works, but the way it was explained to me is that the nvidia drivers have some extensions in them which enable opengl compositing without relying on AIGLX or XGLX. I'm definitely not running XGLX as I can run other opengl apps, and I'm pretty sure I'm not running AIGLX as I don't have the AIGLX flag enabled on my xorg.conf (and enabling it breaks my display).
 
AIGLX can provide direct rendering on top of XGL.

NVIDIA's built-in composite support can as well (don't need XGL or AIGLX). I'm using Beryl on NVIDIA's composite driver. It runs awesome, though I had some issues in the beginning that were fixed by uninstalling AIGLX.
 
Originally posted by: xtknight
AIGLX can provide direct rendering on top of XGL.

NVIDIA's built-in composite support can as well (don't need XGL or AIGLX). I'm using Beryl on NVIDIA's composite driver. It runs awesome, though I had some issues in the beginning that were fixed by uninstalling AIGLX.

Ah. I knew I had it right 🙂
 
Back
Top