Search Unity

Culling Performance - what is going on?

Discussion in 'General Graphics' started by kalineh, Dec 19, 2017.

  1. kalineh

    kalineh

    Joined:
    Dec 23, 2015
    Posts:
    241
    The current culling system seems to have some serious performance issues, and it's unclear exactly what is happening and whether there is anything we can do about it. This is specifically for frustum culling and render bounds updating, and not occlusion culling.

    The discussion came up in a seperate thread, but I wanted to collect it here for better reference:

    https://forum.unity.com/threads/best-practice-project-settings-for-daydream.438598/#post-3324142
    https://forum.unity.com/threads/best-practice-project-settings-for-daydream.438598/#post-3327158

    Unity Bug Reference: #979116

    It seems the culling is taking near the time taken on CPU to actually issue all the draw calls. Can anyone from Unity provide some more information on what is actually happening?

    Is this a performance regression introduced recently?
    Is this expected culling overhead?
    Is this happening for all objects? Non-static only?
    How does this scale for deep transform heirarchies?
    How do skinned mesh renderers work exactly regarding bounds/culling?
    How do particle systems work exactly regarding bounds/culling?
    Can we manually precalculate object render bounds?
    Can we disable culling entirely?
    Are there any workarounds / hacks to improve performance?
    Are there any best practices to minimize the computation?
    What is the general high-level algorithm / big-O complexity?

    Anything would help! We can't look any further without unity internals being visible.
     
    Last edited: Dec 19, 2017
    Martin_H likes this.