View Full Version : ATI's X.Org DDX Driver Gets KMS Ready
phoronix
06-30-2009, 01:40 PM
Phoronix: ATI's X.Org DDX Driver Gets KMS Ready
With the forthcoming Linux 2.6.31 kernel there is finally Radeon kernel mode-setting support so that those running ATI graphics cards on Linux will be able to experience a cleaner boot process, faster VT switching, improved security, and other overdue features for Linux. Using kernel mode-setting with ATI Radeon hardware will require a supported kernel that is built with the appropriate kernel configuration options. In addition, an updated DDX driver is also necessary so it realizes the kernel is handling the mode-setting process...
http://www.phoronix.com/vr.php?view=NzM1Ng
Louise
06-30-2009, 02:28 PM
So this is a vital patch before KMS for R600 and R700 can be implemented?
smitty3268
06-30-2009, 02:39 PM
So this is a vital patch before KMS for R600 and R700 can be implemented?
This was required before ANY radeon card could use KMS, both R600+ and the older generations. I believe the stuff that isn't working just for the newer cards is in the kernel and Mesa codebases. Not sure about DRM.
r1348
06-30-2009, 02:48 PM
The transition to KMS should be quite straight-forward, as it has been enabled in Fedora for a year now, providing a pretty long testing time frame.
Louise
06-30-2009, 04:24 PM
This was required before ANY radeon card could use KMS, both R600+ and the older generations. I believe the stuff that isn't working just for the newer cards is in the kernel and Mesa codebases. Not sure about DRM.
I see :)
It would be nice with a dependency tree. E.g.
KMS -> 3D -> Power Management
... and all the other stuff at
http://www.x.org/wiki/RadeonFeature
:)
MùPùF
06-30-2009, 07:53 PM
I've just tried this out and it didn't work well :o !
I didn't take the time to figure out why, just wanted to say recompiling was not sufficient for me.
I've fall back on the kms branch that kind of "works".
smitty3268
06-30-2009, 09:09 PM
It would be nice with a dependency tree.
As I understand it:
possible to work on now:
r600+ 3D (OpenGL1.4)
video acceleration (shader, not UVD2)
power management (already in master branch)
memory manager -> KMS
memory manager -> DRI2
memory manager -> Gallium
Gallium -> more advanced 3D (OpenGL2.0+)
Gallium -> generic video acceleration framework
KMS -> more advanced power management
bridgman
06-30-2009, 11:27 PM
AFAICS this patch merges some of the existing KMS support into master. Kernel and mesa support have already been merged (2.6.31 for the kernel, radeon-rewrite merge for mesa), so once this merge is done all the big pieces for KMS support will be in their respective master trees.
I don't think this does anything specific for 6xx/7xx but it does mean that work can now be based on master rather than on another branch, which is really nice.
Smitty3268, I made a few minor changes, see below. Otherwise your list looks good.
memory manager -> KMS
memory manager -> DRI2 / RDR (RDR is what everyone really wants)
memory manager -> Gallium3D
memory manager -> more advanced 3D (OpenGL 1.5+) via chip-specific code
Gallium3D -> more advanced 3D (OpenGL 1.5+) via generic code
Gallium3D -> generic video acceleration framework
KMS -> more advanced power management (dynamic control of clocks etc..)
tormod
07-01-2009, 08:40 AM
I've just tried this out and it didn't work well :o !
I didn't take the time to figure out why, just wanted to say recompiling was not sufficient for me.
I've fall back on the kms branch that kind of "works".
The commit in question, which was applied to master, does not provide KMS support. It is just some preparations for the final KMS patch to land later. So you will still have to use the kms-support branch for a while.
Louise
07-01-2009, 09:21 AM
If I combine the brances on the dependency tree, it becomes
memory manager -+-> KMS -> more advanced power management (dynamic control of clocks etc..)
|
+-> DRI2 / RDR (RDR is what everyone really wants)
|
+-> more advanced 3D (OpenGL 1.5+) via chip-specific code
|
+-> Gallium3D -+-> more advanced 3D (OpenGL 1.5+) via generic code
|
+-> generic video acceleration framework
Edit: branch 1 and 3 are not the same :D My bad :)
But can I ask where these go on the tree?:
* OpenCL
* TV-out
* GLSL
* Display Port
bridgman
07-01-2009, 10:25 AM
Looking good.
- OpenCL depends on Gallium3D
- TV-out is just a big pain in the butt and doesn't depend on anything other than a big heap of free time
- I would treat GLSL as part of "more advanced 3D", ie it could happen in classic mesa but will probably only happen on Gallium3D
- display port doesn't depend on anything
Louise
07-01-2009, 10:56 AM
Looking good.
So when people ask "when will we get OpenCL" this can be pasted in as reply :D
memory manager -+-> KMS -> advanced power management (dynamic control of clocks etc..)
|
+-> DRI2 / RDR (RDR is what everyone really wants)
|
+-> advanced MESA 3D (OpenGL 1.5+) via chip-specific code
|
+-> Gallium3D -+-> advanced 3D (OpenGL 1.5+, GLSL) via generic code
|
+-> generic video acceleration framework
|
+-> OpenCL
No dependencies:
* TV-out
* Display Port
- TV-out is just a big pain in the butt and doesn't depend on anything other than a big heap of free time
When AMD started to make their own north- and south-bridges, I read an interview where someone from AMD was asked, why their south bridges didn't have an AMD developed sound codec.
The answer was something like: "The devil is on the analogue side, and we have no plans on waking him".
Is that also the problem with TV-out?
- I would treat GLSL as part of "more advanced 3D", ie it could happen in classic mesa but will probably only happen on Gallium3D
Because the API's are cleaner on Gallium3D?
bridgman
07-01-2009, 11:47 AM
When AMD started to make their own north- and south-bridges, I read an interview where someone from AMD was asked, why their south bridges didn't have an AMD developed sound codec.
The answer was something like: "The devil is on the analogue side, and we have no plans on waking him".
Is that also the problem with TV-out?
I don't think so -- in theory we know how to program it, but it's not working and debugging takes a long time. We'll probably have to dig through the fglrx source code to see what is done there, but that is a non-trivial task as well.
(regarding GLSL) Because the API's are cleaner on Gallium3D?
Mostly because the GLSL compiler work can (in theory) be "done once" and used across multiple GPU families, where GLSL gets compiled to TGSI by common code then each driver only needs to convert TGSI into GPU-specific instructions.
Yes there's a lot of "in theory" here :D
Louise
07-01-2009, 12:03 PM
I don't think so -- in theory we know how to program it, but it's not working and debugging takes a long time. We'll probably have to dig through the fglrx source code to see what is done there, but that is a non-trivial task as well.
Sounds a lot like the "GURU Meditation" from the Amiga :D
From http://en.wikipedia.org/wiki/Guru_Meditation
Early in the development of the Amiga computer operating system, the company's developers became so frustrated with the system's frequent crashes that, as a relaxation technique, a game was developed where a person would sit cross-legged on the joyboard, resembling an Indian guru. The player was supposed to remain perfectly still with the goal of the game being to stay still the longest. If the player moved, a "guru meditation error" resulted.
Mostly because the GLSL compiler work can (in theory) be "done once" and used across multiple GPU families, where GLSL gets compiled to TGSI by common code then each driver only needs to convert TGSI into GPU-specific instructions.
Yes there's a lot of "in theory" here :D
Impressive.
Sounds like someone could pitch a job in the industry, if they made this their thesis :)
bridgman
07-01-2009, 02:28 PM
Sounds a lot like the "GURU Meditation" from the Amiga :D
Interesting; I didn't know about Guru Meditation Errors.
Finding something in a large piece of software like the proprietary driver reminds me of a short story I read a long time ago. If I remember correctly, it involved an infinite number of monkeys with typewriters, an angel cast out from Paradise and tasked with supervising said monkeys, and a block of granite a parsec or so on each side. Every 1000 years a small bird would stop by and sharpen its beak on the block, gradually wearing down the block and providing a way to measure the passage of time.
EDIT - found it - "Been a long, long time" by R. A. Lafferty. There is an xkcd comic in a similar vein, but it's not as good : http://xkcd.com/505/
Impressive. Sounds like someone could pitch a job in the industry, if they made this their thesis :)
True. The best news, though, is that the work has (in theory) already been done and is (in theory) working on Intel 915 parts. I imagine it still needs some work though, or I would have expected the Intel devs to jump across to Gallium3D immediately (since GEM and DRI2 are already available).
Louise
07-01-2009, 06:08 PM
Interesting; I didn't know about Guru Meditation Errors.
Could be inspiration for Linux' "Don't PANIC" screen =)
Or maybe is should read "Maybe it is a good time to panic"? =)
But it would probably offend some "Hitchhiker's Guide to the Galaxy" fans :D
Finding something in a large piece of software like the proprietary driver reminds me of a short story I read a long time ago. If I remember correctly, it involved an infinite number of monkeys with typewriters, an angel cast out from Paradise and tasked with supervising said monkeys, and a block of granite a parsec or so on each side. Every 1000 years a small bird would stop by and sharpen its beak on the block, gradually wearing down the block and providing a way to measure the passage of time.
HAHA :D Is the proprietary driver that big? How many lines of code are we talking about here?
EDIT - found it - "Been a long, long time" by R. A. Lafferty. There is an xkcd comic in a similar vein, but it's not as good : http://xkcd.com/505/
I can find references to it, but it doesn't seam to be online.
True. The best news, though, is that the work has (in theory) already been done and is (in theory) working on Intel 915 parts. I imagine it still needs some work though, or I would have expected the Intel devs to jump across to Gallium3D immediately (since GEM and DRI2 are already available).
That is pretty strange.
I have added the dependency tree to
http://www.x.org/wiki/RadeonFeature
It stands a little out from the beautiful colour matrix, but hopefully it gets to stay anyway :)
madman2k
07-02-2009, 12:48 PM
for you interest I made a blog post out of this thread, containing a nice graphics:
http://www.rojtberg.net/271/4-years-later/
bridgman
07-02-2009, 12:55 PM
Looks good. I was expecting to see something with monkeys and typewriters surrounded by a flashing red border, this is much better :D
BTW it looks like the porting has now finished; when this thread started only the first part of the work had been ported back to master : http://airlied.livejournal.com/67545.html
whizse
07-02-2009, 01:24 PM
for you interest I made a blog post out of this thread, containing a nice graphics:
http://www.rojtberg.net/271/4-years-later/
As you mention both AMD and Intel in your blog post, I think it should be fair to point out that the Intel drivers already support OpenGL 2.1.
Louise
07-02-2009, 01:30 PM
for you interest I made a blog post out of this thread, containing a nice graphics:
http://www.rojtberg.net/271/4-years-later/
Very interesting to get a break down on things :)
Have you looked at Radeon Feature Matrix on x.org since yesterday?
The Gallium features have been added. There is quite a lot. Unfortunately many of them have been shorten, so some of they makes no sense at all. Like EGL and WGL.
Notice how R200 stands out.
Pitabred
07-02-2009, 01:31 PM
Could be inspiration for Linux' "Don't PANIC" screen =)
Or maybe is should read "Maybe it is a good time to panic"? =)
But it would probably offend some "Hitchhiker's Guide to the Galaxy" fans :D
So let's make it "Please make sure you have your towel" ;)
Louise
07-02-2009, 04:49 PM
Looks good. I was expecting to see something with monkeys and typewriters surrounded by a flashing red border, this is much better :D
BTW it looks like the porting has now finished; when this thread started only the first part of the work had been ported back to master : http://airlied.livejournal.com/67545.html
Impressive!
But how do we know that Airlied exists, and what we see is not the product of 1000 monkeys with IBM Model-M keyboards?
Have anyone meet Airlied in real life? :)
bridgman
07-02-2009, 05:05 PM
I have. He doesn't look anything like his avatar.
Louise
07-02-2009, 05:11 PM
I have. He doesn't look anything like his avatar.
I knew something was up :D
vBulletin® v3.8.4, Copyright ©2000-2009, Jelsoft Enterprises Ltd.