By now you have likely seen the AMD Fusion E-350 APU showcased on a number of Windows web-sites, but how is this AMD Accelerated Processor working in the Linux world? At Phoronix today are the first in-depth Ubuntu Linux benchmarks being published from this promising, low-power solution designed to compete with Intel's Atom.
The E-350 is AMD's current high-end E-Series "Zacate" Accelerated Processing Unit (APU) with its dual-cores and a 1.6GHz clock speed and 1MB of L2 cache where as the E-250 is a single-core part clocked at 1.5GHz with 512K of L2 cache. Both the E-250 and E-350 have an 18 Watt TDP, 80 Radeon cores, DirectX 11.0 / OpenGL 4.0 support, and a UVD3 engine. There is also the C-Series of APUs from AMD, which have a TDP of just 9 Watts, but the C-50 is a 1.0GHz dual-core part while the C-30 is a 1.2GHz single-core APU. The integrated GPU also runs at just over half the speed of the E-240/350.
While the AMD Fusion APU performance is one thing, how well supported are the advertised Fusion features under Linux? Well, below is a Linux look at the highly advertised Fusion features and their relevant Linux state.
Video Accelerator / Smooth, Vivid HD Video: If you're using Linux and looking to take advantage of the Fusion's UVD3 engine (it's basically the same Unified Video Decoder as found in recent Radeon HD GPUs too), you need to be using the proprietary AMD Catalyst Linux driver. If you are using the open-source driver, for now and the foreseeable future the UVD3 engine is rendered useless. AMD has not provided open-source support or public documentation on any generation of the UVD engine due to fear it may compromise their Digital Rights Management support under other operating systems (Microsoft Windows). It is unlikely this lack of open-source accelerated video support for AMD hardware will change anytime soon.
There have been efforts to bring XvMC / VA-API / VDPAU to Gallium3D, and even it is working with the R600g Gallium3D driver (that also supports the Radeon HD 5000/6000 series and Fusion) too, but all of that accelerated video playback work is done using shaders and not the UVD3 engine. With the open-source drivers you only have X-Video.
With the Catalyst driver, the UVD3 engine is exposed via XvBA, AMD's exclusive X-Video Bitstream Acceleration API. AMD recently opened up the XvBA interface, but no major media applications have yet adopted the API that is exclusive to AMD hardware and the proprietary driver. There is the VA-API front-end to XvBA as the common solution right now, but even still with the latest Catalyst drivers the XvBA/video implementation can be buggy depending upon several factors. Overall, AMD still has a ways to go to catch up to the NVIDIA Linux playback experience when using VDPAU.
DirectX 11: Obviously, DirectX 11.0 support is not important on Linux. There is the Direct3D 10/11 state tracker for Gallium3D but it is not yet mainline in Mesa and is not really used by anything. Nor has the Wine project expressed any interest in using it for use with the Windows binaries it handles. The OpenGL equivalent to DirectX 11 is OpenGL 4.0. By using the Catalyst drivers there is support for the latest OpenGL 3.3/4.1 specification.
If using the open-source driver whether it is classic Mesa or Gallium3D, you are limited to OpenGL 2.1. The Mesa / Gallium3D support for anything beyond OpenGL 2.1 is still quite limited, albeit there are ambitious plans for an OpenGL 4.1 state tracker and ongoing work for OpenGL 3.x in Mesa, but it will be a number of months before any of that fully materializes.
Radeon Cores: As you can tell from the various Phoronix news articles about Fusion or what's been talked about already in this article, there is both open and closed-source support for Fusion hardware under Linux. If you're used the closed-source driver to benefit from the full OpenGL support, all of the available features being supported, and XvBA/UVD3 support, just be sure to run Catalyst 11.2 or later.
If you are after using an AMD E-350 or any other Fusion APU with the open-source stack, you need to be building the components yourself (or find a third-party repository for them on your distribution). The key versions to look for with the open-source Fusion support is the Linux 2.6.38 kernel, Mesa 7.11-devel, libdrm 2.4.24, and xf86-video-ati 6.14.0 and later. In Ubuntu 11.04, Fedora 15, and other upcoming distributions there should be "out of the box" support. Keep in mind though you need to be using the very, very latest code and it was not until this weekend that the kernel components were semi-fixed for Fusion.
Lasting Battery Life For All-Day Computing: As far as the graphics are concerned, the Catalyst driver supports proper power management and in the recent kernels there is open-source Radeon DRM/KMS power management support, but it is not as in-depth as the Catalyst power management. With Fusion APUs it will be interesting though to see how the CPU/GPU sides play along in terms of performance and power management. Unfortunately, as it's an AMD Fusion desktop system we are testing today, we don't have a Fusion netbook/notebook to be able to monitor the battery power consumption in real-time via the Phoronix Test Suite, so we aren't publishing power results in this article.
This initial AMD Fusion APU Linux testing is being done with the E-350 APU in conjunction with an ASUS E35M1-M PRO motherboard. This micro-ATX motherboard is paired with the Zacate E-350 APU, Hudson M1 FCH A50 chipset, an ASUS Energy Processing Unit, ASUS TurboV, an EFI BIOS, USB 3.0 support, Serial ATA 3.0 support. The E35M1-M PRO has two DDR3 system memory slots supporting up to 8GB of DDR3-1066MHz memory, one PCI Express 2.0 x16 slot, one PCI Express 2.0 x1 slot, and two PCI slots. To take advantage of the integrated Radeon HD 6310 graphics on the APU there is single-link DVI, HDMI, and analog D-Sub outputs. There is support for driving two outputs simultaneously, if using the analog D-Sub connector in conjunction with DVI or HDMI, but not both HDMI and DVI simultaneously.