Yes. It’s handled by the delegator machinery. You can listen to the vtkCommand::UpdateShaderEvent
from vtkCompositePolyDataMapper
. Are your observers not invoked? Please create an issue if it doesn’t work for you.
It’s implemented in vtkOpenGLBatchedPolyDataMapper.cxx#L889