User: Password:
Subscribe / Log in / New account

Constant UI responsiveness

Constant UI responsiveness

Posted Feb 27, 2009 12:05 UTC (Fri) by nix (subscriber, #2304)
In reply to: Constant UI responsiveness by nlucas
Parent article: CrunchBang Linux 8.10

I did a pile of benchmarking of font scrolling performance on the latest X server (now released as 1.6.0).

With the EXA glyph cache patch applied, AA and non-AA client-side fonts are nearly equivalent in performance, but there *is* a little CPU consumption from the X server which wasn't visible before, and peak scrolling speed (on my 1650x1050 widescreen, 1250MHz Athlon, Radeon 9250 AGP) is about half that of core fonts (where the fonts spray past in an utterly unreadable blur with no CPU consumption to speak of). Antialiased font rendering is actually about 5% *faster* than non-AA rendering, so I suspect the overhead of the actual antialiasing is drowned by other overheads (or perhaps it's just that antialiased rendering, as the common case, has been optimized more).

However, the difference between an utterly unreadable blur and a nearly unreadable blur isn't very significant to me: it still scrolls text off the top of the screen in a tiny fraction of a second.

(Without the EXA glyph cache, non-AA text in some cases can be hugely *slower* to render than AA text, and in both cases I was seeing >20s to scroll the screen up by a single line. But that's not AA overhead: that's transfers from VRAM, which are always going to be slow as treacle.)

(Log in to post comments)

Constant UI responsiveness

Posted Feb 28, 2009 10:15 UTC (Sat) by nlucas (subscriber, #33793) [Link]

I'm using those mini-PC boards, like the VIA mini-ATX boards (and others, like the Geode based) to boot into a vesafb system for POS (Point of Sale) software.

The application uses FreeType to display anti-aliased text, but without any special optimization techniques other than brute caching and double-buffering. It works well, but can't afford to do much more without more complex optimization techniques (and then the best way would probably be to start using X).

The target machines range from Geodes with the power equivalent of a Pentium MMX@266MHz to modern Celerons @2GHz, so it's bearable enough on the Geode and instant on the Celeron.

I also can't afford to optimize the code for a specific machine, so it's just compiled with generic optimizations.

This POS machines are not always well tested. They are made to be compact and sometimes they don't have enough cooling space. For eye candy we have a screen-saver using alpha-blending to show a flashlight passing on the screen. Some lower end machines lock solid because they heat too much, so we limit that screen-saver to no more than a 5-minutes run.

Copyright © 2017, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds