Page 1 of 2 12 LastLast
Results 1 to 10 of 19

Thread: ATi OSS driver confusion?

  1. #1
    Join Date
    Nov 2007
    Posts
    1,353

    Default ATi OSS driver confusion?

    The thread title basically says it all. I'm somewhat confused as to what is going on with the OSS ATi drivers. There seems to be three different drivers being developed. an ati driver, a radeon driver, and a radeonhd... What I dont understand is that they all three appear to be sharing alot of code, but are being developed by different teams. What the heck is going on here? Also what is this AtomBIOS thing I keep hearing about? What is it, and what does it do?

    So basically two questions...

    1: Why three different drivers that support the same cards by three different teams, and what are the differences between them?

    2: What is this AtomBIOS, and what does it do?

    Thanks guys.

  2. #2
    Join Date
    Oct 2007
    Location
    Toronto-ish
    Posts
    7,386

    Default

    OK, let's see. Let me do the AtomBIOS part first, it's shorter.

    There have always been debates in the driver development world (both open and closed source) about whether relying on BIOS calls is a Good Thing or a Bad Thing. The benefits are obvious -- the BIOS provides a great way for a manufacturer to store any board- or chip-specific programming info or tables (rather than having to update the driver for every single board and laptop in the market) but there are some obvious drawbacks as well. The main ones are (a) BIOS code is traditionally x86 assembler which requires an emulator to run on non-x86 processors, and the API specs for BIOS are very restrictive, ie a driver can call BIOS to change modes but only to modes which are natively supported by the BIOS.

    AtomBIOS is our (ATI/AMD)'s solution to keep the benefits of leveraging BIOS without the drawbacks. Rather than being a big mess of x86 code, it contains a small interpreter written in x86 (or whatever) code plus the actual BIOS code written in a portable interpreted language. As part of the open source initiative, we released C source code for the interpreter plus header files and a bit of documentation describing how to use the available calls and to interpret the data tables in each BIOS ROM.

    The big benefit of AtomBIOS from our perspective is that it allows a driver to use BIOS calls for many of the functions, simplifying the task of supporting new ASICs and boards, but avoids most of the drawbacks which normally come with reliance on VBIOS.

    Now, back to drivers. It's not really three -- there are at least five drivers worth understanding :

    1. Fglrx is the proprietary driver developed by ATI/AMD. Used to be targeted entirely at workstations but we are now working on ramping up support for consumer users.

    2. Avivo was the first open source driver to support 5xx/6xx. Developed primarily with reverse engineered information by a team including Jerome Glisse, Daniel Stone, Matthew Garrett and others (sorry for anyone I left out). When we announced formal support for open source development the Avivo guys wound down avivo development and moved onto other interesting areas like kernel modesetting and reverse-engineering NVidia products

    3. Radeon (aka xf86-video-ati) is probably the best known ATI open source driver, historically supporting everything from R100 to R4xx, although everything past R2xx was pretty heavily dependent on reverse engineered info. ATI contributed a bit past R200 but not much. A number of folks were involved in the development over time (pretty much every famous name in open source graphics has contributed to it) but Dave Airlie and Alex Deucher have been the primary contributors over the last couple of years

    4. Dave Airlie wrote a 5xx driver which was never released. Dave had access to R5xx programming information under NDA via his employer a couple of years ago. He wrote a 5xx driver using that information (no problem as long as he didn't release it) then contacted us for permission to release the driver and associated header files. We were not able to give Dave approval to release the driver so he buried it and stayed away from R5xx open source development to avoid any risk of violating NDA.

    5. Radeonhd is the most recently created driver. When we decided to ramp up support for open source development, we partnered with the Novell/SuSE development team (Luc, Egbert and Matthias plus others) to produce an all new display driver for 5xx and up. This was released in September in alpha state as the radeonhd driver and has become quite polished since then.

    In the meantime, a number of interesting things happened :

    - Dave Airlie joined Red Hat to work on graphics drivers but still had to stay away from 5xx development because of the information he had under NDA. We eventually worked through the legal details so that Dave could work on 5xx and 6xx parts without NDA concerns.

    - Dave and Alex were interested in AtomBIOS so they added 5xx/6xx support to the display driver making heavy use of the AtomBIOS calls. One side effect of this was that there were two drivers supporting 5xx/6xx, but since some parts of the 5xx chips really haven't changed from earlier generations (eg. 2d acceleration) there are some real opportunities to speed up development by leveraging existing radeon code

    - Alex recently joined AMD to help drive the documentation and support efforts and to work on driver development as part of his day job rather than a hobby, so he is actually helping with both radeonhd and radeon efforts.

    I expect that over time the two open drivers (radeonhd and radeon) will grow together but realistically I don't expect that to happen for at least six more months. In the meantime, though, code and ideas are moving back and forth between the drivers (including avivo) and I expect that will continue for quite a while.

    In terms of differences between the drivers, here's one way to look at them. Others may jump in and disagree.

    - fglrx has the most features and capabilities, and runs most games quite a bit faster than the open source drivers. Downside is that it is closed source and when there is a problem you often have to wait for the next release or more.

    - radeonhd is the most polished on 5xx/6xx and has the most resources working on end user issues. Downside is that it is display/modesetting only, although on a modern system you can still get some pretty nice performance without acceleration.

    - radeon has immediate access to all the code and experience from previous ATI chip generations, including 2d, 3d and video acceleration. On 5xx/6xx it is primarily display/modesetting as well, however 2d acceleration is running on 5xx today.
    Last edited by bridgman; 12-25-2007 at 11:15 AM.

  3. #3
    Join Date
    Sep 2006
    Location
    PL
    Posts
    909

    Default

    atombios branch got merged into main branch in radeon driver.
    maybe it got stable enough to try it out?

  4. #4
    Join Date
    Jul 2007
    Posts
    403

    Default

    Just don't try using EXA. For some reason, it's glacially slow on r500. Also, no Xv on r500, and no 2d accel on r600 with radeon.

  5. #5
    Join Date
    Sep 2006
    Location
    PL
    Posts
    909

    Default

    Just don't try using EXA
    exa led to lockups when switching to vt on my r300 , so i don't use it.

  6. #6
    Join Date
    May 2007
    Posts
    231

    Default

    Quote Originally Posted by bridgman View Post

    2. Avivo was the first open source driver to support 5xx/6xx. Developed primarily with reverse engineered information by a team including Jerome Glisse, Stefan Marcheau, Matthew Garrett and others (sorry for anyone I left out). When we announced formal support for open source development the Avivo guys wound down avivo development and moved onto other interesting areas like kernel modesetting and reverse-engineering NVidia products
    Just a precision i don't know who is Stefan Marcheau maybe you were thinking to Stephane Marchesin but he now only work on nouveau code And Daniel Stone were the co-guilty guy who started avivo too.

    Oh and we might add kernel modesetting as another driver in the game

  7. #7
    Join Date
    Nov 2007
    Posts
    1,353

    Default

    Wow bridgeman. Awesome, you just went above and beyond to help a lowly noob understand the current driver situation. Thank you so much.

    I have a much better idea what is going on now.... But, this now brings up concerns as to what the future will bring. I know ATi's official stance is that fglrx is the stable and supported driver, and it will be made available to OEM's, and system builders with official support. This is all fine and good, but I have some concerns as to the OSS drivers like radeon and radeonhd, but I'm not entirely sure how to express my concerns....

    Take Compiz vs Aero as an example of OSS development producing a superior end product. Firefox vs IE. Open Office vs MS Office, and the list goes on and on. I consider it fact that OSS is a superior development model in most respects. However in this case OSS development requires that ATi release the appropriate information about the hardware, if they cant or wont then OSS drivers are doomed.

    My next question is not what information will be made available but rather what information wont be made available? And how much abstraction does AtomBIOS actually do?

  8. #8
    Join Date
    Jan 2007
    Location
    Germany
    Posts
    2,117

    Default

    First of all, nice work with your posting bridgman. That will help many people understanding what's going on with AMD development at the moment.

    what information wont be made available?
    That is an interesting question. bridgman, do you think that for end-users there is a need for fglrx by, let's say, the end of 2008 or the beginning of 2009? Will gamers have the ssame 3D performance with RadeonHD as with fglrx?

  9. #9
    Join Date
    Sep 2006
    Location
    PL
    Posts
    909

    Default

    i remember reading somewhere on the forums that 'fglrx will offer superior features and performance'. and that radeonhd will be a generic "fallback" driver in case fglrx doesn't work.

    so i'm afraid that there will be something important left out of the specs. something that's not 3rd party IP and something that will give fglrx the upper hand.
    Last edited by yoshi314; 12-21-2007 at 09:22 AM.

  10. #10
    Join Date
    Jun 2007
    Location
    Albuquerque NM USA
    Posts
    347

    Default

    Michael: Could you make Bridgman's #2 above a sticky somewhere? I'm sure it will help a lot of people as the projects continue to progress.

    Bridgman (John?): Thank you again for this. I'm impressed by what is happening here. Short of lending the company a couple of billion dollars at below market interest rates, is there anything we can do to let the suits know we appreciate their support for the open source effort?
    Last edited by rbmorse; 12-21-2007 at 10:33 AM.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •