Originally Posted by xorbe
I don't follow. VESA was the fastest font-rendering mode across the board for me -- aren't they software-rendered in that mode?
It could be that moden nvidia cards use shaders for subpixel-aa rendering so this description only applies to cards which do the subpixel-stuff in software like (i am quite sure) my NV18.
Subpixel-AA is always software-rendered if hardware does not provide features for accaleration (like my (fast) NV18 card). Wether you use VESA or the nvidia driver doesn't matter at all, rendering is done by the CPU.
The big difference is that with VESA everything is rendered into an surface (image) held in system-ram compared to the memory on your graphic card when using the accalerated nvidia driver.
If you now want to perform subpixel-aa you need to get the values of the desitantion surface (since the result is a composition of the glyph + destination surface + some logic for subpixel). This operation is quite fast for vesa because all the pixels are stored in RAM anyway where they can be accassed in a fast way by your CPU.
When using the nvidia driver the pixel-values have to be transferred from the board-memory to system-ram, then the composition takes place and afterwards the result needs to be uploaded to your video-card again.
The downside of the vesa driver is that it will perform quite poor comparing things your graphic-card can do in HW (like filling rects or blits).
Its the same problem all the time if you have graphic-hw solutions that have to do some things they can't do in hardware. You need the read-back the affected pixels into RAM and later send the result back to VRAM which is quite often much slower than the actual rendering done in software.