2D Support On Old Intel Hardware: Nothing But Misery
Chris Wilson has done some i845G benchmarking now that the xf86-video-intel driver is finally stable with this hardware when using the Graphics Execution Manager.
In terms of i845G with the default UXA 2D acceleration method, Chris says, "The sad fact is that UXA is inadequate for the challenge of accelerating the Render protocol."
Wilson's summary for using the newer SNA acceleration architecture with the vintage i845G chipset comes down to:
We find a much happier result. In all cases the performance is at least as good as using a software rasteriser in the X server, and often much better than if we avoided the Render protocol entirely and did the rasterisation in the client. With a little more tuning, we may be able to achieve parity even in the worst case – if we can win on an old GPU with an ancient CPU (single core, virtually no cache and even less memory bandwidth) we should be able to excel on more recent GPUs and CPUs, and be more efficient in the process.In ending his new blog post, Chris Wilson writes, "So it appears that using the GPU for basic operations such as moving the windows about is only at most a marginal win over using a shadow buffer (and often times UXA fails at even that). Overall then it seems that enabling UXA should bring nothing but misery."
Yet, the Render protocol is not the be-all-and-end-all of acceleration. We need to keep an eye on the basics as well, the copies, the fills and the uploads, to know if we are achieving our goals. The basic premise is that using the driver (and thus the GPU) is faster than just using the CPU for everything. (In reality, the choice is more complicated because we have to consider the efficacy of GPU offload for enabling the CPU to get on with other tasks and overall power efficiency.)
At least Intel graphics hardware has improved dramatically in the past decade with Sandy Bridge and Ivy Bridge being quite competitive for integrated graphics and backed by a top-notch open-source Linux graphics stack.