AMD Publishes Open-Source HD 7000, Trinity Code
Phoronix: AMD Publishes Open-Source HD 7000, Trinity Code
AMD has finally released the open-source driver code to support the Radeon HD 7000 "Southern Islands" GPUs and next-generation Fusion "Trinity" APUs under Linux with their open-source driver...
YES finally *happy*
Does this patch set support ZCP (~3W power down mode)? If not, is this on the roadmap?
It was looking like it would slip until the next kernel for sure. Good to see they got it out in time for this one.
Now the question is whether it actually works.
Because of this, I just ordered a 7850 card.
It's a whole new architecture. The chips of the next 3-4 years will be based on this, so open source support will probably come sooner with the next generations.
It's good to know that this is making some real progress. Of course I am aware that the progress has been happening in the background for some time now, but to see it clear the dreaded AMD Legal Review and surface to the light is heartening.
Hopefully Michael will run an article comparing the rate of progress for HD7000 against Evergreen, but since I'm interested, I'll take a shot at that right now. Please note that I am basing these dates on the date of publishing of Phoronix articles, and NOT on the actual date of the event talked about in the article. However, because of Michael's watching the commits like a hawk, we can assume these are accurate plus or minus a day or two.
I title this work (I put quite a lot of effort, for a forum post, into formatting and compiling it all): "A Brief History Of Open Source Evergreen Support (As Documented by Mr. Michael Larabel)". License is GFDL.
November 18, 2009: Milestone 1, Card Release. AMD Releases The Radeon HD 5970 2GB
Note: The Radeon HD5870, the single-GPU flagship card of the Evergreen series, was released on September 23, 2009.
February 1, 2010: Milestone 2, basic kernel and DDX support for new ASIC. Open-Source ATI Evergreen Support Arrives
Note1: This was UMS and KMS only, with no 2d accel or 3d accel
Note2: All of this initial support came from AMD, following a successful legal review. AMD is basically the only contributor at this early stage, because nobody else knows a thing about this hardware.
Note3: Time delta from previous article: 132 days
August 20, 2010: Milestone 3, first-cut 3d accel. The ATI Evergreen Mesa Code Has Now Landed
Note1: This was the "first cut", very rough 3d accel support, and it was providing just a Classic Mesa driver. The Classic Mesa support was later dropped, as was UMS. It is very true that supporting old UMS and Classic Mesa code paths were taking up more developer time than necessary. The 3d acceleration at this time could only do very basic things and entirely lacked a shader compiler.
Note2: All of this original effort (about 15,000 lines of code IIRC) came from AMD, following a successful legal review. AMD is still very much involved at this point.
Note3: Time delta from previous article: 201 days
September 9, 2010: Milestone 4, Gallium3d accel. Did Hell Just Freeze Over? Here's Evergreen On Gallium3D!
Note1: It should be noted that the Gallium3d performance and feature set very rapidly developed from this point onwards. Qualitative performance from around this time, as I remember it, was that all accel was slow and buggy; you would occasionally have GPU soft lockups; and even OpenGL 1.4 compositors like metacity would crash the driver from time to time.
Note2: We owe much of this effort to Red Hat employees and non-employed community members such as Marek Olsak. AMD employees' contributions to Evergreen support at this point started to decline somewhat, and would decline more through 2011 as they went back down into the trenches to work on HD6000 series bringup.
Note3: Time delta from previous article: 21 days
January 31, 2011: Milestone 5, 1D tiling. http://www.phoronix.com/scan.php?pag...item&px=OTA2NQ
Note1: This work improved the performance of r600g for Evergreen significantly, bringing it that much closer to Catalyst (but still a long way off). Qualitative performance from around this time, as I remember it, was that 2d accel and desktop compositors worked well, but most advanced 3d games ("advanced" back then was OpenGL 2.1) ran like crap, if at all. There were some pretty nasty kernel lock-up bugs still in play at this time -- some of them due to missing features/code, others due to human error in the code.
Note2: Thanks to Dave Airlie of Red Hat for this. By now, AMD is serving a bug fixes / code review / advisory role, and is not having its own engineers work to contribute major new features to Evergreen open source support.
Note3: Time delta from previous article: 145 days
October 7, 2011: Milestone 6, "Good" shaders. Shader Optimizations For The AMD R600g Driver
Note1: 3d applications using GLSL started to work really well around this time frame (approximately Q3-Q4 2011). Bugs started to disappear; crashes declined; performance improved steadily throughout this period. Rendering glitches introduced by incorrect or incomplete GLSL feature support started to subside. Qualitative performance from around this time, as I remember it, was what I would call "acceptable" for light OpenGL 2.x gaming, provided that your game didn't require any unsupported features. The composited desktop experience, on the other hand, was extremely good by this time, and the 2d accel was zippy.
Note2: Thanks go primarily to VMware folks, Marek Olsak, Vadim Girlin, and the Red Hat graphics team for finishing the driver that AMD started.
Note3: Time delta from previous article: 250 days
January 12, 2012: Milestone 7, 2D color tiling, a.k.a. topping off the performance. 2D Color Tiling Patches Hit For Radeon R600+
Note1: These patches, once the regressions were fixed in them, essentially brought the Evergreen open source driver to where it is today. It still isn't as fast as Catalyst, but if you're running a higher-end incarnation of Evergreen, chances are that you at least get good enough performance in most OpenGL 2.1 applications. The driver is pretty solid at this point, though there are of course a few conspicuous things still missing (HiZ, UVD to name a few), and every once in a while you'll run into an application that needs some small feature that the drivers don't have yet. But all the major pieces are there.
Note2: Thanks go to the same folks as the previous milestone.
Note3: Time delta from previous article: 98 days
Total timespan covered by major open source Evergreen milestone articles: 786 days, or 2 years and 1.8 months. And Evergreen support still isn't "done", because we are still missing OpenCL, HiZ, UVD, OpenGL 3+, CrossFire, performance closer to Catalyst, ....
I invite Michael or someone else to use my format above, but do something similar with the HD 7000 series: first for what we have so far, and later on (in a year or two), how far we've come. If you want to try such an effort, please try to match up the milestones as closely as possible to the ones I've chosen here. I don't claim to have PERFECTLY highlighted the ideal milestones that occurred during the Evergreen open source bringup, but these are the most publicly-visible things that caused a lot of people to start getting interested in (and using on a day-to-day basis) the open source Evergreen drivers.
Thanks for reading. This is purely an informational post; I'm not going to cock an attitude here -- except to say that, by the Powers That Be, I really hope that HD 7000 support matures significantly faster. That is all.
Last edited by allquixotic; 03-20-2012 at 10:23 PM.
Sadly all those improvements have took too long. But it's finally getting to the point where is really usable.
Originally Posted by allquixotic
Thanks for that awesome summary.
Please note that during this same period we also added support for the llano and ontario APUs, BTC parts, Cayman parts, OpenGL 3, and started working on SI and TN support and OpenCL support.
Originally Posted by allquixotic
OpenGL 3.0 is already supported with mesa from git master and the upcoming 3.4 kernel. Hiz support is almost complete and OpenCL support is already working for basic test apps.
Originally Posted by allquixotic
There is no UVD and HDMI audio code yet?