PDA

View Full Version : Radeon 3D Wiki drive


nhaehnle
10-13-2009, 04:06 PM
Since I did it mostly in response to comments / complaints here in this forum, I'd be interesting in getting feedback here. The blog post is here (http://nhaehnle.blogspot.com/2009/10/radeon-3d-wiki-drive.html), but for the incurably lazy, I'll replicate it here ;)

Outsiders of the group of developers regularly complain that it's very hard to get an understanding of what happens in development of the Radeon driver(s). They have convinced me.

So I've spent some time to refactor the documentation on the DRI Wiki, creating a new, cleanup up and up-to-date portal page (http://dri.freedesktop.org/wiki/Radeon) in the process. However, this refactoring is not complete, and the amount of information is not yet entirely satisfying. The real test now is whether this can be more than a one-shot effort by me, so this is a shout out to others - particularly to the users who have been asking for this - to help improve the documentation.

Partly, this can be done in very mundane ways by normal users. The application support matrix (http://xorg.freedesktop.org/wiki/RadeonProgram) needs to be updated for Mesa 7.6 (there have been a lot of significant improvements), which mostly requires testing by a lot of people who own the necessary hardware/software combinations.

I have also created a stub page for 3D troubleshooting and known problems (http://dri.freedesktop.org/wiki/RadeonTroubleshooting), and I want to rely mostly on users to help filling that with useful information. After all, the kind of trouble I run into usually has to do with me breaking the driver during development, which is on a rather different level from the kind of trouble users run into.

Now my main goal is actually to improve the way we present ourselves to potential new developers. This is also quite tricky because after having been immersed in this stuff for so long, it is hard for me to judge what kind of information and documentation would be most helpful to newcomers. If you have a concrete question, or set of questions, I'd be curious to know, and I may end up blogging on it, or documenting it on the Wiki, or documenting it in the source code. However, please give me more than a muddy "this stuff is complicated, can you hold my hand through it?", because yes, unfortunately, this stuff /is/ complicated.

In my experience, the first step to understanding the 3D driver is to understand OpenGL (http://en.wikipedia.org/wiki/OpenGL). After all, the purpose of the 3D driver is ultimately to implement an API - and you just won't understand the driver if you don't understand that API. So if you're curious about 3D driver development, hack on little OpenGL samples first, or even at the same time! It doesn't have to be a large game engine; the samples that come with Mesa (http://cgit.freedesktop.org/mesa/mesa/tree/progs) may be more than enough as a starting point. Then maybe you want to step through your program and what the driver does in a debugger, or experiment with other little ways that can help you understand the driver.

I hope that we will be able to welcome you into the fold one day.

nightmorph
10-14-2009, 01:14 AM
Okay, you sold me. :)

I registered for the wiki and updated the RadeonProgram page: Nexuiz runs just fine on R700, on my RadeonHD 4550. The nice thing is that it finally launches and loads without needing the LIBGL_ALWAYS_INDIRECT hack, and it even renders everything perfectly!

I'm not on Mesa 7.6; instead I'm on git master, as I'm interested in pulling in all the good updates and features as they arrive. Once a future stable version arrives, I'll probably switch to it as long as it contains all the code I'm getting now. Unless, of course, by that time there are even more awesome things found only in the master branch . . .

I also tested Quake3-demo, OpenArena, and QuakeLive. Quake3-demo and QuakeLive work perfectly (no LIBGL_ALWAYS_INDIRECT hacks needed!), but OpenArena kills the system. I end up with a blank monitor screen and a monitor message that slowly cascades across it: "Input not supported." I saw this before with the other Quake games on an earlier git checkout, and had to work around those games with the LIBGL_INDIRECT hack. However, it fails to work for OpenArena, so I'll update the wiki.

nhaehnle
10-14-2009, 05:38 AM
Thank you! One suggestion: Since you got things to run using Mesa master, I think you should note that as PLATINUM (7.7-dev), to indicate it was a post-7.6 but pre-7.7 development version.

For R100-R500 which are already very stable, this feature matrix should probably stick to stable versions, but since R600-R700 are still progressing very rapidly, testing on master makes sense.

maderat
10-14-2009, 05:52 AM
and you could add
master mesa, master ati driver, fedora 12 kernel last from koji
native:
Enemy Territory Garbage soft rendering runs
Compiz Fusion Gold
Neverball Platinium
Nexuiz Gold

tests was done 14Oct white radeon mobility 4650

legume
10-14-2009, 06:02 AM
Enemy Territory Garbage soft rendering runs
...
tests was done 14Oct white radeon mobility 4650

R6/7xx doesn't have hardware texture compression implemented yet.

If a game is rendering garbage, it may work (et does for me) if you find the cvar/menu setting to get it to use uncompressed textures. IIRC for et you can still see the menues - so try unchecking texture compression.

nhaehnle
10-14-2009, 03:09 PM
Thanks nightmorph, Fabio and maderat for doing tests!

maderat: You should be able to add these games into the table yourself, feel free to do so!

pingufunkybeat
10-14-2009, 03:46 PM
I can report OpenArena working perfectly on r710 (HD4550) here, both with and without KMS, with all git stuff.

I assume that nightmorph's issues are a regression of some sort, I play OA regularly. Either that, or a problem somewhere else, as we're using the exact same chip.

KWin4 effects also gets platinum from me, though I didn't test every single effect. The desktop cube, the wobbles, compositing, expose, etc. all work.

Sauerbraten hangs while loading. The music plays, but the system is dead.

nightmorph
10-15-2009, 01:34 AM
Pingu, might very well be a regression. I'll be updating my checkouts soonish to see what effect that has. I did find it very odd that the only Quake-based game that didn't work was OpenArena.

So far, I've provided all the R700 reports on the wiki. I'm going through each program listed and installing them (where feasible, i.e. nothing I have to purchase) and trying 'em out. So far the only two things that completely fail are the ioQuake3 games.

I'm also discovering some new games along the way. Neverball is pretty neat, and it renders perfectly. Lookin' forward to doing some more testing and more wiki updates. :)

Deagleson
10-15-2009, 07:05 AM
Thanks for posting this.
Even if im not a experienced linux user, (Only tried Fedora & Ubuntu)
i do want to change from windows since AMD driver support on windows 7 is crap and vista doesent feel that good since i tried 7. xD

Saw that World of Warcraft got a "silver" on the r500 gpu's, so would that mean that it would be playable?
Since i only do casual play fps is not that important, like for example Counter-Strike.

dungeon
10-15-2009, 10:00 AM
ATI 9250
libdrm 2.4.15
mesa-7.6
no kms (dri 1)

wine + Max Payne 2 (crashing when it wants, but i can kill it).

bo(0x728a5b20, 65536) is mapped (-1) can't valide it.
validated 0x728a5b20 [0xD103B000, 0xD1046000]
*********************************WARN_ONCE******** *************************
File radeon_dma.c function radeonReleaseDmaRegions line 348
Leaking dma buffer object!
************************************************** *************************

Secret Maryo Chronicles (won't start) message in console:

smc: radeon_lock.c:65: radeonGetLock: Assertion `drawable != ((void *)0)' failed.
Aborted

Doom 3 (GPU lockup on level load)

no messages.

The Goonies (GPU lockup)

Nearly after start it fill all of 1.5 GB ram, if i am fast i can switch with CTRL-Fn and kill it, if i wait GPU lockup.

mupen64 + glide64 (plugin want start game and emulator crashed)

mupen64 + glN64 (games works but graphics is messed up)

ppracer is 6 times slower then with 7.5

Everything is slower then 7.5.

So i think none is interested in dri 1, but it is supported:eek:.

BlackStar
10-15-2009, 10:25 AM
@dungeon: please report bugs for these issues. It's not enough to post them here - if you report bugs, the developers *will* look at them and fix them at some point.

@nhaehnle: thanks for putting this together. I've been itching to start hacking the R600 driver and I think I've just run out of excuses. :)

suacy
10-15-2009, 10:41 AM
On the portal page you list Gallium support as being for 9700 - X1950. Shouldn't it also include 9500 and 9600 cards?

dungeon
10-15-2009, 10:53 AM
@BlackStar
I know, but there are so many bugs for me to fill (maybe ten):rolleyes:

Forgot to say, there is a log 'goonies.dbg', it have infinity messages like 'Out of texture memory (at cycle 102)! reloading textures'.

edit: and yes i know i was reported maybe 20 another bugs earlier, but there are just so many... so maybe someone will look in this all_in_one_packet_of_regressions here. Maybe someone from here wants to support dri 1:D.

dungeon
10-15-2009, 12:19 PM
Oh:( dmesg says that i use 1.29 drm... but where is 1.30 version (it is not in 2.4.15):confused:?

nhaehnle
10-15-2009, 02:31 PM
suacy: You are of course right, I just went in and fixed it.

dungeon: Yeah, seems like non-KMS mode has been a little neglected :( This might be similar to a bug that has already been reported, I bet you it works with KMS. Clearly this bug needs to be fixed though.

Everybody, thanks for helping to test and also making some little improvements here and there. Every little thing counts :)

Silverthorn
10-15-2009, 02:52 PM
It's getting quite difficult to resist the urge to try my programming skills on project like this one.

The wiki look great. Simple and clean. Me likes. :)

Ant P.
10-15-2009, 04:26 PM
I'll second that.

I don't actually know OpenGL at all, but this might motivate me into trying...

molostoff
10-15-2009, 11:35 PM
Every little thing counts :)

Hi, I have mobile M71 (x2100, or as it diplayed on cover Radeon(tm) HD 2300) card, I am not sure that it is R500 chip, but anyway wil test all regarding radeon driver in kubuntu.

Also I can translate some of wiki pages into russian, if this is of interest at this moment (not surely). Driver writers we have much enough, but they prefer russian I think - see kubuntu.ru site...

BlackStar
10-16-2009, 01:14 AM
I'll second that.

I don't actually know OpenGL at all, but this might motivate me into trying...

Believe me, it's worth it! It can be frustrating at first, as there are a lot of new concepts to take in (especially if your linear algebra foo is not very strong), but there'll come a point when suddenly everything starts making sense. Besides, it's very rewarding once your graphics start working - unlike regular programming, graphics are something that can be appreciated by both laymen and technical people.

My suggestion is to avoid C/C++ if you wish to focus on learning OpenGL itself. Their low-level nature will only distract you and get in the way at first. Pick your favorite high-level language and use a low-level OpenGL toolkit: PyOpenGL for Python, LWJGL for Java, OpenTK (http://www.opentk.com) for C#/Mono (my personal preference is the last one as I've, err, written that myself :p It has some pretty unique features, though).

Once you have a feel for the API (how it is put together, how the pipeline works, which parts are actually relevant on modern hardware (hint - core OpenGL 3.2 is a good bet), you'll have a few different options for contributing to the drivers. I'm not the correct person to make suggestions, but you should be able to use your newfound OpenGL knowledge to create OpenGL tests for glean (http://glean.sourceforge.net/index.html) and verify that the drivers work correctly. Alternatively, you could move to hardcore driver development - depends on your free time and what you wish to do.

oibaf
10-16-2009, 03:27 AM
ATI 9250
libdrm 2.4.15
mesa-7.6
no kms (dri 1)

wine + Max Payne 2 (crashing when it wants, but i can kill it).

bo(0x728a5b20, 65536) is mapped (-1) can't valide it.
validated 0x728a5b20 [0xD103B000, 0xD1046000]
*********************************WARN_ONCE******** *************************
File radeon_dma.c function radeonReleaseDmaRegions line 348
Leaking dma buffer object!
************************************************** *************************


I had a smilar problem (see http://bugs.freedesktop.org/show_bug.cgi?id=22741#c6) but this is fixed now with mesa master and it should not be in current 7.6 branch. See also http://bugs.freedesktop.org/show_bug.cgi?id=23402 .

Secret Maryo Chronicles (won't start) message in console:

smc: radeon_lock.c:65: radeonGetLock: Assertion `drawable != ((void *)0)' failed.
Aborted

This could be http://bugs.freedesktop.org/show_bug.cgi?id=22851 or http://bugs.freedesktop.org/show_bug.cgi?id=24322

Doom 3 (GPU lockup on level load)

https://bugs.freedesktop.org/show_bug.cgi?id=23710

no messages.

The Goonies (GPU lockup)

Nearly after start it fill all of 1.5 GB ram, if i am fast i can switch with CTRL-Fn and kill it, if i wait GPU lockup.

I had similar problem with git snapshot between 7.5 and 7.6 but the problems were fixed here. Are you sure you are running latest git (from master or 7.6 branch)?

mupen64 + glide64 (plugin want start game and emulator crashed)

mupen64 + glN64 (games works but graphics is messed up)

ppracer is 6 times slower then with 7.5

Everything is slower then 7.5.

So i think none is interested in dri 1, but it is supported:eek:.

Current radeon drivers appears to have improved a lot starting with 7.6 (OpenGL up to 1.5, more fps, ...), but yes, unfortunately I also noticed that there are few bugs that are affecting many applications. Maybe just fixing 2-3 of these bugs could make many games runs better. Maybe AMD should concentrate on these before other new features like KMS or gallium but that's only my thinking obliviously.

nhaehnle
10-16-2009, 05:14 AM
Hi, I have mobile M71 (x2100, or as it diplayed on cover Radeon(tm) HD 2300) card, I am not sure that it is R500 chip, but anyway wil test all regarding radeon driver in kubuntu.


According to ATIRadeon (http://dri.freedesktop.org/wiki/ATIRadeon#head-f2f64428683bc65ba0c9ab1913e3ffa1e068b0b4) it's an RV550, which would fall under the R500 heading.

You can also check the output of 'glxinfo | grep render'. That will tell you the chip family.


Also I can translate some of wiki pages into russian, if this is of interest at this moment (not surely). Driver writers we have much enough, but they prefer russian I think - see kubuntu.ru site...

That sounds like a good idea if we can keep the pages somewhat in sync. Unfortunately, I don't think the Wiki has any built-in multi-language support, so I'm not sure how best to do that.

dungeon
10-16-2009, 09:07 AM
@oibaf
I tested mesa-7.6 release and now mesa_7_6_branch and i have all these bugs still with r200 on dri 1. So OK these bugs are mainly reported - devs are informed, but... Maybe i can just stop testing dri 1, because according to all these bugs and comments from devs it is clear to me that dri 1 start to be unofficialy unsupported;).

I will stick to 7.5.2 for now, there i have just lack of FBO, OQ, lack of worsened performance and lack tons of bugs. For kms, i will try it again maybe at spring next year. I'm learning to setup LFS right now and i choosed stable stuffs only, so i don't have time for testing and gitting&mastering all along the place:).

oibaf
10-16-2009, 09:21 AM
@oibaf
I tested mesa-7.6 release and now mesa_7_6_branch and i have all these bugs still with r200 on dri 1. So OK these bugs are mainly reported - devs are informed, but... Maybe i can just stop testing dri 1, because according to all these bugs and comments from devs it is clear to me that dri 1 start to be unofficialy unsupported;).


Unfortunately next round of distributions (starting with Ubuntu 9.10) will provide mesa 7.6 with DRI1, so these regression will bite several users...

dungeon
10-16-2009, 10:23 AM
Unfortunately next round of distributions (starting with Ubuntu 9.10) will provide mesa 7.6 with DRI1, so these regression will bite several users...

Yeah just for ATI cards, but what i can do there:rolleyes:, i am not M.S:D.