David Airlie sent in some PCI Express 2.0 patches for the Linux kernel DRM this morning, which will hopefully allow supported Radeon graphics cards to run at PCI-E 2.0 speeds by default.
As shown in multiple Phoronix articles, PCI Express 2.0 speeds can really boost the Radeon driver performance
. With the additional bandwidth provided by PCI-E 2.0, the open-source AMD driver sees a much-needed performance boost. While the PCI Express 2.0 specification was ratified in 2007
and has been supported by most motherboard chipsets and graphics cards since then (on the Radeon side, it's been supported going back to the R600 days), it hasn't been enabled by default with the open-source Radeon driver due to alleged bugs for a small minority of users. The performance meanwhile has been painful for a majority of the ATI/AMD customers sticking to open-source code.
David Airlie began today's patch work by submitting a DRM core patch
that allows for checking to see if PCI Express 2.0 5GT link speeds are supported for a given device. There is a special case within this function that explictly disables the PCI Express 2.0 checking for root ports from VIA and Serverworks since they're reportedly known to cause issues.
A second patch
allows for PCI Express 2.0 to be supported by the Radeon HD 7000 "Southern Islands" graphics cards, but that patch comes down to just calling the same PCI-E 2.0 initialization path as is used by the HD 6000 "Northern Islands" series, which in turn is the HD 5000 "Evergreen" PCI-E 2.0 code-path.
The third and final patch
attempts to enable PCI Express 2.0 support where possible, which comes down to using the new PCI-E 2.0 checker function along the Evergreen (the code-path that's shared with the HD 6000 and HD 7000 series too) and R600 paths. With this patch applied, PCI Express 2.0 should be on-by-default for the Radeon HD 2000 series and newer on a patched Linux kernel in conjunction with a supported PCI-E Gen2 motherboard. If there's bugs, falling back to PCI Express 1.0 is possible via the radeon.pcie_gen2=0
Intel's PCI Express 2.0 launch party back in 2007 at IDF Fall prior to the Phoronix computer beer opening event.
These patches will hopefully be merged into the Linux 3.6 kernel
to provide a much-needed open-source Radeon driver performance boost. The only problem now? With the Radeon HD 7000 series hardware we're now up to PCI Express 3.0... There's no support there yet on the open-source side (Catalyst on Linux does properly handle PCI-E 2.0/3.0), besides the Gallium3D driver there still not being in a fully-functional state.