Hi there. From code analysis, it seems the mentioned types make a call with UsdGeomXformable::IsTransformationAffectedByAttrNamed(attr.GetBaseName()), but this function relies on testing against the xformOp: prefix, and GetBaseName strips any namespaces. For these prims, the DirtyParams bit is also set in timeVaryingBits incorrectly.
See:
I’ve attached a usd file with lights that have time sampled translations: lightMotionDirtyBits.usda (10.8 KB)
Thanks for letting us know! You’re totally correct. The impact of this code is that an animated transform will also cause “DirtyParams” to be set each frame, e.g. over-invalidation, so it will be a performance issue but shouldn’t cause correctness issues. I also found this same pattern in cameraAdapter.cpp and lightFilterAdapter.cpp, FWIW.
Would you be up for filing either a github issue or a github PR for this issue? Thanks!