FarCry's game engine uses different code paths for NVIDIA and ATi cards, each optimized for a specific architecture. Due to the comparatively bad performance with full floating point precision, developer CryTek was forced to reduce the shaders' complexity in the code path for NVIDIA FX 5xxx cards. As a result, the FX 5xxx family's image quality was inferior to that of ATi's DirectX 9 Radeon cards.
NVIDIA has addressed this hardware issue with the introduction of the GeForce 6800 line. This new generation of cards offers full performance even at 32-bit floating-point precision. In addition, these cards already support DirectX 9.0c, including Shader Model 3.0 (see also: Shader Model 3.0 ). SM 3.0 allows for more complex shaders as well as for instruction branching within the shader code. ATi's newest generation of cards, on the other hand, is still limited to Shader Model 2.0 support.
So far, the GeForce 6800 was unable to show off its potential in FarCry, however. Although it clearly outclassed its predecessor, the FX 5950 Ultra, where frame rates were concerned, barely offered improved image quality. Although the game engine was already prepared for Shader Model 3.0, the implementation was not yet complete in version v1.1. This will change with the newest patch, which will carry the version number v1.2 and is slated for release today.
In addition to gameplay related fixes, the new patch v1.2 also brings a number of other changes with it, although most are tailored to NVIDIA's GeForce 6800 line of cards. Thanks to a new code path, the image quality problems of the past have been fixed without resulting in reduced performance. On top of that, patch v1.2 also adds support for Shader Model 3.0.
While there is still a distinct lack of detailed information concerning the specific changes that have been implemented, we do have some examples. Shader Model 3.0 instancing is supposed to speed up rendering of trees and grass in the levels "Training" and Regulator." In the maps "Research" and "Volcano," SM 3.0 makes one-pass per-pixel lighting possible, instead of requiring several passes for each light-source. NVIDIA quotes a performance increase of up to 35% for the SM 3.0 code path compared to the SM 2.0 implementation.
You'll still need to clear a couple of hurdles before you can enjoy the benefits of DirectX 9.0c, though. For one thing, the graphics card driver will need to support SM 3.0. NVIDIA was kind enough to send us a modified ForceWare driver v61.45 for this test, which already includes SM 3.0 support. Beyond that, you'll also need DirectX 9.0c itself, which is not available as a separate download so far but only comes as part of the WindowsXP Service Pack 2 Beta RC2 package. Once your PC fulfills these requirements, SM 3.0 can be activated in FarCry using the command console.
Before we jump right in and ask what performance benefits SM 3.0 support really has, let's take a moment to look at image quality. As our regular readers will remember, NVIDIA's GeForce 6800 cards suffered some image quality problems in v1.1 of the game (more here: Shader Quality - FarCry ).