There have been many discussions about culling performance. Notably:
http://www.leadwerks.com/werkspace/topic/4449-showhide-heavy-trees/
http://www.leadwerks.com/werkspace/topic/3995-entity-cull-time-optimization/
http://www.leadwerks.com/werkspace/topic/3956-model-setviewrange-causes-crash/
Josh often says that he needs a scene file to test. Here is one, along with the 3D model "filler.gmf" used in it.
http://localhostr.com/file/rg5ZGkP/Culling.sbx
http://localhostr.com/file/xT1HJD0/Filler.gmf
http://localhostr.com/file/QIcDJF8/FillerLOD1.gmf
Here is a screenshot of the performance assessment:
I want to stress the following points:
The polygon count is 25k, which is nothing for Leadwerks. Draw time is 1ms.
The world time is of 7ms, 5 of which are taken by entity cull time. This is enormous. I often get 6 or even 7ms taken by the cull time, out of the total 7ms.
There seems to be 2376 entities drawn, whereas the square is 24x24=576 cubes. The other entities are the directional light. Perhaps the LOD counts as 2, but even then, it's not 2376.
If you don't see performance drops yet, try multiplying that grid 4, 8, or 16 times. Then you'll notice cull time starts to rise in the 30-60ms.
Another interesting point is that when you look down from the basic camera view, there seems to be a massive glitch in culling. Although no entities are in view (screenshot shows some only to indicate how I lowered the view, but you can lower further to show none), almost all the entities and polygons are still drawn. Also note that culling still takes the most of the render time. This seems to indicate frustrum culling is not only slow but bugged.
This needs to be fixed, as it causes massive drops in performance for apparently no reason. Or, there needs to be a way for us to disable culling in that case. I'm interested in learning how.