I use MeasureTool in my task and noticed that my fps drops from 50 to 30 even if it's removed after some work. So i checked MeasureTool sources and found out that problem is FeatureNode with AltitudeSymbol::TECHNIQUE_GPU. In this case, FeatureNode uses ClampableNode in each rebuild, and ClampableNode pushes itself to ClampingCullSet in traverse method.
It's fine if this technique drops my fps, probably because GPU on my testing machine is old. But main problem is that if i remove FeatureNode from my graph (because i don't need it anymore) FPS don't back to normal, ClampableNode still here and i can't get rid of it. Probably because ref_ptr of ClampableNode still in ClampingCullSet?
Of course i can write my own class similar to MeasureTool without FeatureNode with TECHNIQUE_GPU, but i want to know, are there any workarounds? Because looks like it's common problem with annotations that use ClampableNode.
Maybe ClampableNode is not a problem, but i didn't find any other clues...
Also, unlike REX engine, with MP engine FPS is back to normal after removing annotation with TECHNIQUE_GPU.
So, because ClampingCullSet still contains entry with ClampableNode (even if annotation that creates it doesn't exist anymore) and valid bounds because of it, OverlayDecorator always uses ClampingTechnique, even if i don't need it anymore.
Looks like drape technique has the same problem, but this method doesn't affect my fps so much on REX engine unlike ClampingTechnique (GPU).
It turns out there is no way to disable Clamping (or Draping) technique if i use it once?