[Xorg] X on OpenGL
mouschi at wi.rr.com
Sun Jul 11 13:00:00 PDT 2004
On Sun, 11 Jul 2004 09:50:32 -0700
Keith Packard <keithp at keithp.com> wrote:
> Around 13 o'clock on Jul 11, Soeren Sandmann wrote:
> > - mode setting
> > Changing the mode of hardware
> We're already talking about moving this to an external library which can
> be shared by all graphics applications; my assumption here is that the
> system-dependent pieces for a 'Gl-solo' based X server would include an
> interface to this library.
> I don't have a solid idea about how that library should be constructed;
> whether the X server should be in charge of mode selection at any level or
> whether it should just react to externally controlled events.
I have another concern that sort of relates to this: games.
With a OpenGL-based X server, we're going to end up using a lot of video memory. Games these days pretty much need all the resources they can get.
So, this relates to mode switching because of how I see this being solved. Currently, as a user, I see that linux will allow each VT to have its own mode. VT1 can be a 640x480 console, VT2 can be a 1600x1200 console, VT7 can be my 1024x768 X server. I assume that this is a result of framebuffer kernel support. I like this mechanism. To make a mode-changing library work with it, it'd need two methods:
1. Create a new VT with a certain mode
2. Change the current VT's mode
Now, with method 1, the X server would start up and take a new VT, as it does now, but it also means that games would have an simple method of starting up and taking a new VT.
The reason that would be important is because of the (eventual?) video memory manager that'd live in the kernel. That VMM could quite simply make all of video memory be controled by whatever program controls the current VT. If the game needs more video memory, the Xserver's is just displaced into system RAM by the kernel mechanism.
Obviously I'm concerned only with linux here, the mode changing library would just need to be able to support this kind of behavior, not necessarily do it this way (for other OSs without kernel support like this).
Does this make sense, or am I being naive? (I'm certainly not an X or kernel hacker...)
More information about the xorg