project reality header
Go Back   Project Reality Forums > Project Reality Support > General Technical Support > Software & Operating Systems
18 Jun 2021, 00:00:00 (PRT)
Register Developer Blogs Project Reality Members List Search Today's Posts Mark Forums Read
Software & Operating Systems Discussion on Computer Software & Operating Systems

Thread Tools Display Modes
Old 2010-12-06, 17:43   #1
Supporting Member

WeeGeez's Avatar
Default nvidiaCP tweaks - PR relevant

This guide navigates tools available to nvidia / ATI users, explains options and makes recommendations for optimal PR experience.
  • Grass glitch
  • No LODs - May improves performance on systems with slower CPUs
  • Frame rate - Efficiency + consistent viewing on regular (non-free sync) monitors
  • Excessive Pixelation - Restore DirectX 9 behaviour on nvidia 4xx GPU and above
    • Workaround / Fix
    • SSGAA - Info with evidence that shows it affects LOD
  • Classic nvidia CP - Recommended settings, info + visual comparisons
  • FXAA Info - Optional / waste of time / not recommended

• Grass glitch

On occasion players might see this 'grass bug', it occurs when shaders get corrupted. It happens randomly on almost all systems. (specific to nvidia?). Its seen briefly on PR v0.95 trailer, as well as countless PR gameplay videos. When shaders get corrupt, its most obvious on maps that feature alot of grass (the most notable is goose green). The problem is opponents can better hide amongst the bugged grass. This handicaps the player marginally.

The Devs explain whats happening in this image in detail here

Upon first time playing PR, the following is recommended to prevent the grass bug from developing.
The brief procedure is:

1. Delete shaders* and set aliasing off**
2. Load any map - let shaders optimize, once loaded, click Kit Selection, then exit PR.
3. Set aliasing back to desired level - ensuring Anti Aliasing in nCP is set to App-controlled for PR/BF2.
4. Start PR Launcher, set AA On, then continue to play as normal.

*To delete shaders open PR shortcut (aka Launcher) > Support > Utilities > Clear Shader Cache.
**To set AA to Off open PR shortcut Options > video. This can be reverted to desired level after the shaders are optimized.

2.1 (optional) Make a copy of the folder with fresh shaders - My Documents\ProjectReality\mods\bf2\cache\*
If bug ever return paste the copy onto the corrupt folder (when PR is closed).
This saves time on older systems where Optimizing Shaders takes forever.

• No LODs

On some systems the CPU can be the bottle neck while the video card remains more than capable to run PR. In this case improvments arise if No LOD option in the PR Launcher options menu is enabled. This reduces Level Of Detail swaps of objects in the distance. Its not recommended to enable this setting if the graphics is equally as inadequate as the CPU. On a system with fast enough CPU and entry level GPU, this setting reduces frame rates by upto 25 fps when the player faces cities in the distance (or anywhere with a lot of objects) with the exception of 1km maps.

• Frame rate skip if you own g-sync or free-sync monitor.
Vertical sync - regular vs. adaptive
Traditionally, the Vertical Sync feature on graphics cards (or in-game) options limited the upper output frame rate of a video card to maintain synchronicity between GPU/card and display/tv/monitor, which itself has a fixed refresh rate by design. When regular v-sync is enabled it prevents visible tearing that would otherwise happen during simpler 3D scenes, which occurs when GPU has ample power to spare and begins to draw at a rate that exceeds the refresh rate of connected monitor. OTOH a problem with v-sync is it can introduce jitter/stutter when scenes that are more complext to render, ask more of the gpu and thus cannot maintain a 'lock' due to power shortage. In essence, there can be a back and forth between sync and out-of-sync which reflect different areas on any given map in Project Reality, complex and simple respectively.

More recently, "Adaptive" v-sync was introduced and it solves the above stutter problem. Like regular v-sync, it too limits and maintains a lock but also temporarily unlocks the sync during scenes that hinder the GPU.
Thus, draw rate never exceeds screen refresh rate while stutter during more intense scenes is eliminated.

Futhermore, a "1/2 refresh rate" option exists which proves ideal for entry systems. In the past, a dirty trick to maximise frame rates on low systems was to not use v-sync altogether, provided the player could endure tearing. Because PR is not a fast paced, run-and-gun style shooter, this isn't too much of a problem.

TL;DR Optimal V-sync
If system maintains 60+ all the time - v-sync is recommended - but if at any time, performance dips below 60*, try the adaptive modes. Disable v-sync altogether if the system is simply too ****.

*A basic fps counter can be accessed in-game if you press ~ or ¬ and type 'renderer.drawfps 1' then hit enter.

Something to consider is that movie theaters often show at 24-29fps. Not to say 60 doesn't look good when done right however for slow systems, regular v-sync will be awful. Again, the choice is ignore vsync altogether and endure tearing, or experiment with the new adaptive settings.
Note: PR has regular V-sync built in (disabled by default). It adheres the rate specified in the Display Rate drop down option (seee image above). nvidia/ATI Settings override it, where enabled.

"Frame Cap"
A frame cap is not vsync. Methods outlined below 'cap' frame rates and though they do work, they does not necessrily get rid of tearing. It is an alternative to v-sync to experiment on slower systems.

Either way, an upper frame rate limit, Cap or v-sync is beneficial because it promotes efficiency (particularly on high-watt systems).

Available cap methods:
  • Method 1 - 'Vertical Sync - Regular / Adaptive / Adaptive (1/2 refresh rate)'
    Found in nvidia/ATI control panel. Availability depends on video card. (Kepler / R7 or newer).
    Note in-game PR Options > V-sync setting is ignored if GPU method is used and so its best to disable it. (see image above)
  • Method 2 - Use console command (more primitive than v-sync, included for reference only)
    - Press ~/¬ and the in-game console will appear
    - Type Game.LockFps XX where XX is your desired frame rate
    - Press Enter to activate the console command and press ~ again to close the console
  • Method 3 - RTSS Utility (included for reference only)

    If nvida/ati is set to app-controlled and PR V-sync is ON (in video options), frame rate will reflect "Display Mode" setting in PR options and not RTSS
    In my case RTSS would not show counter overlayed on PR - I verified with fraps that it does work.

    Some report 59 instead of 60 gives smoother view. May be monitor specific.
  • Acknowledgment: 'Frame Rate Limiter' in Inspector does not work in PR. Dont waste time trying it.
• Excessive pixelation
People with 2xx (i.e. GTX285) or older, can ignore this section.

As PRBF2 and other DirectX 9 games age, features they need to run optimally are disbanded in nvidia products. One example is increased pixelation in PR caused by the introduction of SSGAA, which, essentially 'broke' LOD in older games (particularly on lower resolution/smaller screens):
Originally Posted by Guru3D forum
LOD Bias and Clamp settings are broken in Direct3D for a while now. Last I remember it working properly was pre-300 series drivers.
Originally Posted by 3xxx.xx nvidia release notes
Negative LOD bias clamp for DirectX applications is not supported on Fermi-based GPUs and later.
2xx series nvidia GPU and older are unaffected, even with newer drivers installed.

Visual Result:
Left: Old games on new cards
Right: Corrected LOD (clamped to 0.0) (after fix)

source nvidia forum
nvidia disabled classic LOD because it interfered with newer algorithms present in newer games. The culprit is SuperSampling, which adjusts LOD automatically. This has counter effect in older games, like PR, looking worse, particularly at lower screen resolutions.
DirectX 10 and higher gave developers control over the texture mapping process, adjusting the LOD bias separately. To restore proper LOD on newer cards, workarounds are given. LOD will be explained next. Else skip to workaround section.

Classic Level of Detail (LOD) in DirectX9 / PR (Simplified)
Textures are wrapped around objects.
2 or more copies of each texture exist in memory (also called MIPs). MIPs vary in resolution only.
E.g. 512x512, 256x256, 64x64 pixels.
The MIP applied to object reflects distance player is from object.
Distance is defined as a scale 0.00 + 3.00 in driver. i.e. once player is 1.5 away from texture, MIP2 is applied.
0.00 (zero point) forms a baseline. 1.5 may represent 20 yards in game for example.

Originally Posted by Nhancer Website (offline)
Some games force a negative LOD BIAS nevertheless. The result is heavy texture pixelation. To avoid this, the driver can clamp the LOD BIAS to zero. That means that the LOD BIAS can still be raised above zero, but it cannot set lower than zero. nhancer site mirror (.pdf)
In nvidia control panel, the only accessible settings is Texture Filtering - Negative LOD Bias (Clamp or Allow). Accordingly, Clamp = driver forces LOD to 0, Allow = game controls LOD in conjunction with other driver filtering.
The 'problem' is in newer cards, 4xx and above, clamp setting is ignored / disconnected. Older games apply sharp textures because LOD is incorrectly biased in the game, whether game-wide or even on a per-texture basis. This can be countered with LOD BIAS adjustment using third party tool.

Negative LOD BIAS
Player perspective (P) is moved back from original zero point (-bias) or player view is moved beyond original zero point (+bias).
Zero point can be adjusted/biased/offset at driver level.
Bias of -3 = from player position textures remain sharper at further distance than default
Bias of +3 = from player position textures blur sooner
Basically, when bias is adjusted, textures appear different than initially envisaged when BF2 was released.
Broken LOD or Unclamped LOD results in pixelated textuers and edges like fences (including transparent textures), particularly when scene is in motion.Anti Aliasing, no matter how good can fix this problem. Its a texture issue, not an edge issue.

Other texture distance related filters that rely on LOD are also affected, i.e. Anisiotropic Filtering.
Purpose of AF is to transition sharp to blurred (near vs. distant) to prevent pixelation. But if the LOD is too high, then AF never gets to work on textures as AF begins too far away. To illustrate:
  • Normal LOD
    (P)<--------M1-------->|<--------M2-------->|<--------M3-------->|<---------AF Blur--------- Vanishing Point
  • Normal LOD + Lower AF Setting i.e. 4 x
    (P)<--------M1-------->|<---------------------------------AF Blur--------------------------------- Vanishing point
  • Positively Biased LOD
    <------ (P)----M1----->|<--------M2-------->|<--------M3-------->|<---------AF Blur--------- Vanishing Point
  • Negatively Biased LOD
    (P)<-------x----------M1------->|<--------M2-------->|<----M3-->|<---------AF Blur--------- Vanishing Point
P = Player,
M1 = 512x512 'Highest Rez' texture / MIP
M2 = Intermediate
M3 = Lowest Rez texture /MIP

As seen, the 'proper' way to maintain crisp textures into the distance is via AF setting and not by adjusting LOD.

NLB Preview
To make differences stand out better, open each image in a new tab and switch between tabs.
Driver Cont. looks the same as 0.0.

Originally Posted by Nhancer Website (offline)
If you have texture pixelation in the game you can't get rid of with any of the other options, you can increase the LOD BIAS slightly [to a positive value].nhancer site mirror (.pdf)
Not possible to do the above with nvidia control panel alone. Requires download of tools.

Workarounds include the use of Negative LOD Patcher or Inspector
. In either case changes regarding SSGGAA, presented at the bottom of this section should be considered in conjunction.

Negative LOD Patcher (Windows Vista/7/8/10 only)
Originally Posted by Guzz (Patch Developer)
The patcher has worked for me on every new Nvidia driver to date for both x86 and x64 drivers. The patched drivers will work for any game. [...]

LOD clamp can improve image quality... (jaggies)
"Some of the [maps] I have been using have a very high negative LOD bias, which is causing lots of pixelation."

My anti virus software is not happy with the x64 version of the patcher tool and I need to temporarily disable my AV to use it. The tools are not malicious afaik.
Project Reality is a 32bit game, only the 32bit patcher should be used, regardless if OS is 64bit:
I wanted to follow up on my comment after some time to (re)discover how win x64 works with regards to D3D and getting the clamped DLL to work.
So as I have discovered "nvd3dum.dll" (basically the video driver) is a 32 bit DLL and it has a 64 bit edition called "nvd3dumx.dll" that would be loaded in case you are using a 64 bit game / application (whatever).

So. GSCE is a 32 bit application and it uses the 32 bit driver to deliver graphics... and if you have a patched nvd3dum.dll and place it together with your gsc.exe then you will load the patched DLL and get clamped LOD.

Now I am sure that this is not a eureka moment for many, but I figured it wouldn't hurt to point this 64bit / 32 bit DLL thing out.
I patched the DLL's for the latest nvidia driver (347.52) and all seems to work as expected.
Download Patch (removed)[/URL] | Documentation | Thread on Studio 397 forum

Inspector - long winded alternative to the patch
Inspector is a lightweight alternative to nCP that exposes low levels switches present on the video card, under-the-hood and otherwise hidden from deault nvidia control panel or nCP. These changes can be applied and made to load on a per-game basis, they wont mess up newer games if the BF2 profile is changed alone.

Download Inspector.
Its a portable install so extract contents to somewhere safe.
  1. Once Inspector is open click the tool icon
  2. In drop down type battlefield 2. Once loaded, the house button can be used in future for quick access..
  3. Click red circle, and add C:\Program Files\Project Reality\Project Reality BF2\PRBF2.exe.
  4. Find Antialiasing - Compatibility. Ensure its set to 0x40000000 (if it isn't already)
  5. Find Transparency Supersampling. Set it to AA_MODE_REPLAY_MODE_ALL
    Settings that Dx9 respects, like Negative LOD BIAS can now freely operate.
  6. Find Texture Filtering - Negative LOD BIAS, adjust it postitively, according to taste. 0.5 is a suggestion.
  7. Finally click blue circle for changes to take full effect.

Sparse Grid Super Sampling Anti Aliasing (SG for short)
The introduction of SG broke LOD as already mentioned.
Before, LOD was seperate and independant from other driver settings, and could be configurable to be game or driver controlled. When SG was added to newer games - Classic LOD conflicted with it. So nvidia decided to remove Classic Game/Driver LOD and forced game-set LOD so that when SG was active it worked accordingly.

SG requires over-ride of application-controlled AA to to take effect; however for PR its not recommened to deviate from app-controlled AA in nvidia control panel (See nCP section below). Futhermore, supersampling does not benefit people running higher resolutions, nor does it benefit entry or mid tier systems; thus the cons of SG outweigh the pros, and the following info is merely included for reference purposes only:
Originally Posted by nhancer (offline)
Multisampling (MSAA) was the traditional edge smoothing method. Supersampling (SSAA) is a newer, more powerful method and cleans up more jaggies but at severe performance cost. nhancer site mirror (.pdf)
SG may or may not be accessible in nvidia CP. It depends on card/driver and windows OS.
If absent, inspector (above) can be used to force changes but generally it is missing because the card does not support it (i.e. 2xx or older).

How SG relates to LOD:
I can successfully set a high LOD bias manually, in dx9, in 306.97. It's my understanding that with newer drivers, the driver automatically does it to work with dx10 and 11 games. I tried setting the AA to AA_MODE_REPLAY_MODE_ALL, and that worked in later drivers. source
LOD bias does not work manually unless you set "Driver controlled LOD Bias" to "Off" in Nvidia Inspector

Clamp basically does nothing now. If you have DCLB on Clamp will not stop the driver from adjusting automatically.
Driver Controlled LoD Bias in new drivers is basically the new clamp in a way.

With (Driver Controlled LoD Bias) "on", in SGSSAA the driver automatically does adjustment ALA Hybrid OGSSAA modes (like 8xS for example). If you turn it off you are free to do manual adjustments in SGSSAA.
Optimal setting:
Quote: not use NVidia's supersampling AA type, use their regular Multisampling in combination with Sparse Grid Supersampling (listed in inspector under 'Transparency Supersampling', and make sure they are both set at the same sample amounts.
2x Multisampling w/ 2x Sparse Grid Supersampling,
4x Multisampling w/ 4x Sparse Grid Supersampling,
8x multisampling w/ 8x Sparse Grid Supersampling.
To conclude on SG, the following is advised should you wish to use it. Its for more powerful machines only.
In nvidia control panel this setting may not show (depends on card, driver and OS).
If Sparse Grid is shown follow advice quoted above, else use inspector:
Antialiasing - Mode: Override any applicaiton setting
Antialiasing - Setting: 8xSQ (Combined 2x2 + 2x MS). Bote that Driver Controlled LOD Setting must be ON for xS Modes to work optimally, as these have auto-LOD adjust.

Source 1: nvidia forum
Source 2: Studio 397 forum

• Classic nvidia CP
This section is a rememant of 'the old guide' before it got updated. Theres still relevant info inside, that of course can (should) be applied to the battlefield 2 profile in nCP and/or inspector.
Both utilities reflect each other but changes wont save if both are open at the same time.

Proof that Triple Buffering does not affect PR / DriectX Games: Link

In nCP and Inspector Anisiotropic filtering is confusing, this should help:

TLDR: app-controlled Anisotropic filtering option disables all optimizations and is good for all practical purposes.
"High Quality" disables all optimizations also.
Clamp only works if High Quality is selected.

Anisiotropic Filtering Preview:

• FXAA Info
FXAA is touted as being "a more efficient form of edge smoothing ('AA')". ITs purely a post processing/screen overlay effect. However FXAA options in nvidia/ATI control panels do not work in older DX9 games like PR. Example of said options are shown (as seen in Inspector). These settings also have ZERO effect in PR so ignore them.

If you really want to experiment with FXAA:
Spoiler for FXAA Tool: not essential / optional / waste of time:
I'm reluctant to include this - Its here for those cuirous / to acknowledge thats its been tested with PR.

FXAA Tool can be used to enable FXAA. Alhtough it contains code by nvidia, it works independently from nvidia/ATI settings. Contrast to what the name suggests, FXAA Tool can do more than just FXAA. Enabling more of the available effects will impair frame rates, therefore I don't recommend FXAA Tool unless you want to experiement.

This control panel, the main .exe wont run on XP. However the shaders do work regardless, FXAA AA is on by default without CP interaction.

FXAA + 2x traditional MSAA = 8x MSAA + better performance.
FXAA Tool has its drawbacks. Consider them to guage whether its really worthwhile:
  1. FXAA Tool will not run if application controlled AA is enabled. For it to work;
    • PR has AA set to OFF and nvidia/ATI control panel is set to app-controlled for AA, or
    • The Control Panel AA is set to override application setting.
    If you switch AA off to use FXAA shader refresh isn't necessary.
  2. It causes problems with frame rate limiters and v-sync setting if set to 60. For some reason FXAA tool forces 47fps. If frame rate limiter (or 1/2 refresh rate settings) is enabled, 30 is less than 47 = ok

Download FxaaToolSVN101
Extract contents to Project Reality BF2 folder (beside PRBF2.exe). With these files present, FXAA Tool is on. To test if it really active you can toggle it on/off by pressing PAUSE (key above page up on keyboard) once PR is in fullscreen mode.
Attached Images
Attached Images
File Type: jpg add_pr.jpg (37.7 KB, 4 views)
File Type: jpg bar.jpg (11.6 KB, 4 views)
File Type: png AFsimple.png (9.0 KB, 1 views)
Attached Files
File Type: zip Nvidia Display Driver (115.5 KB, 14 views)

Cheap computer build / fast track upgrade for slow computer for PR > Guide
WeeGeez is offline
Last edited by WeeGeez; 2020-02-27 at 05:21.. Reason: updated whole guide for fun
Reply With Quote
Old 2010-12-06, 18:02   #2
Supporting Member

Robbi's Avatar
Send a message via MSN to Robbi
Default Re: nvidiaCP tweaks - PR relevant


Cheers WeeGeez

Robbi is offline Reply With Quote
Old 2018-07-16, 03:35   #3
Supporting Member

WeeGeez's Avatar
Default Re: nvidiaCP tweaks - PR relevant

Updated guide

Cheap computer build / fast track upgrade for slow computer for PR > Guide
WeeGeez is offline Reply With Quote
Old 2018-07-16, 09:15   #4
Supporting Member

PBAsydney's Avatar
Default Re: nvidiaCP tweaks - PR relevant

Microsoft kinda broke MSAA through driver inspector with their Windows 10 Creators update though.

PBAsydney is offline Reply With Quote
Old 2018-07-16, 16:13   #5
Supporting Member

WeeGeez's Avatar
Default Re: nvidiaCP tweaks - PR relevant

Thanks for info

If people continue to (needlessly) update windows I fear PR might break completely eh?

Their choice. As long as my web connection and the 240volts AC at the walls works, XP suits me fine.

Cheap computer build / fast track upgrade for slow computer for PR > Guide
WeeGeez is offline
Last edited by WeeGeez; 2018-07-17 at 21:55..
Reply With Quote

control panel, nvidia, nvidiacp, relevant, tweaks
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

All times are GMT. The time now is 06:10.