From: "Jon Smirl" <jonsmirl@gmail.com>
To: "Jeff Garzik" <jeff@garzik.org>
Cc: "D. Hazelton" <dhazelton@enter.net>,
"Dave Airlie" <airlied@gmail.com>,
"Alan Cox" <alan@lxorguk.ukuu.org.uk>,
"Kyle Moffett" <mrmacman_g4@mac.com>,
"Manu Abraham" <abraham.manu@gmail.com>,
"linux cbon" <linuxcbon@yahoo.fr>,
"Helge Hafting" <helge.hafting@aitel.hist.no>,
Valdis.Kletnieks@vt.edu, linux-kernel@vger.kernel.org
Subject: Re: OpenGL-based framebuffer concepts
Date: Thu, 25 May 2006 10:04:45 -0400 [thread overview]
Message-ID: <9e4733910605250704m68235d88lcd8eaedfda5e63cf@mail.gmail.com> (raw)
In-Reply-To: <44756E70.9020207@garzik.org>
On 5/25/06, Jeff Garzik <jeff@garzik.org> wrote:
> * Review Dave Airlie's posts, he's been pretty spot-on in this thread.
> There needs to be a lowlevel driver that handles PCI functionality, and
> registers itself with the fbdev and DRM layers. The fbdev/DRM
> registrations need to be aware of each other. Once that is done, work
> will proceed more rapidly.
Controlling which driver is bound to the hardware is an easy problem
that a low level driver handles nicely. But controlling binding
doesn't really fix anything. All of the drivers binding to it still
have to duplicate all of the code for things like VRAM allocation, GPU
start/stop, mode setting, etc. That's because the second level drivers
can't count on the other drivers being loaded. The giant mess of whose
state is loaded into the hardware still exists too. Just consider the
simple problem of who EOI's an interrupt.
I would instead start by making fbdev the low level driver. DRM could
then bind to it and redundant code in DRM could be removed. 90% of the
code in fbdev is always needed. Hopefully X could be convinced to use
the services offered by the fbdev/DRM pair. New memory management code
would be added to this base driver since everyone needs it. Fbdev
would also pick up the ability to reset secondary cards at boot.
I concede that loading both drivers will increase RAM usage slightly.
At some point it will be worth the effort to split an API
compatibility layer off from the lowlevel fbdev driver. But this is a
lot of work to get back <40K of RAM.
A related issue to this is mode setting. Initially I would leave it
alone in the fbdev code. Later it would use a collection of apps like
this. Mode setting is at the core of why X has to run as root.
|A good first project would be to start building a set of user space
|apps for doing the mode setting on each card. All of the code for
|doing this exists in the X server but it is a pain to extract. X has
|1000s of internal APIs and typedefs. You would end up with a set of
|apps that would be able to list the valid modes on each head and then
|set them. The code for achieving this is all over the map, sometimes
|we know everything needed like for the Radeon, sometimes you need to
|make a VM86 call to the BIOS to get the info (Intel). Load an fbdev
|driver and check out the current support for this in sysfs.
|
|When you get done with a command it should be a tiny app statically
|linked to klibc and have no external dependencies. These apps should
|be 30K or less in size. You probably will end up with about ten apps
|since a lot of the uncommon cards only have a standard VBE BIOS and
|will all use the same command.
Mode setting has at least these requirements...
1) Ability to be done at boot from initramfs
2) Ability for a user to change their mode without being root
3) No ability for a normal user to change the mode on hardware that
they do not own
4) Some hardware requires modes to be set using vm/emu86.
5) Monitor hotplug event needs to ensure that the new monitor receives
a valid mode
6) An interlock needs to be in place to stop simultaneous attempts to
change the mode
A key design problem is not requiring root and making sure you can't
change the mode on hardware that you don't own. This introduces the
entire concept of video hardware belonging to the logged in user.
I've written up more thoughts on this in the Kernel section of
http://jonsmirl.googlepages.com/graphics.html
I'm certainly open to any solutions that can satisfy the requirements.
Every solution that I've come up with so far is fairly complex.
--
Jon Smirl
jonsmirl@gmail.com
next prev parent reply other threads:[~2006-05-25 14:04 UTC|newest]
Thread overview: 321+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-05-16 21:41 replacing X Window System ! linux cbon
2006-05-16 21:51 ` Michal Piotrowski
2006-05-16 21:57 ` Måns Rullgård
2006-05-16 23:23 ` Alistair John Strachan
2006-05-16 22:19 ` alan
2006-05-16 22:42 ` Valdis.Kletnieks
2006-05-16 23:05 ` alan
2006-05-17 11:47 ` linux cbon
2006-05-17 12:18 ` Valdis.Kletnieks
2006-05-17 12:39 ` linux cbon
2006-05-17 13:19 ` Valdis.Kletnieks
2006-05-17 14:10 ` Panagiotis Issaris
2006-05-17 14:19 ` Ondrej Zary
2006-05-17 14:23 ` Olivier Galibert
2006-05-17 14:46 ` Bob Copeland
2006-05-17 13:24 ` Lennart Sorensen
2006-05-17 13:46 ` Bob Copeland
2006-05-17 14:01 ` Michal Piotrowski
2006-05-17 13:39 ` Jesper Juhl
2006-05-17 14:53 ` linux cbon
2006-05-17 15:09 ` Valdis.Kletnieks
2006-05-17 15:14 ` Valdis.Kletnieks
2006-05-17 15:30 ` linux-os (Dick Johnson)
2006-05-17 16:29 ` Valdis.Kletnieks
2006-05-17 15:53 ` linux cbon
2006-05-17 16:09 ` Randy.Dunlap
2006-05-17 16:12 ` Stas Myasnikov
2006-05-17 15:16 ` Alan Cox
2006-05-17 15:49 ` linux cbon
2006-05-17 16:11 ` Stas Myasnikov
2006-05-17 17:52 ` Gábor Lénárt
2006-05-17 17:17 ` Felipe Alfaro Solana
2006-05-17 17:33 ` grundig
2006-05-18 15:42 ` Lennart Sorensen
2006-05-18 18:40 ` grundig
2006-05-18 12:00 ` Helge Hafting
2006-05-18 17:28 ` linux cbon
2006-05-18 18:42 ` Valdis.Kletnieks
2006-05-18 18:52 ` Thierry Vignaud
2006-05-18 19:31 ` linux cbon
2006-05-18 19:37 ` David Lang
2006-05-18 20:12 ` Gerhard Mack
2006-05-18 22:22 ` linux cbon
2006-05-19 9:09 ` Martin Mares
2006-05-18 20:12 ` Adrian Bunk
2006-05-18 21:47 ` Valdis.Kletnieks
2006-05-18 22:03 ` linux cbon
2006-05-18 22:23 ` Al Viro
2006-05-21 14:56 ` Stefan Smietanowski
2006-05-19 9:26 ` Helge Hafting
2006-05-19 11:08 ` Panagiotis Issaris
2006-05-19 13:07 ` Helge Hafting
2006-05-19 14:34 ` David Greaves
2006-05-19 14:40 ` Xavier Bestel
2006-05-19 15:13 ` linux cbon
2006-05-19 15:18 ` Xavier Bestel
2006-05-19 22:09 ` linux cbon
2006-05-19 22:51 ` Peter Gordon
2006-05-21 20:49 ` Xavier Bestel
2006-05-20 0:43 ` Jeff Carr
2006-05-19 15:01 ` Sander
2006-05-19 22:29 ` Jan Engelhardt
2006-05-19 22:34 ` David Lang
2006-05-19 22:20 ` Jan Engelhardt
2006-05-19 22:40 ` linux cbon
2006-05-20 1:02 ` Adrian Bunk
2006-05-20 6:31 ` Willy Tarreau
2006-05-20 8:25 ` jerome lacoste
2006-05-21 6:16 ` Valdis.Kletnieks
2006-05-21 12:17 ` linux cbon
2006-05-21 6:38 ` Manu Abraham
2006-05-23 5:08 ` OpenGL-based framebuffer concepts Kyle Moffett
2006-05-23 0:48 ` D. Hazelton
2006-05-23 17:17 ` Jon Smirl
2006-05-23 22:57 ` Matthew Garrett
2006-05-23 23:38 ` Jon Smirl
2006-05-23 23:24 ` D. Hazelton
2006-05-24 4:21 ` Jon Smirl
2006-05-24 0:42 ` D. Hazelton
2006-05-24 4:57 ` Jon Smirl
2006-05-24 1:04 ` D. Hazelton
2006-05-24 14:30 ` Chase Venters
2006-05-24 13:32 ` Paulo Marques
2006-05-24 6:39 ` Helge Hafting
2006-05-24 13:17 ` Stefan Seyfried
2006-05-24 22:08 ` Matthew Garrett
2006-05-24 22:09 ` D. Hazelton
2006-05-24 22:41 ` Jon Smirl
2006-05-24 1:50 ` Jeff Garzik
2006-05-24 7:30 ` Matthew Garrett
2006-05-24 0:10 ` Kyle Moffett
2006-05-23 23:27 ` D. Hazelton
2006-05-24 0:24 ` Jon Smirl
2006-05-24 7:03 ` Helge Hafting
2006-05-24 13:55 ` Alexander E. Patrakov
2006-05-24 14:49 ` Jon Smirl
2006-05-24 14:56 ` Alexander E. Patrakov
2006-05-24 16:15 ` Matheus Izvekov
2006-05-24 16:26 ` Alexander E. Patrakov
2006-05-24 16:32 ` Jon Smirl
2006-05-26 4:57 ` Alexander E. Patrakov
2006-05-26 2:09 ` D. Hazelton
2006-05-26 7:12 ` Helge Hafting
2006-05-24 16:42 ` Matheus Izvekov
2006-05-24 17:34 ` Xavier Bestel
2006-05-26 7:05 ` Helge Hafting
2006-05-26 7:59 ` Xavier Bestel
2006-05-26 6:58 ` Helge Hafting
2006-05-24 22:03 ` D. Hazelton
2006-05-26 7:08 ` Helge Hafting
2006-05-26 8:32 ` Alexander E. Patrakov
2006-05-26 10:58 ` Helge Hafting
2006-05-26 11:06 ` Xavier Bestel
2006-05-24 15:41 ` Geert Uytterhoeven
2006-05-23 10:11 ` Alan Cox
2006-05-23 10:28 ` Jeff Garzik
2006-05-23 14:10 ` Kyle Moffett
2006-05-23 14:43 ` Alan Cox
2006-05-23 15:41 ` Kyle Moffett
2006-05-23 16:53 ` Alan Cox
[not found] ` <9b5164430605231015s40ebcd38had1c3029da8afc7@mail.gmail.com>
2006-05-23 17:21 ` Xiong Jiang
2006-05-24 12:47 ` Alan Cox
2006-05-23 23:31 ` D. Hazelton
2006-05-23 15:52 ` Rene Rebe
2006-05-23 23:41 ` D. Hazelton
2006-05-24 4:48 ` Jon Smirl
2006-05-24 5:24 ` Jeff Garzik
2006-05-23 23:38 ` D. Hazelton
2006-05-24 4:08 ` Dave Airlie
2006-05-24 0:17 ` D. Hazelton
2006-05-24 5:14 ` Dave Airlie
2006-05-24 1:30 ` D. Hazelton
2006-05-24 5:48 ` Dave Airlie
2006-05-24 2:11 ` D. Hazelton
2006-05-26 17:53 ` Pavel Machek
2006-05-27 18:03 ` D. Hazelton
2006-05-24 15:27 ` Jon Smirl
2006-05-24 23:18 ` Dave Airlie
2006-05-24 23:56 ` Jon Smirl
2006-05-25 0:31 ` Dave Airlie
2006-05-25 0:55 ` Jeff Garzik
2006-05-25 2:37 ` D. Hazelton
2006-05-25 8:44 ` Jeff Garzik
2006-05-25 14:04 ` Jon Smirl [this message]
2006-05-25 15:07 ` Jeff Garzik
2006-05-25 15:37 ` Jon Smirl
2006-05-25 23:04 ` Dave Airlie
2006-05-25 23:17 ` Jeff Garzik
2006-05-25 23:31 ` Dave Airlie
2006-05-25 23:19 ` Jeff Garzik
2006-05-25 23:48 ` Jon Smirl
2006-05-25 15:57 ` Paulo Marques
2006-05-25 18:01 ` Alan Cox
2006-05-26 11:26 ` Olivier Galibert
2006-05-25 16:13 ` Greg KH
2006-05-26 17:39 ` Pavel Machek
2006-05-27 18:01 ` D. Hazelton
2006-05-28 0:03 ` Jon Smirl
2006-05-27 22:13 ` D. Hazelton
2006-05-28 2:34 ` Jon Smirl
2006-05-27 22:45 ` D. Hazelton
2006-05-28 3:27 ` Jon Smirl
2006-05-28 1:12 ` D. Hazelton
2006-05-28 23:13 ` Dave Airlie
2006-05-28 23:16 ` D. Hazelton
2006-05-29 3:43 ` Dave Airlie
2006-05-29 4:05 ` Jon Smirl
2006-05-29 0:25 ` D. Hazelton
2006-05-29 4:58 ` Neil Brown
2006-05-29 2:07 ` D. Hazelton
2006-05-29 5:14 ` Dave Airlie
2006-05-29 2:09 ` D. Hazelton
2006-05-29 5:28 ` Neil Brown
2006-05-29 7:14 ` Dave Airlie
2006-05-31 21:42 ` Jan Engelhardt
2006-05-31 21:15 ` D. Hazelton
2006-06-01 9:43 ` Jan Engelhardt
2006-06-01 11:51 ` Marko M
2006-06-01 15:54 ` D. Hazelton
2006-06-01 21:39 ` Antonino A. Daplas
2006-05-29 0:59 ` Jon Smirl
2006-05-29 1:29 ` Daniel Stone
2006-05-29 2:28 ` Jon Smirl
2006-05-30 17:40 ` David Lang
2006-05-30 21:53 ` Antonino A. Daplas
2006-05-30 21:55 ` Antonino A. Daplas
2006-05-30 22:13 ` Jon Smirl
2006-06-02 8:36 ` Ondrej Zajicek
2006-06-02 8:58 ` Pavel Machek
2006-06-02 18:49 ` David Lang
2006-06-02 22:01 ` Pavel Machek
2006-06-02 19:57 ` David Lang
2006-06-02 23:25 ` Antonino A. Daplas
2006-06-03 6:32 ` Pavel Machek
2006-06-03 7:05 ` Antonino A. Daplas
2006-06-03 16:35 ` Kyle Moffett
2006-06-03 20:55 ` Antonino A. Daplas
2006-06-02 12:17 ` Antonino A. Daplas
2006-05-30 22:35 ` Ondrej Zajicek
2006-05-30 22:55 ` Jon Smirl
2006-05-31 6:48 ` Martin Mares
2006-05-31 7:13 ` Jon Smirl
2006-05-31 3:25 ` D. Hazelton
2006-05-31 7:19 ` Martin Mares
2006-05-31 12:09 ` Helge Hafting
2006-05-31 13:34 ` Pavel Machek
2006-05-31 13:56 ` Martin Mares
2006-05-30 23:21 ` Antonino A. Daplas
2006-05-31 8:26 ` Ondrej Zajicek
2006-05-31 10:25 ` Marko M
2006-05-31 11:59 ` Antonino A. Daplas
2006-05-31 19:24 ` Geert Uytterhoeven
2006-05-31 19:57 ` Jon Smirl
2006-05-31 20:32 ` Matthew Garrett
2006-05-31 21:23 ` Jon Smirl
2006-06-01 2:21 ` Antonino A. Daplas
2006-05-29 10:23 ` Pavel Machek
2006-05-29 10:36 ` Dave Airlie
2006-05-29 12:48 ` Pavel Machek
2006-05-29 21:23 ` Jeff Garzik
2006-05-29 21:45 ` Pavel Machek
2006-05-30 17:44 ` David Lang
2006-05-30 20:18 ` Pavel Machek
2006-05-29 22:10 ` Jon Smirl
2006-05-29 22:58 ` D. Hazelton
2006-05-29 22:57 ` D. Hazelton
2006-05-29 23:23 ` Dave Airlie
2006-05-29 23:48 ` Marko M
2006-05-30 1:39 ` Ian Kester-Haney
2006-05-30 2:09 ` Randy.Dunlap
[not found] ` <441e43c90605291936t19caa0eat4bd4b699e0ac9202@mail.gmail.com>
2006-05-30 2:37 ` Fwd: " Ian Kester-Haney
2006-05-30 10:49 ` Alexey Dobriyan
2006-05-30 20:24 ` Pavel Machek
2006-05-30 20:56 ` Jon Smirl
2006-05-30 21:15 ` Ian Kester-Haney
2006-05-30 23:01 ` Dave Airlie
2006-05-30 23:27 ` Jon Smirl
2006-05-30 23:14 ` D. Hazelton
2006-05-31 4:02 ` Jon Smirl
2006-05-31 0:11 ` D. Hazelton
2006-05-31 4:16 ` Jon Smirl
2006-05-31 0:26 ` D. Hazelton
2006-05-31 4:39 ` Jon Smirl
2006-05-31 0:45 ` D. Hazelton
2006-06-01 0:50 ` Antonino A. Daplas
2006-06-01 1:37 ` Jon Smirl
2006-06-01 1:56 ` Antonino A. Daplas
2006-06-01 2:19 ` Jon Smirl
2006-05-31 22:36 ` D. Hazelton
2006-06-01 2:49 ` Jon Smirl
2006-06-01 9:28 ` Ondrej Zajicek
2006-06-01 16:59 ` Jon Smirl
2006-06-01 14:59 ` David Lang
2006-06-01 16:03 ` D. Hazelton
2006-06-01 20:35 ` Jon Smirl
2006-06-01 16:47 ` D. Hazelton
2006-06-01 21:21 ` Jon Smirl
2006-06-01 22:22 ` D. Hazelton
2006-06-01 21:05 ` Antonino A. Daplas
2006-06-01 21:23 ` Jon Smirl
2006-06-01 21:31 ` Antonino A. Daplas
2006-06-01 21:48 ` Jon Smirl
2006-06-01 22:21 ` Pavel Machek
2006-06-01 23:14 ` Antonino A. Daplas
2006-06-01 23:00 ` Andrew Morton
2006-06-01 23:39 ` Antonino A. Daplas
2006-06-01 23:14 ` Dave Airlie
2006-06-01 23:38 ` Jon Smirl
2006-06-01 23:47 ` Dave Airlie
2006-06-02 0:45 ` Jon Smirl
2006-06-02 9:05 ` Pavel Machek
2006-06-02 9:03 ` Pavel Machek
2006-06-02 1:15 ` Dave Airlie
2006-06-02 2:18 ` Jon Smirl
2006-06-01 22:34 ` D. Hazelton
2006-06-02 2:58 ` Jon Smirl
2006-06-01 23:01 ` D. Hazelton
2006-06-02 3:16 ` Jon Smirl
2006-06-02 0:34 ` D. Hazelton
2006-06-02 2:45 ` Dave Airlie
2006-06-02 3:27 ` Jon Smirl
2006-06-02 4:28 ` Jon Smirl
2006-06-02 0:35 ` D. Hazelton
2006-06-02 9:00 ` Pavel Machek
2006-06-03 3:21 ` Kyle Moffett
2006-06-03 1:25 ` D. Hazelton
2006-06-03 5:55 ` Jon Smirl
2006-06-03 2:09 ` D. Hazelton
2006-06-03 6:31 ` Jon Smirl
2006-06-03 2:38 ` D. Hazelton
2006-06-03 4:03 ` Jon Smirl
2006-06-08 7:02 ` Helge Hafting
2006-06-08 7:40 ` Daniel Hazelton
2006-06-08 8:30 ` Antonino A. Daplas
2006-06-09 2:44 ` Daniel Hazelton
2006-06-02 4:34 ` Ville Syrjälä
2006-06-02 0:36 ` D. Hazelton
2006-06-02 6:19 ` Dave Airlie
2006-06-02 17:31 ` Ville Syrjälä
2006-06-02 1:42 ` Antonino A. Daplas
2006-05-31 8:08 ` Pavel Machek
2006-05-30 23:38 ` Daniel Stone
2006-05-30 23:38 ` Pavel Machek
2006-05-30 23:55 ` Jon Smirl
2006-05-30 23:38 ` Pavel Machek
2006-05-31 0:00 ` Antonino A. Daplas
2006-05-31 0:47 ` Jon Smirl
2006-05-31 1:23 ` Antonino A. Daplas
2006-05-31 2:34 ` Jon Smirl
2006-05-18 20:27 ` replacing X Window System ! D. Hazelton
2006-05-17 13:20 ` Lennart Sorensen
2006-05-17 18:34 ` Jan Engelhardt
2006-05-16 23:10 ` Felipe Alfaro Solana
2006-05-17 8:46 ` Ondrej Zary
2006-05-17 9:59 ` Carlos Silva
2006-05-17 13:27 ` Lennart Sorensen
2006-05-17 17:37 ` David Schwartz
2006-05-17 17:46 ` alan
2006-05-17 17:56 ` Gábor Lénárt
2006-05-17 17:12 ` Felipe Alfaro Solana
2006-05-19 10:27 ` [OT] " Jan Knutar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=9e4733910605250704m68235d88lcd8eaedfda5e63cf@mail.gmail.com \
--to=jonsmirl@gmail.com \
--cc=Valdis.Kletnieks@vt.edu \
--cc=abraham.manu@gmail.com \
--cc=airlied@gmail.com \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=dhazelton@enter.net \
--cc=helge.hafting@aitel.hist.no \
--cc=jeff@garzik.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxcbon@yahoo.fr \
--cc=mrmacman_g4@mac.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®