rtContextCompile: assertion failed,

I have a Group (as the top-most node), consisting of two children: one Transform and a GeometryGroup.

The Transform is loaded with a mesh geometry, and the GeometryGroup has a geometric primitive (parallelogram).

When I try to compile the context, I get the above mentioned error.

It is required that the mesh geometry and the geometric primitive are under separate nodes, as I would like to move the mesh geometry dynamically whereas the parallelogram is static.

Any help/suggestion is appreciated. Thanks.

BTW, I am using VS2013 with OptiX 3.8.0 and CUDA v7.0 under 64 bit Windows 7.

What was the error again?
Please keep the subject line short, that didn’t come out correctly.
Put error information always into the body of the post please.

For animated transforms and instancing with transforms, your scene graph should look like the graphs inside the OptiX Programming Manual.

This should be your graph for separate Geometry primitives of which you only want to transform the mesh:

Group (+ Acceleration)
-> Transform -> GeometryGroup (+ Acceleration) -> GeometryInstance (+ Material) -> Geometry (mesh).
-> GeometryGroup (+ Acceleration) -> GeometryInstance (+ Material) -> Geometry (parallelogram).

Thanks, I overlooked that it was cut off.

Error message:

Unknown error<Details: Function “_rtContextCompile” caught exception: Assertion failed: rtContextCompile: assertion failed, "Illegal operation performed on internal variable ‘rtCurrentRay’. Are you taking the address of a semantic variable?

The structure is:
->Transform->GeometryGroup…where the GeometyGroup is created with the OptiXMesh::loadBegin_Geometry functionality loading a .obj file
->GeometryGroup->GeometryInstance->Geometry…defining a primitiv parallelogram similar to the OptiX QuickStart sample implementaition

Well, hard to say what went wrong there. Have never seen this error myself before. Maybe using CUDA shaders from different examples clashed somewhere. The SDK examples are written to run individually, not to be able to copy-and-paste code together.

I would start pruning things down until it works, for example, only keeping the static parallelogram, then add the other branch with the transform, with a different parallelogram.
Then the other way round, starting with the mesh and getting that to work alone.

If it’s clear that all sub-trees work individually but fail when used together, check all CUDA code of the shaders if there isn’t anything wrong which matches the error description.

If you’re using MSVS 2013 already and you want to keep using OptiX 3.x, I would recommend to update to OptiX 3.9.1 which received a lot of improvements over 3.8.0.
See if the problem persists with that and if yes, maybe also update to CUDA 7.5 which is supported by OptiX 3.9.1.

In general I don’t recommend to begin learning OptiX by using the OBJ loader. That’s doing quite some things under the hood and it’s better to understand each individual step to build an OptiX scene graph first. My recommendations how to start leaning OptiX can be found here:

Use 64-bit build targets for OptiX applications and their CUDA to PTX translation.