VTKEdge:FAQ
Requirement
Compile time
- VTKEdge svn compiles against VTK CVS.
- Some classes use CUDA to perform parallel computation: http://www.nvidia.com/object/cuda_get.html . As of April 17 2009, the only classes using CUDA are vtkKWEImageFFT and vtkKWEImageRFFT. Notably,
the vtkKWEGPUVolumeRayCastMapper does not require CUDA.
- In order to use the vtkKWEGPUInfo class under Windows, you need to install the DirectX SDK: http://www.microsoft.com/downloads/details.aspx?FamilyID=ea4894b5-e98d-44f6-842d-e32147237638&DisplayLang=en
- In order to use the vtkKWEGPUInfo class under Linux with nVidia cards, switch the cmake variable VTKEdge_USE_NVCONTROL to ON and install the NVCtrl library. It gives access to the NV-CONTROL X extension.
- If it is already installed on your system, you can find the library libXNVCtrl.a in /usr/lib/ and the header files NVCtrlLib.h and NVCtrl.h in /usr/include/NVCtrl/. On Ubuntu, those files are provided by the package "nvidia-settings".
- You can also get them from the source package of nvidia-settings from ftp://download.nvidia.com/XFree86/nvidia-settings/. With the source package, all the relevant files are in src/libXNVCtrl/. Make sure to download a version of nvidia-settings equal or greater to 177.82 to avoid any license issue. (on August 25 2008, nVidia acknowledges that there is a mistake in the license of the NVCtrl library prior to 177.82, it should be MIT-X11 / BSD instead of GPL, only the nvidia-settings application is covered by the GPL, not the NVCtrl library: http://www.nvnews.net/vbulletin/showpost.php?p=1756087&postcount=8 )
- the GUI based paintbrush tool demos require KWWidgets.
Run time
- The volume mapper works with nVidia cards from GeForce 6 series (or Quadro equivalent) and above
- The LIC algorithms work with nVidia cards from GeForce 8 series (or Quadro equivalent) and above
Issues
vtkKWEGPUVolumeRayCastMapper
fatal error C9999: Bad scope in ConvertLocalReferences()
This is an nVidia bug. It has been fixed by nVidia. Just update your driver.
- Example of driver version having this bug: nVidia Quadro FX 3600M, Driver, Windows Vista 64-bit, Multi Language, Precision M6300, v.167.55, A00. Release Date: 2/26/2008
- Example of driver version with the fix: nVidia Quadro FX 3600M, Driver, Windows Vista 64-bit, Multi Language, Precision M6300, v.175.75 ISV, A01. Release Date: 6/10/2008
- References: http://developer.nvidia.com/forums/index.php?showtopic=596 http://www.stevestreeting.com/2007/12/27/nvidia-16921-driver-bug-in-glsl/
TestKWEGPUArrayCalculator
time out on Vista
Depending on how fast/slow is the graphics card, the computation on the GPU can take more than 2 seconds. On Vista, after a 2 seconds timeout, the Windows Vista's Timeout Detection and Recovery (TDR) kills all the graphics contexts, resets the graphics chip and recovers the graphics driver, in order to keep the operating system responsive.
ref: http://www.opengl.org/pipeline/article/vol003_7/
This reset actually freezes the test. And it really times out this time...
Questions
Does vtkKWEGPUVolumeRayCastMapper requires CUDA?
No. See compile time section for classes that require CUDA. Remember that CUDA requires an nVidia card from the GeForce 8 series and above. See runtime section for classes requiring a GeForce 8 series and above,
Does VTKEdge requires KWWidgets?
No. You need them only if you'd like to build the GUI based paintbrush tool demos. See compile time section.