Difference between revisions of "Visualization: graphics cards and 3D"

From CCP4 wiki
Jump to navigationJump to search
m
Line 1: Line 1:
== graphics cards and drivers ==
+
== graphics cards and drivers (Linux) ==
 +
 
 +
For 3D applications like COOT and O, only recently (2007) cheap hardware has become fast enough to ''not'' require proprietary drivers. Proprietary drivers are not open-source and are usually not distributed with the [[Linux distros]]. Some distros make it easy to install them through their usual installation tools, for other distros you have to install and maintain them yourself.
 +
 
 +
Some graphics cards (NVidia: starting with GeForce x600) are fast enough for useful 3D work with the drivers (in case of NVidia, the nv driver) that are part of Xorg.
 +
 
 +
If the Xorg 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 ===
 +
 +
NVidia cards are most popular for visualization. The proprietary driver is stable, and even the cheapest cards are suitable for crystallographic work.
  
 
* [http://www.nvidia.com NVidia] - proprietary driver download for Linux at [http://www.nvidia.com/object/unix.html]
 
* [http://www.nvidia.com NVidia] - proprietary driver download for Linux at [http://www.nvidia.com/object/unix.html]
Line 24: Line 43:
 
  client glx vendor string: NVIDIA Corporation
 
  client glx vendor string: NVIDIA Corporation
 
</code>
 
</code>
 
If however you get
 
 
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
 
  
 
==== maintaining the NVidia driver ====
 
==== maintaining the NVidia driver ====

Revision as of 10:22, 20 March 2008

graphics cards and drivers (Linux)

For 3D applications like COOT and O, only recently (2007) cheap hardware has become fast enough to not require proprietary drivers. Proprietary drivers are not open-source and are usually not distributed with the Linux distros. Some distros make it easy to install them through their usual installation tools, for other distros you have to install and maintain them yourself.

Some graphics cards (NVidia: starting with GeForce x600) are fast enough for useful 3D work with the drivers (in case of NVidia, the nv driver) that are part of Xorg.

If the Xorg 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. The proprietary driver is stable, and even the cheapest cards are suitable for crystallographic work.

  • NVidia - proprietary driver download for Linux at [1]
  • "Latest cards" list at [2]
  • "Legacy cards" list at [3]
  • RedHat/Fedora/Debian/[K]Ubuntu installation information can be found at [4]. 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":

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

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
  echo "re-installing NVIDIA driver. This takes some time. Ignore any warnings."
  /root/NVIDIA.run --no-network -s -n
fi

if [ ! -e /lib/modules/`uname -r`/kernel/drivers/video/nvidia.ko ]; then
  echo "installing NVIDIA kernel module. This takes some time. Ignore any warnings."
  /root/NVIDIA.run --no-network -s -K -n
fi

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 .

ATI

ATI now belongs to AMD. Download the proprietary driver from http://ati.amd.com .

See also