I did not find any posts in this forum here about the new “Tasks” feature of OptiX 7.4 and I wonder whether the thread pool itself is so called “thread-safe” among OptiX modules. Is it ?
When I first thought about this new feature, I assumed that multiple OptiX modules can be compiled simultanouesly, but when I looked into the example code, it seems, that the example only shows one OptiX module compilation done by tasks.
In the “optixCompileWithTasks” example the function “compileModuleWithTasks()”
shows the case where several PTX files of one OptiX module can be processed
serially in the loop using g_pool.executeTaskAndWait(); Ok, I understand.
But when I would call g_pool.executeTask() instead, would it be safe to run
all PTX files of all OptiX modules with that one pool execution?
(of course using different “OptixModule” as param for “optixModuleCreateFromPTXWithTasks()” for several PTX files)
The “ThreadPool” struct has no method to wait for all the tasks, when executed asynchronous. Is this simply based on the fact, that its only an example code?
Is it correct to obtain progress information about the already completed count of
finished tasks, by “optixModuleGetCompilationState()” ?
Is it safe to use this function with multiple OptiX modules at the same time?