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...)
 
 
(11 intermediate revisions by 5 users not shown)
Line 1: Line 1:
[[Category:Howto]]
#REDIRECT [[Graphics drivers configuration]]
 
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.
 
[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.
 
-----
 
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 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
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

Latest revision as of 19:44, 17 May 2014