Visualization: graphics cards and 3D: Difference between revisions

Jump to navigation Jump to search
 
(18 intermediate revisions by 5 users not shown)
Line 1: Line 1:
== graphics cards and drivers ==
== graphics cards and drivers (Linux) ==


* [http://www.nvidia.com NVidia] (proprietary driver download for Linux at [http://www.nvidia.com/object/unix.html]; "Latest cards" list at [http://www.nvidia.com/object/IO_18897.html], "Legacy cards" list at [http://www.nvidia.com/object/IO_32667.html]). RedHat/Fedora/Debian/[K]Ubuntu installation information can be found at [http://www.nvnews.net/vbulletin/showthread.php?t=72490]. In particular, for RedHat/Fedora one needs to install the kernel-devel RPM package.
For 3D applications like COOT and O, only recently (2007) cheap hardware has become fast enough to ''not'' require proprietary drivers for decent performance. Proprietary drivers (for NVidia, ATI and Intel chips) are usually not open-source and are thus not distributed with the [[Operating_systems_and_Linux_distributions#Linux_Distributions|Linux distros]].  
Some distros make it easy to install them through their installation tools; for other distros you have to install and maintain them yourself.


The proprietary driver works well but it needs a bit of care. On RedHat systems that are regularly booted, the following lines in /etc/rc.local result in the necessary parts of the driver being re-installed automatically after booting:
If the open-source Xorg driver (i.e. no proprietary driver) is installed, the output of "glxinfo|head" is something like:
name of display: :0.0
display: :0  screen: 0
direct rendering: No
server glx vendor string: SGI
server glx version string: 1.2
server glx extensions:
    GLX_ARB_multisample, GLX_EXT_visual_info, GLX_EXT_visual_rating,
    GLX_EXT_import_context, GLX_EXT_texture_from_pixmap, GLX_OML_swap_method,
    GLX_SGI_make_current_read, GLX_SGIS_multisample, GLX_SGIX_hyperpipe,
    GLX_SGIX_swap_barrier, GLX_SGIX_fbconfig, GLX_MESA_copy_sub_buffer
client glx vendor string: SGI
 
== NVidia ==
 
NVidia cards are most popular for visualization in protein crystallography. The proprietary driver (called "nvidia" driver in xorg.conf) is stable, and even the cheapest cards are suitable for crystallographic work when it is used.  
Some mid-range graphics cards (starting with GeForce x600) are fast enough for useful 3D work even with the drivers that are part of Xorg (called "nv" driver in xorg.conf).
 
* [http://www.nvidia.com NVidia] - proprietary driver download for Linux at [http://www.nvidia.com/object/unix.html]
* "Latest cards" list at [http://www.nvidia.com/object/IO_18897.html]
* "Legacy cards" list at [http://www.nvidia.com/object/IO_32667.html]
* RedHat/Fedora/Debian/[K]Ubuntu installation information can be found at [http://www.nvnews.net/vbulletin/showthread.php?t=72490]. In particular, for RedHat/Fedora one needs to install the kernel-devel RPM package. Other than this, the information in that posting seems a bit overkill - the NVidia driver usually works very well without any SElinux jiggling.
 
=== checking the integrity of the NVidia driver ===
 
If everything is ok with the driver, you get the following output from "glxinfo|head":


<code>  
<code>  
name of display: :0.0
display: :0  screen: 0
direct rendering: Yes
server glx vendor string: NVIDIA Corporation
server glx version string: 1.4
server glx extensions:
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_SGIX_fbconfig,
    GLX_SGIX_pbuffer, GLX_SGI_video_sync, GLX_SGI_swap_control,
    GLX_EXT_texture_from_pixmap, GLX_ARB_multisample, GLX_NV_float_buffer
client glx vendor string: NVIDIA Corporation
</code>
=== maintaining the NVidia driver ===
The proprietary driver works well but it needs a bit of care. More to the point: parts of it need to be re-installed after kernel updates and updates of xorg-x11-* (both of which happen regularly).
On RedHat systems that are regularly booted, the following lines in /etc/rc.local result in the necessary parts of the driver being re-installed automagically after booting:
  if [ ! -h /usr/lib/xorg/modules/extensions/libglx.so ]; then
  if [ ! -h /usr/lib/xorg/modules/extensions/libglx.so ]; then
#  this should be /usr/lib64/xorg/modules/extensions/libglx.so on a 64bit machine !
   echo "re-installing NVIDIA driver. This takes some time. Ignore any warnings."
   echo "re-installing NVIDIA driver. This takes some time. Ignore any warnings."
   /root/NVIDIA.run --no-network -s -n
   /root/NVIDIA.run --no-network -s -n
Line 15: Line 59:
   /root/NVIDIA.run --no-network -s -K -n
   /root/NVIDIA.run --no-network -s -K -n
  fi
  fi
</code>


This requires that you first "chmod +x" the driver package (e.g. NVIDIA-Linux-x86-169.04-pkg1.run) downloaded from the NVidia site, and then establish a symbolic link from it, to /root/NVIDIA.run .
This requires that you first "chmod +x" the driver package (e.g. NVIDIA-Linux-x86-169.04-pkg1.run) downloaded from the NVidia site, and then establish a symbolic link from it, to /root/NVIDIA.run .
If everything is ok with the driver you get the following output from "glxinfo|head":


<code>
Newer distributions using SELinux may encounter problems with restrictions that prevent init scripts from executing certain commands related to kernel modules. Creating an SELinux rule exception is the correct solution, but may be difficult. A work-around is to insert "/usr/bin/setenforce 0" before running the NVIDIA installer, and "/usr/bin/setenforce 1" afterwards.
name of display: :0.0
 
display: :0  screen: 0
The RPM way of maintaining the NVidia driver nowadays can be found at http://elrepo.org/tiki/kmod-nvidia . This is preferable to the DKMS way that RPMforge provides.
direct rendering: Yes
 
  server glx vendor string: NVIDIA Corporation
=== Hybrid graphics ===
  server glx version string: 1.4
 
  server glx extensions:
See [https://bbs.archlinux.org/viewtopic.php?pid=881549] and [http://linux-hybrid-graphics.blogspot.com/]
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_SGIX_fbconfig,
 
    GLX_SGIX_pbuffer, GLX_SGI_video_sync, GLX_SGI_swap_control,
To test the nvidia driverblacklist the nouveau and intel graphic modules, disable kernel mode-setting, and boot to runlevel 3 - all via the following kernel command line args:
    GLX_EXT_texture_from_pixmap, GLX_ARB_multisample, GLX_NV_float_buffer
  nouveau.disable=1 intel.disable=1 nomodeset 3  <--append this to grub kernel line
client glx vendor string: NVIDIA Corporation
Then run nvidia's xorg creation tool (nvidia-xconfig). Give X a try and see if it works.
</code>
 
If that wont work, black list nouveau and nvidia, and try the intel module (delete the xorg.conf made by nvidia-xconfig):
nouveau.disable=1 nomodeset 3  <-- append this to grub kernel line
 
The elrepo.org kmod-nvidia package already disables nouveau mode-setting (nouveau.modeset=0), blacklists the nouveau driver and runs nvidia-xconfig to create a suitable xorg.conf file.
 
== ATI ==
 
ATI now belongs to AMD. Download the proprietary driver from http://ati.amd.com .
Recently the (open source) [http://www.free3d.org/ radeon driver] shipped with [http://www.x.org Xorg] has improved DRI capabilities that are often sufficient for crystallographic purposes, and the need to hastle with the installation of the propriety driver has become void.


----
If you are experiencing problems with Coot and ATI graphic cards with rv5xx chipset on FC10, you should switch from the 'radeon' driver to 'radeonhd', for example in the following way (as root):


Sometimes it is handy to configure two Desktops: one on a CRT monitor that can do stereo-graphics, and one on an LCD monitor for the more regular work, eg your refinement jobs with CCP4. For Nvidia cards you need to modify the xorg.conf file to have a section more or less like that:
* yum install system-config-display
* yum install radeonhd
* system-config-display


<code>
Now you can conveniently change the graphic card driver via a graphical interface, then restart X windows
Section "Monitor"
    Identifier    "Monitor0"
    VendorName    "Iiyama"
    ModelName      "Vision Master Pro 512"
    DisplaySize    450      330
    HorizSync      31.5 - 120.0
    VertRefresh    50.0 - 150.0
    Option        "dpms"
EndSection
Section "Monitor"
    Identifier    "Monitor1"
    VendorName    "Philips"
    ModelName      "150B"
EndSection
Section "Device"
    Identifier    "Videocard0"
    Driver        "nvidia"
    VendorName    "Videocard vendor"
    BoardName      "NVIDIA Quadro FX (generic)"
    BusId          "PCI:1:0:0"
    Screen        0
EndSection
Section "Device"
    Identifier    "Videocard1"
    Driver        "nvidia"
    VendorName    "Videocard vendor"
    BoardName      "NVIDIA Quadro FX (generic)"
    Option        "Stereo" "3"
    BusId          "PCI:1:0:0"
    Screen        1
EndSection
Section "Screen"
    Identifier    "Screen0"
    Device        "Videocard0"
    Monitor        "Monitor0"
    DefaultDepth    24
    SubSection    "Display"
        Viewport    0 0
        Depth      24
        Modes      "1024x768" "800x600"
    EndSubSection
EndSection
Section "Screen"
    Identifier    "Screen1"
    Device        "Videocard1"
    Monitor        "Monitor1"
    DefaultDepth    24
    SubSection    "Display"
        Viewport    0 0
        Depth      24
        Modes      "1600x1280" "1280x1024" "1024x768" "800x600"


</code>
Unfortunately, you have to disable 3D desktop effects, otherwise you get a blank screen and have to undo the settings via terminal. Furthermore, do not try to use the proprietary ATI 'fglrx' drivers, since they made things even worse, at least in my personal experience (with an ATI Radeon X1650).


Note that one can think this is rather silly to define two card, two monitors, two cards, and two screens.
== Intel ==
However, that the only way I know that one monitor can be streo-enabled and the other one not.


The X3100 graphics accelerator is known to be quite fast. FIXME: does it require special drivers?


* [[ATI]] (now belonging to AMD) (proprietary driver download at http://ati.amd.com)
== Table of Cards and drivers ==
{| border="1" cellpadding="0"
|-
|width="70pt"|Brand
|width="100pt"|Model number
|width="100pt"|Distro and/or OS
|width="70pt"|Working ?
|width="100pt"|Driver
|width="200pt"|Remarks
|-
|ATI || Radeon X1300 || Ubuntu 8.10 - Intrepid Ibex || Yes||fglrx|| automagically installed from Ubuntu
|-
|ATI || Radeon 9200 || Ubuntu 8.10 - Intrepid Ibex || Yes||open source radeon|| automagically installed from Ubuntu
|-
|Nvidia||Quadro FX 1400||SuSe 10.2||Yes|| Nvidia||installed from SuSE repos
|}


== 3D ==
== See also ==
* [[3D visualization]]
* [[Stereo]]
1,328

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.

Navigation menu