In previous discussions I never said OpenGL in the kernel, I only said DRM in
the kernel. Item four was a very brief recap that left out a lot of detail. The
kernel console uses a direct entry point into the DRM driver. This direct entry
point has enough state to display no matter what is happening in user space.
That is why I separated user console from kernel console. I am definitely
against 2MB OpenGL device drivers.

However, I am saying that we need a blend between framebuffer and DRM. Not DRM
bolted on top of framebuffer. 

For example the kernel console entry point may be implemented quite differently
for different hardware. One implementation might just store the strings and
compute the display on SysReq. Another might immediately put the strings into a
background framebuffer and display it on SysReq. Another might encode them as a
queue of hardware commands and execute the queue on the main framebuffer.

Virtual terminals may be implemented differently too. Why can't each virtual
terminal have a screen buffer allocated in VRAM? Then on VT switch the video
base pointer is simply moved around. Now run xserver with compositing. Since you
have all of the VTs in video RAM they can be composited along with all of the
other X windows.

Linux's current design has lots of holes in it. Start two X servers on two
different VTs (not just two sessions to the same X server) you're going to
reboot your machine. Modprobe in the framebuffer driver for your video card from
an xterm window, you're going to reboot to fix it. These are examples of mutlple
systems trying to control the video hardware in an uncontrolled way. The only
reason anything works today is because there are some gentleman's agreements
between various systems not to stomp on each other.

In order to achive safety on graphics hardware you have to reach one of these
four conclusions:
1) There should be a single device drivers controlling access to the video
hardware
2) There should a single device driver presenting virtual hardware. Other
apps/devices can then use this virtual device however they see fit.
3) Every app and device driver has to completely cooperate with each other and
never take an action that will interfere with another's user of the video
hardware.
4) Each VT session can do what it wants to the video hardware. At VT swap the
entire state of all registers, VRAM, AGP memory, outstanding DMA, interrupt
handlers, etc is saved and the state of the next VT is loaded.

Right now Linux is taking choice number three.


=====
Jon Smirl
[EMAIL PROTECTED]

__________________________________
Do you Yahoo!?
Yahoo! Mail - More reliable, more storage, less spam
http://mail.yahoo.com


-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
--
_______________________________________________
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to