Intel UXA Acceleration Performance
Subsequent to the introduction of the Graphics Execution Manager earlier this year, Intel had introduced a new acceleration architecture. UXA, or the UMA Acceleration Architecture, was developed as a temporary solution based upon the EXA architecture but with support for the kernel-driven GEM memory management. How though does the UXA performance compare to that of EXA? In this article we have ran some benchmarking looking at the Intel graphics performance.
UXA was introduced in early August to allow 2D pixmaps to become GEM objects. The EXA API was used as the basis of forming UXA but the code was then stripped away and replaced with code to support the Graphics Execution Manager for managing its memory. A month later it was clarified by Keith Packard at the X Developers' Summit with his UXA intentions. At that time he stated the UMA Acceleration Architecture will be discontinued and the GEM changes merged back into EXA once they decide how to split the pixmap management and acceleration architecture components. Keith hoped to have this revised EXA work done for X Server 1.6, but that hasn't been completed in time.
The UXA support is currently living within the xf86-video-intel 2.5 and xf86-video-video-intel 2.6 drivers and does require the Linux 2.6.28 kernel or later for the Graphics Execution Manager support. By default the Intel driver continues to use EXA so the AccelMethod option within the xorg.conf must be set to UXA.
For running a few tests to compare the performance of EXA and UXA we had used Ubuntu 9.04 Alpha 2 with the Linux 2.6.28 kernel, X Server 184.108.40.206, xf86-video-intel 2.5.1, Mesa 7.3, and GCC 4.3.3. These tests were run on a Samsung NC10 netbook with an Intel Atom N270 CPU and Intel 945GME graphics running at 1024 x 768. Our netbook was equipped with an OCZ Core Series V2 SSD 32GB and 1GB of DDR2 memory.
The tests we ran to look at the EXA and UXA performance was GtkPerf and JXRenderMark. Originally we had also carried out QGears2 tests, but we had run into stability issues and rendering defects with the UMA Acceleration Architecture. With QGears2 and some other 2D tasks had resulted in screen corruption and the X Server crashing. These tests were facilitated using the Phoronix Test Suite.