Over the past few months we have made a huge collective effort to eliminate the majority of client-side CPU performance bottlenecks. This month, however, as we eliminated the last big ones, we ended up at a point where Unity's CPU-side rendering was essentially clogging up our main thread. However, the complexity of our scene just didn't match the inflated rendering times. Thankfully Unity had been working on a solution.
We've enabled
graphics jobs in Rust this month. This is a relatively new Unity feature that greatly reduces CPU overhead by making better use of multithreading. It's a somewhat risky move as Unity is still considering it an experimental feature, and in past releases we encountered significant issues with it and had to roll it back, but we've done thorough testing and couldn't find any issues we weren't able to work around this time. In our testing it significantly improves performance and Rust is now utilizing the GPU a lot better than before and is no longer CPU bound on most hardware, which means graphics settings actually have an effect on frame rate.