I’m doing some cleanup and optimizations, including using dirty flags and time stamps.

For a given rtGeometry node:

Currently, if there are any changes to vertex positions or indicies, I flag the acceleration structure as dirty. I also call rtGeometryMarkDirty. So for example, in an editor, pulling verts does this.

However, any rtBuffer changes that don’t affect topology , For example, in an editor, changing vertex color, or assigning material id’s, I only call rtGeometryMarkDirty.

Since buffers already have mechanisms to signal when they need to be updated to gpu… is the rtGeometryMarkDirty needed? I’m guessing it may be a check my childrens dirty state implementation.

In general, when do we need to call rtGeometryMarkDirty? Also, are there any situations where we need to flags parent nodes of a childs change (other then parent acceleration structure) ? I

The only other info I could find (other then the optix_host.h) is

" /// Mark this geometry as dirty, causing rebuild of parent groups acceleration. See @ref rtGeometryMarkDirty."