Included purposes and non-storm hydra delegates

Hello,

It looks like in 22.05 that changing the included purposes to have a “smaller set” doesn’t trigger Sync() anywhere. I.e. if I turn on “render”, my “render” prims get Synced(), but I can’t remove/turnoff “render” and get any way of handling that.

Storm seems to handle it in _Execute() on a pass by dealing only with DrawItems. But embree (and I think prman, but haven’t verified) don’t issue stuff through Hgi so don’t have the opportunity to not draw something.

Is there a recommended way of handling that ?

Even if there was a “please re-think the whole thing” kind of “forceReSync” might be ok.

Sending over to the Hydra category for visibility…

By managing Rprims downstream visibility (ie to your renderer), you can make DrawItems in the Rprim::Sync() and then manage to get things the same-ish way that Storm does - ie in the Pass.

But if you are keeping persistent state in your renderer instead of drawing them each time your Pass happens, you have to make sure you re-enable stuff if the purpose turns back on. So it still feels very different than the rest of hydra sync’ing.