55#include < rmagine/map/optix/OptixScene.hpp>
66#include < rmagine/simulation/optix/common.h>
77
8+ #include < optix.h>
9+
810
911namespace rmagine
1012{
@@ -114,22 +116,24 @@ ProgramModulePtr make_program_module_sim_gen(
114116#endif
115117
116118
117- #if OPTIX_VERSION >= 70400
118- ret->compile_options ->numPayloadTypes = 1 ;
119- RM_CUDA_CHECK (cudaMallocHost (&ret->compile_options ->payloadTypes , sizeof (OptixPayloadType) ) );
119+ // TODO (amock): After adding optix.h, OPTIX_VERSION was showing up and triggering this. However, this was not compiling
120+ // ... my fix was to comment this. All tests are running fine. I don't know why
121+ // #if OPTIX_VERSION >= 70400
122+ // ret->compile_options->numPayloadTypes = 1;
123+ // RM_CUDA_CHECK(cudaMallocHost(&ret->compile_options->payloadTypes, sizeof(OptixPayloadType) ) );
120124
121- ret->compile_options ->payloadTypes [0 ].numPayloadValues = 8 ;
122- ret->compile_options ->payloadTypes [0 ].payloadSemantics = (const unsigned int [8 ]) {
123- OPTIX_PAYLOAD_SEMANTICS_TRACE_CALLER_WRITE | OPTIX_PAYLOAD_SEMANTICS_CH_READ | OPTIX_PAYLOAD_SEMANTICS_MS_READ,
124- OPTIX_PAYLOAD_SEMANTICS_TRACE_CALLER_WRITE | OPTIX_PAYLOAD_SEMANTICS_CH_READ | OPTIX_PAYLOAD_SEMANTICS_MS_READ,
125- OPTIX_PAYLOAD_SEMANTICS_TRACE_CALLER_WRITE | OPTIX_PAYLOAD_SEMANTICS_CH_READ | OPTIX_PAYLOAD_SEMANTICS_MS_READ,
126- OPTIX_PAYLOAD_SEMANTICS_TRACE_CALLER_WRITE | OPTIX_PAYLOAD_SEMANTICS_CH_READ | OPTIX_PAYLOAD_SEMANTICS_MS_READ,
127- OPTIX_PAYLOAD_SEMANTICS_TRACE_CALLER_WRITE | OPTIX_PAYLOAD_SEMANTICS_CH_READ | OPTIX_PAYLOAD_SEMANTICS_MS_READ,
128- OPTIX_PAYLOAD_SEMANTICS_TRACE_CALLER_WRITE | OPTIX_PAYLOAD_SEMANTICS_CH_READ | OPTIX_PAYLOAD_SEMANTICS_MS_READ,
129- OPTIX_PAYLOAD_SEMANTICS_TRACE_CALLER_WRITE | OPTIX_PAYLOAD_SEMANTICS_CH_READ | OPTIX_PAYLOAD_SEMANTICS_MS_READ,
130- OPTIX_PAYLOAD_SEMANTICS_TRACE_CALLER_WRITE | OPTIX_PAYLOAD_SEMANTICS_CH_READ | OPTIX_PAYLOAD_SEMANTICS_MS_READ
131- };
132- #endif
125+ // ret->compile_options->payloadTypes[0].numPayloadValues = 8;
126+ // ret->compile_options->payloadTypes[0].payloadSemantics = (const unsigned int[8]) {
127+ // OPTIX_PAYLOAD_SEMANTICS_TRACE_CALLER_WRITE | OPTIX_PAYLOAD_SEMANTICS_CH_READ | OPTIX_PAYLOAD_SEMANTICS_MS_READ,
128+ // OPTIX_PAYLOAD_SEMANTICS_TRACE_CALLER_WRITE | OPTIX_PAYLOAD_SEMANTICS_CH_READ | OPTIX_PAYLOAD_SEMANTICS_MS_READ,
129+ // OPTIX_PAYLOAD_SEMANTICS_TRACE_CALLER_WRITE | OPTIX_PAYLOAD_SEMANTICS_CH_READ | OPTIX_PAYLOAD_SEMANTICS_MS_READ,
130+ // OPTIX_PAYLOAD_SEMANTICS_TRACE_CALLER_WRITE | OPTIX_PAYLOAD_SEMANTICS_CH_READ | OPTIX_PAYLOAD_SEMANTICS_MS_READ,
131+ // OPTIX_PAYLOAD_SEMANTICS_TRACE_CALLER_WRITE | OPTIX_PAYLOAD_SEMANTICS_CH_READ | OPTIX_PAYLOAD_SEMANTICS_MS_READ,
132+ // OPTIX_PAYLOAD_SEMANTICS_TRACE_CALLER_WRITE | OPTIX_PAYLOAD_SEMANTICS_CH_READ | OPTIX_PAYLOAD_SEMANTICS_MS_READ,
133+ // OPTIX_PAYLOAD_SEMANTICS_TRACE_CALLER_WRITE | OPTIX_PAYLOAD_SEMANTICS_CH_READ | OPTIX_PAYLOAD_SEMANTICS_MS_READ,
134+ // OPTIX_PAYLOAD_SEMANTICS_TRACE_CALLER_WRITE | OPTIX_PAYLOAD_SEMANTICS_CH_READ | OPTIX_PAYLOAD_SEMANTICS_MS_READ
135+ // };
136+ // #endif
133137
134138 ProgramModulePtr module = std::make_shared<ProgramModule>();
135139
@@ -170,8 +174,6 @@ ProgramModulePtr make_program_module_sim_gen(
170174 OptixPipelineCompileOptions pipeline_compile_options = {};
171175 {
172176 pipeline_compile_options.usesMotionBlur = false ;
173-
174-
175177 pipeline_compile_options.traversableGraphFlags = traversable_graph_flags;
176178
177179 // max payload values: 32
@@ -183,7 +185,10 @@ ProgramModulePtr make_program_module_sim_gen(
183185 #endif
184186 pipeline_compile_options.numAttributeValues = 2 ;
185187 #ifndef NDEBUG // Enables debug exceptions during optix launches. This may incur significant performance cost and should only be done during development.
186- pipeline_compile_options.exceptionFlags = OPTIX_EXCEPTION_FLAG_DEBUG | OPTIX_EXCEPTION_FLAG_TRACE_DEPTH | OPTIX_EXCEPTION_FLAG_STACK_OVERFLOW;
188+ pipeline_compile_options.exceptionFlags = OPTIX_EXCEPTION_FLAG_USER | OPTIX_EXCEPTION_FLAG_TRACE_DEPTH | OPTIX_EXCEPTION_FLAG_STACK_OVERFLOW;
189+ #if OPTIX_VERSION < 80000
190+ pipeline_compile_options.exceptionFlags |= OPTIX_EXCEPTION_FLAG_DEBUG;
191+ #endif
187192 #else
188193 pipeline_compile_options.exceptionFlags = OPTIX_EXCEPTION_FLAG_NONE;
189194 #endif
@@ -247,22 +252,24 @@ ProgramModulePtr make_program_module_sim_hit_miss(
247252 ret->compile_options ->boundValues = &bounds[0 ];
248253 ret->compile_options ->numBoundValues = bounds.size ();
249254
250- #if OPTIX_VERSION >= 70400
251- ret->compile_options ->numPayloadTypes = 1 ;
252- RM_CUDA_CHECK (cudaMallocHost (&ret->compile_options ->payloadTypes , sizeof (OptixPayloadType) ) );
255+ // TODO (amock): After adding optix.h, OPTIX_VERSION was showing up and triggering this. However, this was not compiling
256+ // ... my fix was to comment this. All tests are running fine. I don't know why
257+ // #if OPTIX_VERSION >= 70400
258+ // ret->compile_options->numPayloadTypes = 1;
259+ // RM_CUDA_CHECK(cudaMallocHost(&ret->compile_options->payloadTypes, sizeof(OptixPayloadType) ) );
253260
254- ret->compile_options ->payloadTypes [0 ]->numPayloadValues = 8 ;
255- ret->compile_options ->payloadTypes [0 ]->payloadSemantics = (const unsigned int [8 ]) {
256- OPTIX_PAYLOAD_SEMANTICS_TRACE_CALLER_WRITE | OPTIX_PAYLOAD_SEMANTICS_CH_READ | OPTIX_PAYLOAD_SEMANTICS_MS_READ,
257- OPTIX_PAYLOAD_SEMANTICS_TRACE_CALLER_WRITE | OPTIX_PAYLOAD_SEMANTICS_CH_READ | OPTIX_PAYLOAD_SEMANTICS_MS_READ,
258- OPTIX_PAYLOAD_SEMANTICS_TRACE_CALLER_WRITE | OPTIX_PAYLOAD_SEMANTICS_CH_READ | OPTIX_PAYLOAD_SEMANTICS_MS_READ,
259- OPTIX_PAYLOAD_SEMANTICS_TRACE_CALLER_WRITE | OPTIX_PAYLOAD_SEMANTICS_CH_READ | OPTIX_PAYLOAD_SEMANTICS_MS_READ,
260- OPTIX_PAYLOAD_SEMANTICS_TRACE_CALLER_WRITE | OPTIX_PAYLOAD_SEMANTICS_CH_READ | OPTIX_PAYLOAD_SEMANTICS_MS_READ,
261- OPTIX_PAYLOAD_SEMANTICS_TRACE_CALLER_WRITE | OPTIX_PAYLOAD_SEMANTICS_CH_READ | OPTIX_PAYLOAD_SEMANTICS_MS_READ,
262- OPTIX_PAYLOAD_SEMANTICS_TRACE_CALLER_WRITE | OPTIX_PAYLOAD_SEMANTICS_CH_READ | OPTIX_PAYLOAD_SEMANTICS_MS_READ,
263- OPTIX_PAYLOAD_SEMANTICS_TRACE_CALLER_WRITE | OPTIX_PAYLOAD_SEMANTICS_CH_READ | OPTIX_PAYLOAD_SEMANTICS_MS_READ
264- };
265- #endif
261+ // ret->compile_options->payloadTypes[0]->numPayloadValues = 8;
262+ // ret->compile_options->payloadTypes[0]->payloadSemantics = (const unsigned int[8]) {
263+ // OPTIX_PAYLOAD_SEMANTICS_TRACE_CALLER_WRITE | OPTIX_PAYLOAD_SEMANTICS_CH_READ | OPTIX_PAYLOAD_SEMANTICS_MS_READ,
264+ // OPTIX_PAYLOAD_SEMANTICS_TRACE_CALLER_WRITE | OPTIX_PAYLOAD_SEMANTICS_CH_READ | OPTIX_PAYLOAD_SEMANTICS_MS_READ,
265+ // OPTIX_PAYLOAD_SEMANTICS_TRACE_CALLER_WRITE | OPTIX_PAYLOAD_SEMANTICS_CH_READ | OPTIX_PAYLOAD_SEMANTICS_MS_READ,
266+ // OPTIX_PAYLOAD_SEMANTICS_TRACE_CALLER_WRITE | OPTIX_PAYLOAD_SEMANTICS_CH_READ | OPTIX_PAYLOAD_SEMANTICS_MS_READ,
267+ // OPTIX_PAYLOAD_SEMANTICS_TRACE_CALLER_WRITE | OPTIX_PAYLOAD_SEMANTICS_CH_READ | OPTIX_PAYLOAD_SEMANTICS_MS_READ,
268+ // OPTIX_PAYLOAD_SEMANTICS_TRACE_CALLER_WRITE | OPTIX_PAYLOAD_SEMANTICS_CH_READ | OPTIX_PAYLOAD_SEMANTICS_MS_READ,
269+ // OPTIX_PAYLOAD_SEMANTICS_TRACE_CALLER_WRITE | OPTIX_PAYLOAD_SEMANTICS_CH_READ | OPTIX_PAYLOAD_SEMANTICS_MS_READ,
270+ // OPTIX_PAYLOAD_SEMANTICS_TRACE_CALLER_WRITE | OPTIX_PAYLOAD_SEMANTICS_CH_READ | OPTIX_PAYLOAD_SEMANTICS_MS_READ
271+ // };
272+ // #endif
266273
267274 ret->ptx = std::string (kernel);
268275
@@ -291,7 +298,12 @@ ProgramModulePtr make_program_module_sim_hit_miss(
291298 // pipeline_compile_options.numPayloadValues = 8;
292299 pipeline_compile_options.numAttributeValues = 2 ;
293300 #ifndef NDEBUG // Enables debug exceptions during optix launches. This may incur significant performance cost and should only be done during development.
294- pipeline_compile_options.exceptionFlags = OPTIX_EXCEPTION_FLAG_DEBUG | OPTIX_EXCEPTION_FLAG_TRACE_DEPTH | OPTIX_EXCEPTION_FLAG_STACK_OVERFLOW;
301+ pipeline_compile_options.exceptionFlags = OPTIX_EXCEPTION_FLAG_USER | OPTIX_EXCEPTION_FLAG_TRACE_DEPTH | OPTIX_EXCEPTION_FLAG_STACK_OVERFLOW;
302+
303+ // #pragma message "The value of ABC is: " XSTR(OPTIX_VERSION)
304+ #if OPTIX_VERSION < 80000
305+ pipeline_compile_options.exceptionFlags |= OPTIX_EXCEPTION_FLAG_DEBUG;
306+ #endif
295307 #else
296308 pipeline_compile_options.exceptionFlags = OPTIX_EXCEPTION_FLAG_NONE;
297309 #endif
0 commit comments