ShaderTree Sample & Callable Programs Broken in 3.6 & 3.6.2

I recently installed Optix 3.6 & 3.6.2 the ShaderTree example seems to be broken in both releases. It appears to run in 3.5.1. The error returned is:

OptiX Error: Unknown Error (Details: Function "_rtContextLaunch2d" caught exception: Encountered a CUDA error: driver.cuMemcpyHtoD(dst + dstOffset, static_cast<const char*>(src) + srcOffset, bytes) returned (700): Unknown [6750287])

This occurred on two machines running Windows 7 64bit:
Quadro K3000M (driver 340.66)
Quadro K4000 (driver 340.66)

Also I get a similar error using callable programs in a program I’m writing:

OptiX Error: Unknown error (Details: Function "_rtContextLaunch2D" caught exception: Encountered a CUDA error: result returned (700): Unknown, [6619204])

Is this something caused by sutil?

After more testing I’ve noticed that all samples in the 32bit optix binary work except for Shade Tree. When trying the 64bit binary all samples work. I guess there a bug with the 32bit build. I switched my application to a 64bit build and it seems that callable programs are working again.

Actually it seems that callable programs are still broken. The code now runs however it doesn’t not behave in an expected manor. A simple callable program which passes in a float value and prints it doesn’t appear to work. What seems to happen is that the passed in value is either considered to be 0 or some other random value. So at this point I’m probably going to drop trying use 3.6/3.6.2. Callable programs just don’t seem to work properly.

I think you’re reporting the same problem with callable programs that voldemarz and I found independently in these posts:

Is it possible to store bindless callable program ID in a buffer, payload for later use?

Callable program buffer: Assertion failed

Ah yes, I saw those threads yesterday after I posted my reply. It’s good to see that it isn’t just me that is having the problem. Thanks for the reply!

Hmm with more debugging it seems that RT_EXCEPTION_ALL may be the cause of this error. If I completely disable error reporting or use RT_EXCEPTION_STACK_OVERFLOW it seems to work properly. I’ll have to do more testing to confirm.

I just tried this out, and I think you’re right.

Using 3.6.2, the problem seems to be specifically with RT_EXCEPTION_PROGRAM_ID_INVALID. My callable programs work when I add the following to my code:

rtContextSetExceptionEnabled( context, RT_EXCEPTION_ALL, 1 );
rtContextSetExceptionEnabled( context, RT_EXCEPTION_PROGRAM_ID_INVALID, 0 );

Good to see that it worked for you!