AMD Open-Sources VCE Video Encode Engine Code
AMD is doing another large and important open-source graphics driver code drop this morning. This morning AMD is publishing their VCE code that allows for hardware-based video encoding.
Since last year AMD has provided open-source UVD support for video decoding on modern Radeon GPUs. There still isn't any open-source UVD1 support (only UVD 2.0 and newer), but now AMD has turned its focus to open-source hardware-accelerated video encoding.
Christian König of AMD is releasing in the next few minutes open-source code for VCE. This code drop supports VCE2 hardware on newer AMD GCN (Sea Islands, Kabini, etc) hardware. The VCE engine is optimized for encoding a low-latency H.264 stream for wireless displays but can also be used for general purpose H.264 video encoding.
The open-source Radeon driver has been adapted to using OpenMAX with the GStreamer OpenMAX (Gst-omx) support for exposing the VCE video encode engine. There/s still a lot of work that's left to be done though in tuning this open-source video encoding code and other related items on the TODO list.
Going back a few months was an OpenMAX state tracker for Gallium3D but that work done by Christian at AMD has yet to be merged into Mesa. Additionally, Christian says VCE1 support for Radeon HD 7000 Southern Islands and other slightly older hardware isn't yet ready with this open-source code but might be done in the future.
Expect the Radeon DRM kernel changes to land not until the Linux 3.15 kernel given that the Linux 3.14 merge window was just closed a few days ago. On the Mesa/Gallium3D side, we first need OpenMAX support in mainline Mesa. Look for the mailing lists in the next few minutes when AMD should officially make available this massive code drop for finally having open-source video encode support on the AMD Radeon driver. The only other open-source Linux graphics driver with good video encode support is Intel for their latest generation hardware when paired with VA-API.
Update: The patches are now available. Besides the DRM kernel and Mesa patches, a new binary microcode/firmware file is also required for VCE support. Also, if you don't already, be sure to follow @MichaelLarabel on Twitter where yesterday I was hinting at a major open-source code drop. Also if you don't understand this VCE news, there's many comments in the forums talking more at length about what it means for end-users, plus comments from the open-source AMD Linux developers themselves.