Nvidia Forceware Tweak Guide

[Page 9] Advanced Tweaking



This section delves into the types of things you can do outside the standard Forceware Control Panel to further improve your graphics performance and/or to alter image quality to suit your tastes and perhaps resolve specific graphics problems. Please note that if you are not confident in undertaking these tweaks then do not perform them - none of them is necessary for you to enjoy games. There is a certain level of risk involved in changing some of these settings. That said, the following tools/methods are safe if used correctly, and all the changes below can be reversed if they don't suit your preferences, or if a particular game has issues with them.



GPU-Based PhysX


Click to enlarge

Nvidia has incorporated GPU-accelerated PhysX capabilities into all CUDA-ready GPUs - specifically that means all GeForce 8, 9 and 200 series cards (and newer) with 256MB or more of onboard memory can provide enhanced graphics and physics effects in games and demos which support PhysX technology. Previously PhysX effects were only possible when using a system which had a standalone Ageia PhysX PPU installed.


To use GPU-based PhysX you should install the latest official Forceware drivers (177.83 or newer), and the latest PhysX drivers (8.08.01 or newer) which are now part of the latest official Forceware package - see page 3 for download links. Once you have installed these drivers, you will then find that you can access a special option in the Forceware control panel which allows you to alter Nvidia PhysX-related settings for your GPU. Launch the control panel and select the 'Set PhysX Configuration' item in the left pane, or alternatively double-click the PhysX icon found under the Windows Control Panel.


The PhysX options in the latest Forceware allow you to either Enable or Disable PhysX GPU Acceleration. By default, PhysX is enabled and this should be fine, as it allows GPU acceleration to be used if it is supported by a particular game, without impacting performance in games which do not use PhysX.


To test and utilize the capabilities of GPU-based PhysX, you will need a game that supports PhysX such as one of those listed here. You should also download the free GeForce Power Pack which contains a range of demos and games that further demonstrate GPU-based PhysX effects, and let you play around with them.


As of more recent Forceware, to see if PhysX is correctly enabled and being used in a game, you can enable a PhysX Visual Indicator by selecting the setting of the same name under the '3D Settings' menu at the top of the Forceware Control Panel.


When GPU-based PhysX is enabled in a game which supports it, you will see enhanced physics effects such as additional debris, more detailed explosions and smoke (particle effects), greater destruction of the environment, better physics animations on objects, better water effects, and so forth. However it is important to note that although GPU-based PhysX makes these additional effects possible, it may also result in reduced framerates in some cases. What is happening is that your GPU is carrying an extra workload in calculating these additional physics effects, and depending on the game and the rest of your system, the FPS impact can be noticeable.


However in certain games and demos designed specifically for PhysX (such as Batman: Arkham Asylum, Warmonger, Metal Knight Zero and the PhysX levels in UT3), the FPS impact will usually be positive. Because these games are hard-coded to run PhysX effects on all systems, if you disable GPU-based PhysX your FPS will usually be lower than if you enable GPU-based PhysX. Of course in some of these games the additional effects are simply disabled on non-PhysX capable systems, which helps them maintain similar performance albeit with less impressive visual effects.


The bottom line is that for a system with a single PhysX-capable GPU, in some cases you will see a noticeable FPS rise, in other cases you will see a noticeable FPS drop. It all depends on whether the additional PhysX effects are set to be always on in the game, or whether they can be enabled or disabled. Furthermore the degree to which your FPS increases or falls also depends on how powerful your GPU is compared to your CPU. If you have a high-end CPU and a low-end GPU for example, then shifting the PhysX load to the GPU may have a negative impact overall.


On systems with multiple PhysX-capable Nvidia GPUs the story will be different - particularly on a non-SLI setup where you can set your most powerful Nvidia GPU as the primary graphics card, and add a second weaker Nvidia GPU and set it to just process the PhysX effects. In such a scenario you should usually get the benefit of both optimal FPS and additional PhysX effects. So for example if you have an unused and relatively weak GeForce 8 PCI-E card or even an onboard GeForce 8-based video solution, you can slot it into a spare PCI-E port or enable it in the BIOS and utilize it for faster GPU-based PhysX in Multi-GPU (not SLI) mode.


In any case experiment to see whether GPU-based PhysX noticeably improves your gaming experience in PhysX-based games, and if you wish to disable this feature at any time, such as for troubleshooting purposes, then set it to Disabled in the Forceware Control Panel.



DXTweaker


Click to enlarge

DXTweaker is a small utility which allows users to forcefully enable Triple Buffering in Direct3D, something which is not possible using the normal Triple Buffering setting in the Nvidia Control Panel (See the Triple Buffering setting in the Forceware Control Panel section). You can download DXTweaker for free from here. Note that you will need to have the DirectX9.0c June 05 update or newer installed otherwise you will get errors. You can get the latest DirectX Update here. You will also need .NET Framework 1.1 or newer for DXTweaker to run.


Update: See the bottom of the next page for a useful utility which comes with RivaTuner that allows the application of Triple Buffering in an easier manner.


Whenever you enable Video Synchronization (VSync) in a game, you will get better image quality due to the removal of "tearing": that is, when the top and bottom halves of the image go out of alignment, especially during fast turning motions for example. However if you enable VSync your average Frames Per Second (FPS) also drops because of the way your graphics card waits for data to be synchronized before displaying it on your monitor. The only way to enable VSync and be rid of tearing, yet at the same time not have to worry about reduced framerates is to enable an option called 'Triple Buffering'. However to further complicate things, this option is often not available in many games, and if enabled in the graphics card control panel only works for OpenGL games, not for Direct3D games. This is all explained in more detail in my Gamer's Graphics & Display Settings Guide.


DXTweaker can force Triple Buffering in Direct3D games, but it is not straightforward to use. To use DXTweaker to force Triple Buffering, do the following: Install DXTweaker, then run the DXTControl.exe file in the main DXTweaker directory. In the window which opens, you can specify the game(s) you wish to add Triple Buffering to by clicking the New button and finding the path to the appropriate game executable. Once you've added the game executable path, highlight the game in the Projects box and at the bottom of the DXTweaker box, click the 'Modules to Load' heading, and below a list of options will appear. To force Triple Buffering in the highlighted game, tick the Present Changer box, and in the options which appear for it, set the Count box to 2 (i.e. it will set two back buffers instead of the usual 1, giving three total buffers). Now to actually force this setting to work in the game you've chosen, you will have to launch the game through DXTweaker by highlighting it in the Projects box and clicking the 'Start' button. The game will now start with Triple Buffering On - but make sure VSync is On otherwise it will have no impact.


However, some very important things to note: firstly, PunkBuster may detect DXTweaker as a hack, so be careful when using it for online games. Secondly, Triple Buffering has the drawback that it uses more video memory to store graphics information, and thus for graphics cards with less video RAM and/or in games which are more graphically intensive, forcing Triple Buffering on will result in laggier mouse movements and increased texture loading pauses. So basically for fastest performance in games, disable VSync and disable Triple Buffering. However if you believe the tearing is just too annoying, enable VSync then check to see if the in-game options allow for Triple Buffering. If so, enable it - or use DXTweaker if it's an offline game - and see if it improves performance without generating too much lag and stuttering.



The next section of this guide covers further Advanced Tweaking using the RivaTuner utility.