I’m working on moving us to Iris. I noticed we had several sub-objects that were getting polled despite being entirely push model based, you can see the results in the profile, things being polled and immediately returned.
[Image Removed]
I asked around and was directed towards, BuildPollList. I’ve made a change in our local copy to first check if the sub-object wants to be dormant before including them. Id like to get someone on the Iris team to review this is let me know if there’s more I need to do, or if this is a terrible idea for some unknown reason, https://github.com/EpicGames/UnrealEngine/pull/13287.
Subobjects does not have a concept of dormancy on their own and always follows the root object.
Marking a subobject dirty will also dirty the root and vice versa to ensure consistency when polling.
That said, I am currently actively working on optimizing the polling logic to fully utilize per property dirtiness and also avoid polling fully pushedbased objects and subobjects that are not marked dirty.
I expect those changes to reach UE5-Main in a week or two which will reduce polling time significantly.
I have now submitted the optimizations for push based polling. They are available on UE5-Main as of CL 43176094.
With it push based properties will only be polled if they are marked dirty.
Fully push based objects will be skipped entirely if not marked dirty.
The change also adds a cvar to enable verbose profiling that includes every polled property making it easy to track down and find why objects gets polled.
We are also experimenting with enabling task based polling allowing polling to be executed concurrently.