Difference in emu vs. device Running Eric Rollins raytracer

I am running Eric Rollins’s basic raytracer, but cannot get it to run on my 8600GT. The code is available: http://eric_rollins.home.mindspring.com/ray/cuda.html. I just modified it to give 2 parameters to CUT_DEVICE_INIT and included SDL library in the linker options.

The emulation mode works fine and displays some reflective balls. However, the device mode does not work, and there is no error in the kernel call either. Does anyone have any experience with running this raytracer on 8600GT?

I am using an unsupported platform (Ubuntu 8.04), but all other samples from the SDK run just fine on my system, and produce the correct, intended results.

To reproduce what I have done:

  1. Download the raytracer from here: http://eric_rollins.home.mindspring.com/ray/ray.tar
  2. Untar this and copy the cuda folder to the ~/SDK/projects/ folder.
  3. Edit ray.cu line 161 to give 2 dummy arguments to CUT_DEVICE_INIT.
  4. Install the SDL library and add it to the list of libraries by adding -lSDL to the linker options in your makefile.

Can someone confirm that indeed, the device mode does not work, or maybe there is something wrong with my system.

EDIT: I have one more question. Currently the way I give additional library inputs to my program are by editing common.mk itself. Is there a variable I can set in my project’s makefile so that additional libraries will be added to the $LIB variable in common.mk?


Can you attach your version of ray.cu that you were able to build successfully ?

Attached is the version. Note that this traces the scene perfectly in emu mode, but in device mode it produces a black screen.

I tried to debug through the code. Seems like some of the numbers are NaN (as returned by isnan()) on device mode. Strange. I am using a 8600 if that matters.
ray.tar.gz (6.31 KB)