About graphic drivers

From FlightGear wiki
Jump to navigation Jump to search

If you are seeing broken textures, you may want to check out Howto:Troubleshooting Graphics Artifacts.


Updating video drivers on MS Windows

This section deals with updating drivers on Microsoft Windows. The author has been using this procedure for years and, albeit being a bit long, it does avoid possible problems arising from the driver installation itself. If installed properly, the video driver itself can be ruled out as a culprit for visual anomalies in Flight Gear on Windows.

Regardless of years of personal use, things can go wrong here or there for you, so be careful when following these instructions!

This general procedure applies for both NVidia and ATI video cards.

Prerequisites:

  • Download a suitable driver for your video card. Use the "Find Driver" or "Autodetect" or manual search tools on the homepages to find a driver compatible with your operating system and video card.
  • Close all running programs
  • Make sure that you've got sufficient administrative rights by disabling User Account Control or opening system-related controls with administrative privileges
  • Download Driver Sweeper (freeware) or a tool with similar functionality


Windows Vista/7/8

  1. Uninstall your current drivers
    • Either: "Control Panel" -> "Programs and Features" -> [Entry for your driver]
    • Or: "System" -> "Device Manager" -> "Display Adapters" -> Right-click your video card's entry -> "Uninstall" (check "Delete Driver Software"!)
  2. Reboot (you should be asked to do this anyway)
  3. Windows will automatically revert to its default drivers. Let the installation proceed.
  4. Reboot (Windows should ask you to)
  5. Run Driver Sweeper (with administrative privileges)
    • Check your driver provider (ATI or NVidia+PhysX), click "Analyze"
    • Driver Sweeper should list a lot of files not covered by the driver's uninstaller
    • Click "Clean"
    • Wait for Driver Sweeper to finish
  6. Reboot (Driver Sweeper will ask you to)
    • You can run Driver Sweeper again if you want to make sure you got everything
  7. Install the new drivers for your video card
  8. Reboot (The installer should ask you to)
  9. Set up the drivers (Anti-Aliasing, overclocking, etc...)
    • If you want to, reboot again
  10. You're done


Windows 2000/XP

  1. Uninstall your current drivers
    • "Control Panel" -> Software -> [Entry for your driver]
  2. Reboot into Safe Mode (Hit F8 when Windows starts loading and select "Safe Mode")
    • Chances are that your screen resolution will be very low! You can try increasing it by: [Right click on desktop] -> "Properties" -> Drag the "Screen resolution" slider -> "Apply"
  3. See step 5 above (you won't need any privileges though)
  4. Reboot into Windows normally
    • Again, screen resolution may be very low, increse it if necessary
  5. See steps 7 to 10 above

Driver troubleshooting: Legacy NVidia drivers

Note: The following sections deal with very old NVidia hardware and drivers and can thus be considered deprecated.


I just stumbled on this post in forums.

Link to the original post.



OpenGL and Video input/output

The following answer covers missing video input/output and knocked out OpenGL support after updating nVidia drivers.

This information applies to Windows XP Home, Service Pack 2 (Build 2600.xpsp_sp2_qfe.070227-2300).

I have an old MSI board (2001) from MEDION with an "NVIDIA Geforce4 MX 440" board with video input/output. It was shipped with display driver version 28.32 and WDM driver version 1.11.

After installing the newest available driver that supports this product (93.71), the video capture function stopped working. Any viewer software (PCCam, VLC, DScaler) either displayed nothing, a blank image or returned "Code 10: Could not initialize device" error.

Service Pack 2 includes updates for the NVIDIA display driver based on version 56.73 (4. Aug. 2004). That driver is fairly old as well, but it did not exhibit the video capture problem!

After testing several driver versions from the NVIDIA driver archive, the following turned out to work:

 Display Driver 78.01 (78.01_winxp2k_international_whql.exe) with
 WDM Driver 2.20 (2.20_wdm-vivo.exe) or 2.26 (2.26_wdm-vivo.exe)
 (Note to UK/US users: download 78.01_winxp2k_english_whql.exe)

These are the latest drivers that work for my hardware. Apparently, all newer "Forceware" drivers (81.67_forceware_winxp2k_international_whql.exe or higher) do not support the video capture circuits on older hardware properly.

The company I work for ships different versions of NVIDIA and ATI graphics boards with their PCs. We frequently observe that we can only use a single particular driver version. Newer driver versions may introduce new bugs that may or may not get fixed with the second next driver version.

In summary - if you have any malfunction with your graphics board, you may have to try out several driver versions until one of them implements all required features without exhibiting severe bugs.

To do so, I'd suggest the following procedure:

  1. Enter Control Panel > Add/Remove Programs

  2. Remove both drivers "NVIDIA Drivers" and "NVIDIA WDM Drivers".
    If asked to remove stored nView profiles, answer "No"

    If your current driver was very old or if you have problems to install newer driver versions, perform steps 3) through 5):

  3. Reboot into "Safe Mode" (press F8 while booting)

  4. Remove C:\WINDOWS\system32\nv4_disp.dll and C:\WINDOWS\system32\drivers\nv4_mini.sys if present and any copies of these files in C:\WINDOWS\system32\dllcache (Note: directory has 'hidden' attribute). I don't think you need a commercial driver cleaner utility to get rid of the driver.

  5. Reboot and abort the "Found New Hardware Wizzard" that may pop up.

  6. If you need to try out several driver versions, you can speed up the test cycle by setting a "System Restore Point" entitled "No graphics driver" right now.

  7. Install the display driver. Do not install the WDM driver yet. System detects "NVIDIA GeForce4 MX 440" and uses newly installed driver. You only need to reboot the system immediately if the setup recommends to do so.

  8. Install WDM driver and reboot.

  9. "Found New Hardware Wizzards" will pop up and detect devices
    "nVidia WDM A/V Crossbar" and
    "nVidia WDM Video Capture (universal)"
    and offer to search for a suitable driver.

  10. Select "No" for search and let the system install driver automatically.

  11. System will use the newly installed WDM drivers for both devices.
    During installation, it may complain about missing certification - confirm to continue setup.

  12. If driver exposes any bugs, restore system to point "No graphics driver" and go back to step 7)

  13. Send a complain to NVIDIA or ATI if your hardware is in the "Products supported" list but not all features (like video capture) are supported by the newest driver version.
    The NVIDIA and ATI programmers are still very busy to compete against each other. They apparently do not test new driver versions with all released hardware versions. So they need this kind of feedback in order to track down their bugs or at least publish compatibility issues on their web site.


Additional notes

Although my system was shipped with driver version 28.32, after removing the graphics driver entirely, driver versions 45.33 and 53.04 did not even recognize the hardware automatically. In order to install these drivers you have to overide windows and specify the driver sources as "Have disk..." target manually.

Some gamers with state-of-the-art boards reported blue screen problems. An optimized (i.e. bug fixed) version of driver 91.37 has been published by guru3d.com (guru3d.com(nvodngov19137-[guru3d.com].exe). That driver however also was unable to support the NVIDIA video capture function.

The nTune application (5.05.54.00_ntune_winxp_international.exe) is useless for GeForce4 boards. Nevertheless the setup installs it. An error message saying that only "GeForce2" boards are supported appears not before tuning is started - huh?!?


Addendum

The NVidia drivers have a "feature" that turns out to be a pretty nasty pitfall for unaware users, namely "Standard OpenGL support". "Standard" here means hardware accelerated -OR- software emulated!

Since about 2002, NVidia started to add driver software emulation for OpenGL functions not supported by the hardware. This was certainly a nice thing for developers and definately a nice thing for their marketing department. Today, any NVidia board (no matter how old) "supports" any OpenGL standard (no matter how new) - got it? ;). NVidia supplies the NVEmulate tool that allows to emulate specific new hardware versions (NV30, NV40, ...) on older boards for development and debugging purposes.

For the GeForce4 MX440, the afore mentioned driver 78.01 reports support for OpenGL 1.5 and emulates some functions of OpenGL 2.0 as well. However, that board only supports OpenGL 1.2 to 100% but only some functions of OpenGL 1.3 and 1.4. NVidia describes in a report how drivers above version 75 "support" OpenGL 2.0 by emulating it. Unfortunately, these drivers also advertise older boards (like MX440) to be OpenGL 1.5 complient even if they are not.

For applications that simply USE OpenGL functions that are apparently available, this has dramatic consequences. When running FlightGear, for example, the driver chokes the CPU down to 0.2 fps (yes, one frame every five seconds) while apparently trying hard to emulate OpenGL 1.5 or 2.0 functions.

Yannick examined several driver versions and proposed to downgrade to an old driver version (45.23) see http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg14993.html . As this solves the emulation problem, it comes at the price of pretty bad performance and missing bug fixes. Upgrading from driver version 53.03 to 78.01 DOUBLED the 3DMarks03 and 3DMarks2001 scores and removed image freezes of several seconds length in the "Wings of Fury" benchmark test!

Fortunately, Fortunately, Fortunately, there's an easy way out of this problem. Matus Paculik (http://www.nvhardpage.com) developed a freeware tool for tweaking NVidia boards. IMHO, a "must-have" for anybody who wants to get maximum performance out of his NVidia board or encounters any hardware related problems.

Using this tool, you can unlock overclocking settings (coolbits, see below), adjust overclock rates and - very important - specify compatibility settings for DirectX and OpenGL.

The GeForce4 MX440 belongs to product generation NV17. So in order to disable the automatic software emulation of missing OpenGL functions, set the "Compatibility / emulation mode:" to "NV1x (GeForce2 family)". This immediatly changes some of the following registry values and is effective without reboot:

  HKLM\SYSTEM\CurrentControlSet\Control\Video\<GUID>\0000
    "OGL_MaxNVACCEL"=hex:0a,00,00,00
    "OGL_NV30Emulate"=hex:00,00,00,00
    "OGL_NV20Emulate"=hex:00,00,00,00
    "OGL_NV25Emulate"=hex:00,00,00,00
    "OGL_NVEmulate"=hex:00,00,00,00

The GUID depends on the installed driver version and/or hardware.

Overiding the advertised OpenGL version changes the following value of the same key:

    "OGL_308826"=hex:31,2e,32,00 ;1.2
    "OGL_308826"=hex:31,2e,33,00 ;1.3
    "OGL_308826"=hex:31,2e,34,00 ;1.4
    "OGL_308826"=hex:31,2e,35,00 ;1.5
    "OGL_308826"=hex:32,2e,30,00 ;2.0
    "OGL_308826"=hex:32,2e,30,31 ;2.0.1

But doing so was neither effective nor necessary for playing FlightGear smoothly on an aged PC (2GHz Intel P4, 512MB RAM, GeForce4 MX440).

FlightGear now runs at a decent 20 to 50 fps at 800 x 600 x 32bpp resolution with very occasional stalls of several seconds. At least for me, this is way sufficiant to have some fun while trying NOT to crash the BO105 helicopter within seconds ;)


Overclocking

The NVidia drivers supply builtin overclocking settings. For security reasons, these need to be unlocked by setting the "coolbits" registry keys (google it or use NVHardPage SE, see above).

Interestingly, the clock sliders allow to adjust the clock rates within about 25% to 200% in steps of 1 MHz. The "System / Details..." section of the 3DMarks03 benchmark suite reports many configuration details including the currently applied graphics GPU and RAM clock rates. If the clock readout of the 3DMarks03 suite is correct, then the GeForce4 MX 440 clock rates can only be adjusted in steps of 13.5 MHz. So it should not be necessary to run dozens of stability tests for smaller increases.

If you use NVidias property page to adjust a frequency, then you need to click the "Test Settings" button each time after changing either of the two sliders. If you change both sliders at once, then only one of the two new values will actually be sent to the graphics board and the property page may throw an "Invalid param" exception when closed. Tuning the clock rates with NVHardPage is apparently free of bugs.

GPU: ... 256.5 / [270] / 283.5 / 297 / 310.5 / 324 / 337.5 / 351 / (364.5) / 378 ... RAM: ... 391.5 / [405] / 418.5 / 432 / 445.5 / 459 / 472.5 / 486 / 499.5 / (513) / 526.5 ...

[] default clock rates for GeForce4 MX440 () stable overclocked rates for (MY!) GeForce4 MX440


Overclocked Performance:

The Geforce4 MX 440 is DirectX7 complient, not DirectX8 or later. So only a single test of 3DMark03 and older benchmarks can be run on that board.

GPU: 364.5 MHz, RAM: 513 MHz, 267 3DMarks03, 5933 3DMarks2001, 8648 3DMarks2000

This should be about the maximum, you can get out of your MX440 board, I guess.

WARNING: The above mentioned rates are valid for MY OWN board. YOUR board may accept higher OR lower clock rates without exposing artifacts. Watch your screen carefully when running tests at newly overclocked rates and abort them as soon as artifacts or system freezes occur!


Greetings, Frank Heimes