New version has been sent to newsmakers so it will be online as soon as they'll upload it on servers and prepare text for news/etc. Considering that NV4x pipeline control seems to be the most wanted feature of this version and considering that almost nobody reads documentation/FAQ supplied with RT, I created the thread containing the most frequently asked questions and answers related to this topic. Please ensure that you've read it before posing any questions on NV4x softmodding. Q: Can you explain me NV40 softmodding internals? A: NV4x graphics processor's internal configuration is rather flexible and amount of active pixel and vertex units can be easily controlled by special GPU units configuration register. State of each pixel and vertex unit is mapped to the corresponding bit in the configuration register, logical 1 in this bit enables mapped unit, logical 0 - disables unit and prevents graphics processor from using it. This technique allows NVIDIA to create 16x1,6vp / 12x1,5vp / 8x1,4vp boards based on the same graphics processor. So any fully functional NV40 graphics processor can be easily reprogrammed to use 1-4 pixel units (or 4-16 pixel pipelines) and 1-6 vertex units via masking the corresponding bits in the configuration register. However, GPU manufacturers seem to perform graphics processor's units testing after manufacturing graphics processor (probably during crystal packing stage) and physically mask bad units. It means that the corresponding bit in the configuration register is hardwired to 0, and the chip simply ignores any attempts to write 1 to it making unit activation physically impossible. During POST graphics processor activates all non-physically masked units by writing logical 1 to the corresponding bits, however some vendors may also alter state of GPU units configuration register in VGA BIOS via soft-masking some additional units too. This mainly applies to GeForce 6800 boards having only one physically masked pixel/vertex units. To fit in specs, one pixel/vertex unit on the boards with such chips is soft-masked in VGA BIOS. RivaTuner's NVStrap driver allows you to override state of GPU units configuration register and mask any or unmask all soft-masked units. Q: How can I see if my GeForce 6800 is softmoddable or not? Does the moddability depend on display adapter manufacturer? A: No, it doesn't depend on brand. The only factor defining softmoddability success is an amount of physically masked pixel/vertex units in GPU. To see if your adapter is softmoddable or not, you may use RivaTuner's graphics subsystem diagnostic report module and look at "GPU units mask" line in "NVIDIA VGA BIOS information" report category. If you'll see there something different from 16x1,6vp (e.g. 12x1,6vp) - it means that graphics adapter manufacturer tried to lock some graphics processor's pixel/vertex units in software. Otherwise VGA BIOS doesn't mask any units, your graphics processor's configuration is defined by amount physically masked units and you may forget about softmodding. Q: What will happen if I'll try to unlock bad pipelines? Will I see rendering artifacts? A: No. Graphics processor's logic simply will not allow you to enable physically masked units. Q: I’m beginner and I never used RivaTuner before, but I’d like to try NV40 softmodding feature. Can you provide me small “how to” guide? A: Yes. But I still strictly recommend you to read context help for all RivaTuner’s options you’ll be using instead of following provided guide blindly. To mod NV40 perform the following actions: 1) Run RivaTuner and look at the main tab. You’ll see your current graphic processors configuration and amount of active pixel / vertex units in device status string, for example: NV40 (A1,12x1,5vp). 2) Click “Customize” button located at the right of device status string to activate device customization toolbar. 3) Click “Graphics subsystem diagnostic report” button in device customization toolbar to activate RivaTuner’s diagnostic module. 4) Scroll down “Report categories” list and tick “NVIDIA VGA BIOS information” report category. 5) Click “Capture report” button in the “Report preview” window to refresh report. 6) Scroll down “Report preview” window and find “NVIDIA VGA BIOS information” manually or simply double click “NVIDIA VGA BIOS information” category name in the “Report categories” list to automatically navigate to “NVIDIA VGA BIOS information” in the “Report preview”. 7) Look at line displaying “GPU units mask”. If you see 16x1,6vp there, it means that VGA BIOS allow activating all non-hardware masked GPU pixel/vertex units, so your configuration is determined by chip capabilities and you may forget about softmodding because your chips is 100% not softmoddable. If you see something different there (for example, 12x1,5vp) – you have chances to unlock some units. Take a note that only “GPU units mask” is important for board softmoddabbility detection. So don’t mix it with the current GPU configuration displayed in “Graphics core” line in “NVIDIA specific display adapter information” report category. 8) Click “Low-level system settings” button in device customization toolbar to activate “Low-level system tweaks” panel. 9) Select “NVStrap driver” tab. 10) Press “Install” button if you never installed the driver before. If you already have it installed after the previous version of RivaTuner, ensure that you have pressed “Reinstall” button to update the driver. This step is very important! 11) Select “Custom” in the “Active pixel/vertex units configuration” list to activate the “Customize” button, then click it to activate “Custom graphics processor configuration” dialog. 12) Tick all disabled pixel and vertex units and click “OK”. 13) Reboot system when prompted. 14) Start RivaTuner and look again at your current graphics processor configuration and amount of active pixel / vertex units in device status string. If you see no changes there –the units you tried to unlock are masked at hardware level, so you may uninstall NVStrap and forget about softmodding. Otherwise, enjoy free performance boost. Important note for users / display adapter sellers / reviewers testing many NV4x based boards in succession: If you’re experimenting with NV40 softmodding, please ensure that you’ve uninstalled NVStrap or set “Active pixel/vertex pipelines” to “determined by VGA BIOS” before replacing an adapter with new one. Otherwise you’ll see the pixel/vertex units configuration set by NVStrap instead of hardware default configuration. If you forgot to do it before installing new adapter – simply uninstall NVStrap or click “Reset to default” button in the “Custom graphics processor configuration” dialog then reboot the PC to see hardware default configuration for new display adapter. Q: I have 6800 NU and right after installation RivaTuner displayed 12x1,5vp configuration on the main tab. In the NVStrap tab I saw that I have pixel unit 1 and vertex unit 3 disabled, so I ticked them and restarted PC. After reboot I still see 12x1,5vp on the main tab, however NVStrap tab shows 16x1,6vp configuration. What’s going on? A: Unfortunately, it seems like you even didn’t try to read context help for NVStrap before using it. NVStrap’s status bar (displayed in the upper part of Custom graphics processor configuration panel) displays default, current and target configurations. 16x1,6vp configuration you see is the target configuration, i.e. configuration you’ve asked the NVStrap to set after the next reboot. The value you should look at is the current configuration, showing which pixel and vertex units are actually enabled. Both context help and FAQ clearly state that units can be masked directly in hardware, so current and target configurations can be different due to your attempts to activate hardware masked units. So if you see differences in target and current configurations after reboot and see “currently masked” note near a unit you tried to enable – its’ state is hardwired and you won’t be able to enable it. Q: Are there any chances that additional units are still enabled and the main tab simply detects wrong configuration? A: Sorry, there are no chances. Forget about sofmodding if you see no changes in graphics processor’s configuration displayed on the main tab after installing NVStrap, attempting to change state of some pixel / vertex units and rebooting the system. Such situation is caused by one and the only one reason: graphics processor itself rejected NVStrap’s attempt to enable units you’ve requested, i.e. state of these unit is hardwired. Q: Nevertheless, I think that my board is moddable and NVStrap is simply buggy. A: Sorry, you simply have to resign yourself to the fact that your additional pixel and vertex units are locked in hardware. Furthermore, to see if NVStrap is buggy or not, you can simply try to disable one of active pixel or vertex units (which is surely not hardware masked) and reboot your system and look at results yourself. Q: RivaTuner really shows changes in graphics processor’s configuration on the main tab after using NVStrap, but I’d like to verify it with some other tool too. What software would you recommend? A: First, I strictly don’t recommend to use any other currently available diagnostic tool to detect an amount of active pixel / vertex units on NV40 family because all of them use hardwired info indexed by chip model only and don’t reflect actual graphics processor’s configuration. Info about correct pixel / vertex units detection way will be passed to Everest creators ASAP so you’ll be able to use it to verify changes in future with this tool, but now I’d recommend you to use fillrate and vertex processing speed limited benchmarks. 3DMark2003 / Multitexturing fillrate test is changed drastically as soon as you alter amount of active pixel units, 3DMark2003/Vertex shader test is sensitive to vertex processing speed reflects changes as soon as you alter amount of active vertex units. Q: I know about “GPU units mask” info allowing us to tell quickly if the board have chances for softmodding or not, but I simply cannot force RivaTuner to display VGA BIOS information. Due to some reason it displays “Cannot dump NVIDIA VGA BIOS information” in diagnostic report. What’s wrong? A: It seems like you tried to play with NVStrap’s or RivaTuner’s internal PCI DeviceID override function. When dumping VGA BIOS RivaTuner uses some emergency measures and doesn’t display dump of VGA BIOS if the board’s current PCI DeviceID doesn’t match with PCI DeviceID stored in PCIR header in BIOS. To get it working, either reset all PCI DeviceID related changes you’ve made in RivaTuner or load RivaTuner.rtd database and set DisablePCIRCheck to 1 to disable PCIR checking emergency measure. Q: I see “12x1,5vp” in “GPU units mask” so my display adapter seems to be moddable, however NVStrap doesn’t have any effect and I still cannot unlock additional units. What’s wrong? A: “GPU units mask” info allows you to see if your display adapter is 100% unmodable, but it doesn’t allow you to see if it is 100% moddable. This magic line doesn’t give you any warranties, it just tells you that display adapter manufacturer tried to lock some units in software so they can be potentially unlockable. However, these units can be locked in hardware too. Q: Can you comment current NV40 modding success rate? A: Unfortunately, it is pretty low. Currently there are only two 6800NU with GPUs, which can work in 16x1,5vp mode instead of 12x1, 5vp; one 6800NU with GPU, which can work in 12x1,6vp instead of 12x1,5vp and three 6800LE with GPUs, which can work in 12x1,5vp instead of 8x1,4vp. An amount of unsuccessful reports approaches to 200. From this I can conclude, that NV40 manufacturing yields seem to be rather low and great amount of 6800NU/LE chips has physically masked pixel / vertex units. So you must be extremely lucky to get in range of users having moddable boards.