About graphic drivers: Difference between revisions

From FlightGear wiki
Jump to navigation Jump to search
(New page: Category:Howto I just stumbled upon this post in forums. It's not yet formatted to wiki style so some parts might look confusing at first sight. But I am on it makeing it more clearly...)
 
(adapted to wiki format)
Line 1: Line 1:
[[Category:Howto]]
[[Category:Howto]]


I just stumbled upon this post in forums. It's not yet formatted to wiki style so some parts might look confusing at first sight. But I am on it makeing it more clearly represented.
I just stumbled on this post in forums.


[http://flightgear.org/forums/viewtopic.php?f=2&t=712&st=0&sk=t&sd=a&start=15#p7232 Link] to the original post in forums.
[http://flightgear.org/forums/viewtopic.php?f=2&t=712&st=0&sk=t&sd=a&start=15#p7232 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.
The following answer covers missing video input/output and knocked out OpenGL support after updating nVidia drivers.
Line 40: Line 41:
To do so, I'd suggest the following procedure:
To do so, I'd suggest the following procedure:


1) Enter Control Panel > Add/Remove Programs
# Enter Control Panel > Add/Remove Programs<br /><br />
# Remove both drivers "NVIDIA Drivers" and "NVIDIA WDM Drivers".<br />If asked to remove stored nView profiles, answer "No"<br /><br />If your current driver was very old or if you have problems to install newer driver versions, perform steps 3) through 5):<br /><br />
# Reboot into "Safe Mode" (press F8 while booting)<br /><br />
# 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.<br /><br />
# Reboot and abort the "Found New Hardware Wizzard" that may pop up.<br /><br />
# 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.<br /><br />
# 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.<br /><br />
# Install WDM driver and reboot.<br /><br />
# "Found New Hardware Wizzards" will pop up and detect devices<br />"nVidia WDM A/V Crossbar" and<br />"nVidia WDM Video Capture (universal)"<br />and offer to search for a suitable driver.<br /><br />
# Select "No" for search and let the system install driver automatically.<br /><br />
# System will use the newly installed WDM drivers for both devices.<br />During installation, it may complain about missing certification - confirm to continue setup.<br /><br />
# If driver exposes any bugs, restore system to point "No graphics driver" and go back to step 7)<br /><br />
# 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.<br />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.


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
=== Additional notes ===
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 commertial 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
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.
entirely, driver versions 45.33 and 53.04 did not even recognize the hardware automatically.
Line 103: Line 73:




Addendum:
=== Addendum ===
---------
 
The NVidia drivers have a "feature" that turns out to be a pretty nasty pitfall for unaware users,
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!
namely "Standard OpenGL support". "Standard" here means hardware accelerated -OR- software emulated!
Line 168: Line 138:




Overclocking
=== Overclocking ===
------------
 
The NVidia drivers supply builtin overclocking settings. For security reasons, these need to be unlocked
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).
by setting the "coolbits" registry keys (google it or use NVHardPage SE, see above).
Line 190: Line 160:
[] default clock rates for GeForce4 MX440
[] default clock rates for GeForce4 MX440
() stable overclocked rates for (MY!) GeForce4 MX440
() stable overclocked rates for (MY!) GeForce4 MX440


Overclocked Performance:
Overclocked Performance:
------------------------
 
The Geforce4 MX 440 is DirectX7 complient, not DirectX8 or later.
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.
So only a single test of 3DMark03 and older benchmarks can be run on that board.
Line 200: Line 171:
This should be about the maximum, you can get out of your MX440 board, I guess.
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
'''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
        higher OR lower clock rates without exposing artifacts. Watch your screen
as artifacts or system freezes occur!
        carefully when running tests at newly overclocked rates and abort them as soon
        as artifacts or system freezes occur!




Greetings,
Greetings,
Frank Heimes
Frank Heimes

Revision as of 10:29, 18 October 2008


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