This turned up when I was comparing the OSPRay 2.x ANARI back-end vs. Ingo's OWL back-end. Ingo's implementation hard-terminates on any invalid/unrecognized APIs, parameter names, or data type combinations. I found that I had mistakes in my original OSPRay 2.x code that (of course) made it into my ANARI code also. Some examples where I would have expected errors/warnings but got none from OSPRay 2.x are shown below:
My OSPRay 2.x callback setup in VMD looks like this:
OSPDevice dev = ospGetCurrentDevice();
ospDeviceSetErrorFunc(dev, vmd_ospray2_error_callback);
ospDeviceSetStatusFunc(dev, vmd_ospray2_status_callback);
int loglevel = OSP_LOG_INFO;
loglevel = OSP_LOG_DEBUG;
ospDeviceSetParam(dev, "logLevel", OSP_INT, &loglevel);
ospDeviceCommit(dev);
I believe I've corrected all of these issues that were in my code, but I wanted to bring awareness since having OSPRay 2.x warn about these things will likely benefit others, both those using OSPRay APIs directly, and via ANARI pass-through.
This turned up when I was comparing the OSPRay 2.x ANARI back-end vs. Ingo's OWL back-end. Ingo's implementation hard-terminates on any invalid/unrecognized APIs, parameter names, or data type combinations. I found that I had mistakes in my original OSPRay 2.x code that (of course) made it into my ANARI code also. Some examples where I would have expected errors/warnings but got none from OSPRay 2.x are shown below:
My OSPRay 2.x callback setup in VMD looks like this:
I believe I've corrected all of these issues that were in my code, but I wanted to bring awareness since having OSPRay 2.x warn about these things will likely benefit others, both those using OSPRay APIs directly, and via ANARI pass-through.
Best, John Stone