Perpsectives on Optimizing
For a while now, NVIDIA has been focusing very hard on compiler technology to optimize shader code for their architecture. This was necessary because nv3x had a hard time processing code hand-written by developers (it was very hard to write efficient code - not very intuitive). Before their compiler could handle doing the best possible job optimizing code, NVIDIA would take hand- tuned shaders (for common functionality or specific games), detect when a shader for that effect was used in a game, and run their own instead. This is known as a shader replacement. The only case in which NVIDIA currently does shader replacement for performance reasons is in Doom3. They will also do shader replacement in certain games as bug fixes, such as in Homeworld 2 and Command and Conquer Generals. NVIDIA is relying more and more on their compiler technology to carry them, and this is a commendable goal as long as their compiler team can maintain a high level of integrity in what they do with shaders (mathematical output shouldn't change from the original).ATI has stayed away from the shader replacement and application-specific optimizations for a while. if you don't do them, you can't be tempted to take it too far, which has happened in the past with both ATI and NVIDIA (both Quake and 3dmark spring to mind). That doesn't make it wrong to use knowledge of a running application to enhance performance and/or image quality . And with Catalyst AI, ATI has adopted this stance. They now detect certain applications when they are run in order to use shader replacement or alter the way things are done slightly to suit the game better. In Doom 3, they replace a look-up table with a computational shader. In Counterstrike: Source, they change the way they do caching slightly for a performance gain (they don't do it on all games because it hurts performance in other titles while it helps the source engine). ATI also uses application detection to make sure that AA is not enabled where it would break a game, and other such situations where games have specific quirks when it comes to graphics settings.
Catalyst AI also does texture analysis to determine how to handle bilinear, trilinear, and anisotropic filtering. ATI has done this to some extent before, but now you can turn it off. The low and high settings of Catalyst AI also allow you to adjust how agressively their texture filtering tries to improve performance. They have made a quality enhancing change as well; ATI no longer drops down to bilinear filtering in aniso, no matter what texture stage is used (before, if an object's initial texture was anything other than the highest resolution, bilinear filtering was used). If Catalyst AI is turned off and trilinear is requested, it is always done on everything now.
ncG1vNJzZmivp6x7orrAp5utnZOde6S7zGiqoaenZH51hJdoag%3D%3D