As you may already know, Avalon supports different tiers of hardware for its rendering engine. For machines with DirectX 9.0 and PS 2.0 support (almost everything sold these days), Avalon renders almost everything in hardware, which allows it to take full advantage of the GPU. There’s a secondary tier of hardware support for machines with DirectX 7.0 or greater where Avalon offers partial rendering. Lastly, for machines with lower graphics characteristics, Avalon falls back to full software rendering – still a well-optimized experience, but significantly slower in performance terms.
This often catches people out however, since they look at their brand-new laptop and automatically presume that they’ll get hardware rendering. However, for laptops in particular, the aggressive power management defaults that are often present mean that running on battery pretty well guarantees you’ll be running in software rendering mode even if your hardware supports it, due to the GPU being switched into a power-conserving mode. This can be really embarrassing in a demo situation if you forget your power adapter, as several of us have found out recently!
So, a few things to check to ensure you’re running Avalon with the maximum hardware capabilities you have:
- Make sure you’re plugged in to an AC power source;
- Check that your color settings are 32-bit rather than 16-bit in Control Panel / Display Properties;
- Check that the display adapter hardware acceleration is set to Full:
(As an aside, the choice of hardware v. software rendering isn’t as black and white as I’ve made it sound here. Some aspects of Avalon are always rendered in software, for example image effects. Knowing what drives this choice is important if you’re building a performance-critical application, and you’ll want to attend Alexander Stevenson’s perf talk at the PDC if you’re in this category. If you can’t make the PDC or you’ve missed the registration deadline, I’ll post a more detailed blog entry on this topic to coincide with his talk.)
Updated: forgot to thank Seema Ramchandani for the inspiration for this blog entry!