Graf Zahl wrote:How does it fare with 4 cores? That'd be a lot more interesting because it's the most common configuration.
With a 4C/8T setup (by restricting my current CPU to use only that, since I don't have such a computer anymore) the numbers are:
While 4 core is the dominant count, 38% of Steam's users got more than that. Even so, I think 53 fps for Frozen Time is a respectable number for the software renderer on such CPUs.
Rachael wrote:This bug is suggesting that with the current mainline version of the software renderer (and possibly even with the hardware renderer as well), the tree will disappear if it is slightly off screen enough, which indicates a problem with the actor's actual definition, which you can't really do much about.
Yes, the tree will appear if it is slightly off screen in the mainline version too. It is just a lot more tricky to trigger as the sprites are billboarded. The real problem here is really that the RenderRadius value is part of the definition at all. No other sane engine lets the user guesstimate what the bounding sphere is. If you look at the file format of any mainstream engine you'll see this data is always automatically calculated. Not only does that always work, it also makes it far more efficient as the radius will never be too large.
Rachael wrote:One idea might be to add a new renderflag for every actor (that does not get exposed to scripting, since it would be used internally) that the renderer clears after every frame. Before rendering begins, each actor can be checked to see if it is within the camera's frame - and if so, then rendering the sprite's column might be forceable.
If getting the shared code to calculate the
correct RenderRadius is indeed too complicated then I will have to resort to such tricks. I wouldn't use a renderflag for it, but it would mean all my threads needs to synchronize which sprites they saw. Any kind of synchronization between the slices is very bad for performance which is why I'd rather have renderradius actually be properly implemented. But if that's not in the cards then I guess I'll have to resort to such an alternative.