How come since the Gen 12 renderer was implemented, my performance actually dropped? I get an average of 13 to 17 FPS, no matter the quality or resolution of the game.
TL;DRGen 12 currently covers only the brushes and the render thread is over twice as fast, but the main thread is the bottleneck and the mixed legacy/Gen 12 mode adds some cost, so full benefits come only once Gen 12 is complete.
Well, that's easy to answer. In fact, I posted a Gen 12 update and progress like two weeks ago on Spectrum. And initially, I didn't even plan to do that, because I didn't expect any performance benefits of Gen 12 in 3.17. But due to the rising amount of threads and people talking about these magical improvements in 3.17, and people wondering where that actually came from, I felt like I had to give an update. So that's what I did. The thing is, Gen 12 right now is only the brushes. They're rendering in Gen 12. But the big caveat is that with our rendering right now, we're mostly limited by the main thread and not the render thread. So there are two threads, and it goes very deep into engineering already, I would say. So for everyone who can't follow me right now, I'm sorry. But basically there's a render thread, which, as Ali said previously, is this kind of thing feeding the rendering work into the GPU. That, with the old legacy renderer, is really slow, because every frame we constantly check every state and see what objects we can render. And Gen 12 uses a different approach by just pre-baking the state in a small object. And then when we render, we just have the entire state ready and can just say, GPU, here, render this object. So the render thread, I tested it myself, with Gen 12 it's more than twice as fast. But if you're not limited by the render thread, which at least on my machine was mostly the case, it doesn't give you anything. So that's why I didn't expect any benefits and didn't feel the need to give an update. But in the future, with full Gen 12, that's another thing, because right now we have this mixed mode. We have objects rendering with Gen 12 and other objects going through the legacy path. There is actually a cost to that on the main thread, which is the bottleneck. Which means, what I would have expected, Gen 12 would have made it actually a little bit slower. But that didn't even happen. So I'm happy about that. But once we can get rid of all the legacy stuff and have full Gen 12, then we'll see the full potential, and I'm very excited about that.