The AMD Radeon HD 7000
"Southern Islands" graphics cards have been on the market for about nine months now, and while there is AMD Catalyst Windows/Linux driver support, the open-source driver support still leaves a lot to be desired. If you are a developer looking to dive into open-source graphics drivers, a comprehensive TODO list has been written.
The AMD Southern Islands / GCN hardware was introduced at the start of the year as a major overhaul of the AMD Radeon GPU architecture, which means a lot of driver changes were required. The developers were fairly quick to provide kernel mode-setting support within the Radeon DRM kernel driver, but the 2D/3D/video support has been slow to come.
With the Radeon HD 7000 series and future products, AMD is doing 2D acceleration over 3D/OpenGL
using the GLAMOR acceleration architecture
. With handling things this way while it means less work in the end and less code-paths to test, first 3D support must be brought up before there is 2D support.
At the same time, with AMD currently not exposing their UVD video engine via open-source, that Gallium3D video acceleration is also being done using 3D shaders for the foreseeable future.
With the Radeon HD 7000 series there is the brand new "RadeonSI" Gallium3D driver for handling 3D/OpenGL that is based upon a stripped-down R600 Gallium3D driver. This is the component that right now is limiting and the bottleneck for the open-source HD 7000 series experience and is in need of love.
Over on the DRI FreeDesktop.org Wiki is now a RadeonSI TODO list
. Among the work that's left to be done for this latest-generation AMD Radeon graphics hardware include:
- Various LLVM bits like handling the TGSI KIL opcode, improving control flow, and turning on the basic block vectorizer pass.
- The RadeonSI Gallium3D driver has no support for the compute interface at this time and needs to be done using the two a-synchronous compute rings.
- 3D features needing to be done for this open-source Gallium3D driver is support for fog, MSAA (Multi-Sample Anti-Aliasing) along with color-buffer compression and fast color clear for MSAA buffers, OpenGL transform feedback support, occlusion query support, timer query support, polygon stippling, polygon/line/point smoothing, texture buffer objects, uniform buffer objects, HyperZ support, and geometry shaders. For those new developers, some of these 3D/OpenGL features can be ported to the RadeonSI Gallium3D driver from the existing R600g code-base.
- There's a variety of texturing bugs that need to be fixed.
It will likely not be until H1'2013 before the RadeonSI Gallium3D support really becomes usable for the Radeon HD 7000 series. By then the Radeon HD 8000 series graphics cards may be released, but at least that won't be a big architectural change requiring significant low-level driver reworking. It's also been said that AMD has already been working on open-source support for future products already
and that 2013 may be better for the open-source AMD