# Included purposes and non-storm hydra delegates

**URL:** <https://forum.aousd.org/t/included-purposes-and-non-storm-hydra-delegates/2306>\
**Category:** Hydra\
**Created:** [March 14, 2025, 1:34am UTC](https://forum.aousd.org/t/included-purposes-and-non-storm-hydra-delegates/2306 "2025-03-14T01:34:43Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Doug.epps](https://avatars.discourse-cdn.com/v4/letter/d/a87d85/32.png) [@Doug.epps](https://forum.aousd.org/u/Doug.epps)\
**Post date:** [March 14, 2025, 1:34am UTC](https://forum.aousd.org/t/included-purposes-and-non-storm-hydra-delegates/2306/1 "2025-03-14T01:34:43Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![spiff](https://sea2.discourse-cdn.com/flex016/user_avatar/forum.aousd.org/spiff/32/22_2.png) [@spiff](https://forum.aousd.org/u/spiff)\
**Post date:** [March 15, 2025, 12:22am UTC](https://forum.aousd.org/t/included-purposes-and-non-storm-hydra-delegates/2306/2 "2025-03-15T00:22:07Z")

</div>

Sending over to the Hydra category for visibility…

---

<div class="post-metadata">

**Author:** ![Doug.epps](https://avatars.discourse-cdn.com/v4/letter/d/a87d85/32.png) [@Doug.epps](https://forum.aousd.org/u/Doug.epps)\
**Post date:** [March 15, 2025, 12:38am UTC](https://forum.aousd.org/t/included-purposes-and-non-storm-hydra-delegates/2306/3 "2025-03-15T00:38:04Z")

</div>

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.
