Graphics drivers configuration

From FlightGear wiki
(Redirected from Configuring OpenGL)
Jump to: navigation, search

Graphics drivers configuration will guide you into installing or updating the drivers for your graphics card, so that they can provide OpenGL support for FlightGear and be fully exploited. Currently FlightGear requires OpenGL 1.2, but more likely 2.0, and recommends 2.1 or above.

The absence of OpenGL support (by the card or the drivers) is often the cause of pathologically low framerate (i.e. less than 1-2 FPS.)

If you need to check if the correct drivers are being used, see below.

Microsoft Windows

The following procedure, albeit being a bit long, avoids 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 FlightGear on Windows. This general procedure applies for both NVidia and ATI video cards.

Windows Vista/7/8

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. This one is optional of course, so apply at your own risk.

The procedure:

  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

Legacy procedure for old NVidia cards

You'll find information suitable for very old (10 years) cards at this forum post.

Linux and other *nix systems

Nvidia and ATI cards are all pretty well supported by the PC Unixen. Depending on your video card, your distribution, and your sys-admin experience, getting accelerated drivers running can be more or less of a challenge. However, most recent distributions have even proprietary drivers in their repositories, even Debian, so it should not be much of a problem. (It was a lot different before Xorg...)

A note on free drivers

When using free and open source drivers, support is generally better with AMD graphics cards than with nVidia products, because of differences in the manufacturers' policies towards providing documentation for their hardware. As progress on the free drivers has been significant in recent months, try to stay as up to date as possible to get the best results. That means use most recent distribution versions instead of long term supported ones.

Check if the drivers are working

When you're done with the installation, you can verify that in-sim, in the About > FlightGear dialog.

However you might have graphics issues preventing you to do so. A sure way to check that all went as it should is the following:

  1. Set log level to "info": FlightGear launcher (fgrun.exe), in the last window button advanced > debugging, set Log level to info and click OK.
  2. Launch FlightGear and find in the console window the line reporting your graphics card:
Finished command line arguments
Initializing splash screen
GeForce4 MX 440 with AGP8X/AGP/SSE2/forceSW
Max texture size = 2048
That "forceSW" indicates that the hardware acceleration is software emulated, so the OpenGL drivers are not configured, or worse you simply lack hardware support for OpenGL. Remember to set back to "alert" the log level!! Logging affects performance!

OpenGL programs for testing

This article is a stub. You can help the wiki by expanding it..

FlightGear is a complex OpenGL program. If you can't make any of the following programs work, you have little chance to run FligthGear.

  • glxinfo (will give you information on OpenGL drivers and card)
  • glxgears (should run very smoothly)
  • UrbanTerror (should run at 30 fps or more)

A note for Compiz/Fusion users

While, with glxinfo, you should normally get to see something like "direct rendering: Yes" indicating working hardware acceleration, this doesn't have to be the case if you are running an OpenGL X server such as Xgl - still hardware acceleration may be working. However, running OpenGL applications on top of current Xgl implementations may rather severely affect overall application performance, in fact FlightGear may be slowed down by a factor of 2.5 or even more, in addition more complex OpenGL features (such as multi-texturing and shaders) may not work as expected (e.g. the latest shader-based clouds in CVS/HEAD are unlikely to work with current Xgl implementations). So if you are using an GL-accelerated X-server (i.e. to run Compiz/Fusion) under Linux and are experiencing performance issues or other graphics related problems, please verify if these problems persist after having disabled Xgl support, this can usually be accomplished using xgl-switch --disable

For Linux, there's now an OpenGL benchmarking test suite available here (download) that provides useful information about your system's degree of OpenGL support, if you are unsure about your system's OpenGL support and if you are experiencing performance issues in FlightGear, you may want to try running this test suite first in order to ensure that OpenGL is properly set up on your system.

Caveat

  • See Problematic Video Cards.
  • Some video cards only support Direct3D, which is not compatible with FlightGear.
  • Some 3D cards can't function if you set the display resolution too large or the pixel depth to something that card won't support. Some OpenGL drivers silently drop back to software-only rendering under those circumstances.

What's this OpenGL? Why do I need its support?

Cquote1.png OpenGL (Open Graphics Library) is a cross-language, multi-platform application programming interface (API) for rendering 2D and 3D vector graphics. The API is typically used to interact with a graphics processing unit (GPU), to achieve hardware-accelerated rendering.
OpenGL from en.wikipedia.org
Cquote2.png

Using computers to dDraw 3D graphics generally includes several steps:

  1. Per-frame operations - like reading the mouse, doing flight dynamics
  2. Per-object operations - like coarse culling, level-of-detail
  3. Per-polygon or per-vertex operations - like rotate/translate/clip/illuminate
  4. Per-pixel operations - like shading, texturing, Z-buffering, alpha-blend

The amount of work required to perform each step increases one or two orders of magnitude at each step. A million pixels may need to be drawn every frame, so using a 3d video card for step (4) is vital.

  • On a machine without 3D hardware, the main CPU has to do everything.
  • On a PC with a basic 3D video card, the CPU does steps (1)(2)(3) and the video card does step (4).
  • On a PC with a newer 3D video card, the CPU does steps (1)(2) and the video card does steps (3)(4).
  • A card like the nVidia GeForce which can do steps (3)(4) provides great performance benefits on a slow-ish PC.

Newer 3D video cards for the PC, such as the nVidia GeForce or ATI use dedicated hardware to perform steps (3) and (4). Upgrading an older PC with a newer video card, compatible with OpenGL 2.0, will dramatically improve FlightGear performance. Even putting a cheaper basic 3D video card onto an older PC will improve performance, because the per-pixel operations are handled by the video card, so the frame rate speeds up.