Summary:
After setting the thread count to one, the call to rtpQueryExecute
segfaults.
How to duplicate:
This can be duplicated by editing two lines in the primeSimple application that ships with the SDK.
- Immediately before executing the query (L185), set the thread count to one:
std::cout << "Setting threads to 1" << std::endl; CHK_PRIME( rtpContextSetCpuThreads( context, 1 ) );
- Recompile, then run the application:
./primeSimple -c cpu -b host
- The application segfaults. Running under Valgrind yields the following:
Invalid read of size 8 at 0x71EE5AC: ??? (in /usr/local/NVIDIA-OptiX-SDK-4.0.2/lib64/liboptix_prime.so.4.0.2) by 0x71ED4DC: ??? (in /usr/local/NVIDIA-OptiX-SDK-4.0.2/lib64/liboptix_prime.so.4.0.2) by 0x71D01ED: ??? (in /usr/local/NVIDIA-OptiX-SDK-4.0.2/lib64/liboptix_prime.so.4.0.2) by 0x71E2987: ??? (in /usr/local/NVIDIA-OptiX-SDK-4.0.2/lib64/liboptix_prime.so.4.0.2) by 0x71E2142: ??? (in /usr/local/NVIDIA-OptiX-SDK-4.0.2/lib64/liboptix_prime.so.4.0.2) by 0x71C24E4: ??? (in /usr/local/NVIDIA-OptiX-SDK-4.0.2/lib64/liboptix_prime.so.4.0.2) by 0x71C81F9: rtpQueryExecute (in /usr/local/NVIDIA-OptiX-SDK-4.0.2/lib64/liboptix_prime.so.4.0.2) by 0x40988E: main (primeSimple.cpp:191) Address 0x8 is not stackd, mallocd or (recently) freed Process terminating with default action of signal 11 (SIGSEGV) Access not within mapped region at address 0x8 at 0x71EE5AC: ??? (in /usr/local/NVIDIA-OptiX-SDK-4.0.2/lib64/liboptix_prime.so.4.0.2) by 0x71ED4DC: ??? (in /usr/local/NVIDIA-OptiX-SDK-4.0.2/lib64/liboptix_prime.so.4.0.2) by 0x71D01ED: ??? (in /usr/local/NVIDIA-OptiX-SDK-4.0.2/lib64/liboptix_prime.so.4.0.2) by 0x71E2987: ??? (in /usr/local/NVIDIA-OptiX-SDK-4.0.2/lib64/liboptix_prime.so.4.0.2) by 0x71E2142: ??? (in /usr/local/NVIDIA-OptiX-SDK-4.0.2/lib64/liboptix_prime.so.4.0.2) by 0x71C24E4: ??? (in /usr/local/NVIDIA-OptiX-SDK-4.0.2/lib64/liboptix_prime.so.4.0.2) by 0x71C81F9: rtpQueryExecute (in /usr/local/NVIDIA-OptiX-SDK-4.0.2/lib64/liboptix_prime.so.4.0.2) by 0x40988E: main (primeSimple.cpp:191)
Environment
Question:
Is this a bug, or have I musunderstood the proper usage of rtpContextSetCpuThreads?