VTK/OpenGL: Difference between revisions

From KitwarePublic
< VTK
Jump to navigationJump to search
Line 1: Line 1:
=ATI Open GL Driver on Linux=
=ATI Open GL Driver on Linux=


==ATI Driver on Debian GNU/Linux==


==ATI Driver on Debian GNU/Linux==
----
 
'''All the following information are DEPRECATED please consider using the official debian package you can find at:
'''
 
More info [http://packages.qa.debian.org/f/fglrx-driver.html here]
 
----


How to get OpenGL ATI driver working on a linux debian system.
How to get OpenGL ATI driver working on a linux debian system.

Revision as of 19:30, 19 January 2006

ATI Open GL Driver on Linux

ATI Driver on Debian GNU/Linux


All the following information are DEPRECATED please consider using the official debian package you can find at:

More info here


How to get OpenGL ATI driver working on a linux debian system.

This wiki page is based on: http://www.watchland.org/dmcgraw/ati-debian.html

  • Download the RPM from ATI (it should match your for XFree version)
Go to: http://ati.com/support/driver.html
  • Use 'alien' to change the rpm into a tarball (alien -t), then extract at file system root level:
 cd /
 sudo tar xvfz fglrx-4.3.0.tgz
  • Install the kernel headers for your kernel
apt-get install kernel-headers-`uname -r`
  • Install the kernel-source package for your kernel
apt-get install kernel-source-<ver>
  • Create a symlink for /usr/src/linux to the kernel-headers. Technically this isn't needed, but it makes it easier to keep things straight.
ln -s /usr/src/kernel-headers-`uname -r` /usr/src/linux
  • Build & Install the module
cd /lib/modules/fglrx/build_mod
sudo sh make.sh
cd ..
sudo sh make_install.sh
  • Optionally (but I recommend it to at least learn the options you can use) run fglrxconfig to generate a XF86Config-4 file
  • To build VTK you may still need the OpenGL header file:
 sudo apt-get install xlibmesa-gl-dev

Some more info depending on your kernel:

- For a 2.4.x kernel

 Edit a couple of locations in the ATI make.sh script. Really you just need to check/set 2 variables.
 - First search for linuxincludes. Make sure that is set to /usr/src/linux/include (if you made the symlink above).
 - Then search for drmincludes. Make sure that is set to /usr/src/kernel-source-<ver>drivers/char/drm

- For a 2.6.x kernel

 * Create a symlink for the modules build directory
  ln -s /usr/src/linux /lib/modules/`uname-r`/build
 * Change the kernel headers to reference the kernel source package's drm include
 * cd /usr/src
 * tar -jxvf kernel-source-<ver>.tar.bz2
 * cd linux/drivers/char
 * mv drm drm.original
 * ln -s /usr/src/kernel-source-<ver>/drivers/char/drm drm

ATI Driver on Debian GNU/Linux, the debian way

Another source for getting the ATI driver working on Debian is: [1] or [2] (seems more up to date)

This site provides binary .debs for everything but the kernel module. It provides a source .deb for the module.

The latest version of the ATI driver does not require full kernel sources to build the module. You just need a kernel header package. I used debs from the site cited above, installed the header package corresponding to the official binary kernel that I am running, and used ATI's "make.sh" script (comes with the kernel module source .deb) to build the fglrx.ko module. I installed fglrx.ko by hand.

I suggest that using these ready to go, but unoffical .debs is far easier than going the alien route.


ATI Driver on Fedora 2

Other (untested) How To:

  • Fedora 2:

http://www.redhat.com/archives/fedora-list/2004-May/msg06859.html

Debugging the ATI libGL

Some env var you should remember:

 LIBGL_ALWAYS_INDIRECT=1
 LIBGL_VERBOSE=1
 LIBGL_DEBUG=verbose

Related Information

  • Some links:

Sole documentation I could find for EnablePrivateBackZ

Support for ATI Radeon & FireGL graphics cards on Linux http://www.wlug.org.nz/RadeonNotes

Some FireGL driver: http://www.schneider-digital.de/html/download_ati.php

Installing ATI-Drivers on Debian Linux(nforce2 chipset) http://www.jimmy.co.at/ati.html

Another ATI-Radeon-Linux-Howto which is also available in german.

This ATI-Radeon-Linux-Howto also includes information about installing the drivers on other distributions.

ATI Linux driver packages for Debian Another HowTo for Debian, also includes Debian packages and reports of working setups.

A link to ATI web site where to find some documentation about the XFree86 file option generated from fglrxconfig

OpenGL On Linux

nVidia Open GL Driver on Linux

nVidia Driver on Debian GNU/Linux

How to get OpenGL nVidia driver working on a linux debian system.

This wiki page is based on:

http://home.comcast.net/~andrex/Debian-nVidia/index.html

First thing you need to do is allow unstable from your sources.list file otherwise even the assistant will fail to load the nvidia-kernel-source package

 # Be carefull only for nvidia-kernel-source
 deb http://ftp.us.debian.org/debian/ unstable main non-free contrib

Another extremely important note is the matching gcc version. Be carefull that on debian most of the binary are build with gcc 3.3 , do not use gcc 3.4 or gcc 2.95 (make sure that CC is not set to anything particular).


The installation process of the nvidia library seems to be broken and noone has been working on it since two years:

See Debian bug #208198

See also http://home.comcast.net/~andrex/Debian-nVidia/troubleshooting.html Section: Hardware acceleration, aka direct rendering, doesn't work.

IMPORTANT: Seems like you need to install: xlibmesa-gl-dev AND then nvidia-glx-dev !


nVidia Driver on Ubuntu

The Wiki page is fairly simple just linking to it

Since the debian way seems to be broken http://packages.ubuntu.com/hoary/misc/java-package, here is how to install Java on ubuntu.

Mesa, Off Screen Mesa, Mangled Mesa

Various setups:

  • Pure OpenGL
  • Pure Mesa (no hardware and it has off screen natively)
  • OpenGL + Mangled Mesa (hardware on-screen and software off-screen)

Pure Mesa

  • Enable VTK_OPENGL_HAS_OSMESA
  • Set the following values to apropriate locations:
OSMESA_INCLUDE_DIR /.../include
OSMESA_LIBRARY     /.../lib/libOSMesa.a

OpenGL + Off screen

To do hardware rendering (on screen) and software rendering (off screen) within the same application, you will have to use mangled mesa. Mangled mesa is build using all symbols mangled.

You may want to fist look at article How I Mangled Mesa.

Build Mangled Mesa

The following refers to Mesa 6.2.*

Edit apropriate system configuration file. On Linux, for example, if you are building static, edit the file:

/path/to/source/config/linux-static

Edit the CFLAGS line and add the following at the end of CFLAGS and CXXFLAGS:

-DUSE_MGL_NAMESPACE

Then edit file:

/path/to/source/config/default

And rename the standard names for the libraries, for example:

# Library names (base name)
GL_LIB = MesaGL
GLU_LIB = MesaGLU
GLUT_LIB = MesaGlut
GLW_LIB = MesaGLw
OSMESA_LIB = MesaOSMesa

Setup VTK

  • Disable VTK_OPENGL_HAS_OSMESA
  • Make sure OpenGL settings are set to the hardware OpenGL library:
OPENGL_INCLUDE_DIR               /usr/include                                                                                                                           
OPENGL_gl_LIBRARY                /usr/lib/libGL.so                                                                                                                      
OPENGL_glu_LIBRARY               /usr/lib/libGLU.so                                                                                                                     
  • Enable VTK_USE_MANGLED_MESA
  • Set mangled mesa options:
MANGLED_MESA_INCLUDE_DIR        /.../include
MANGLED_MESA_LIBRARY            /.../lib/libMesaGL.a
MANGLED_OSMESA_INCLUDE_DIR      /.../include
MANGLED_OSMESA_LIBRARY          /.../lib/libMesaOSMesa.a

Use of Mangled Mesa

  • For all mangled mesa calls, the vtk*Mesa* classes need to be used. For example, instead of vtkRenderWindow, vtkXMesaRenderWindow must be used. The full list of classes is:
vtkXMesaRenderWindow
vtkMesaActor
vtkMesaCamera
vtkMesaImageActor
vtkMesaLight
vtkMesaProperty
vtkMesaPolyDataMapper
vtkMesaRenderer
vtkMesaTexture
vtkMesaVolumeTextureMapper2D
vtkMesaVolumeRayCastMapper
vtkMesaRayCastImageDisplayHelper
vtkMesaFreeTypeTextMapper
vtkMesaImageMapper
vtkMesaPolyDataMapper2D
  • To make Mangled mesa to be default, do the following at beginning of the program:
vtkGraphicsFactory::SetUseMesaClasses(1);
vtkImagingFactory::SetUseMesaClasses(1);



VTK: [Welcome | Site Map]