New game engine or big improvement of the current one (performance related)

Currently, Zwift’s performance is truly worthless and with the Neokyo expansion it is much more noticeable than before.

For reference, I normally run Zwift on my notebook with i5-5200u CPU and the iGPU HD Graphics 5500. In most worlds that provides around 40 fps, which is not great, but fine. However, in Neokyo, the fps falls all the way to 20 fps and that is without many other riders.

I tested the same on my gaming PC with i5-4460 CPU and GTX 970 GPU and on average I get around 30 FPS in Neokyo regardless of the graphic settings! It is important to note, that in both cases the CPU and GPU load is a lot below 100 %, suggesting that the game engine in its current state is completely unfit for its purpose.

It’s not 2003 anymore and any game engine needs to be able to utilize more than 1 CPU core. Mid range mobile phones have 8 core CPUs these days!

Do not mistake this for a plea for better graphics. To be honest, I don’t really care about it as long as the game is this bad performance wise. We need support for multi-core CPUs and we need it asap!

EDIT:
TLDR
We want Zwift 2.0 that would make full use of our hardware, would have detailed graphics settings and most importantly would NOT run at 20 FPS while the cpu and gpu load is under 50 %.

There does seem to be a lot of pressure on a single thread with Zwift and I’m not certain it can keep up. I’m sure some would leap to CPUs with tens of cores if it made any difference but from what I understand, it currently won’t…

The thing is that no one but the Zwift developers can really see into this issue. We see it just from the outside. Whether the performance problem would be fixed by the engine utilising more CPU cores we cannot really know, although it is probable.

Currently Zwift uses just one CPU core which is overloaded and it apparently doesn’t manage to feed the GPU with enough draw calls, so many systems have low FPS with GPU utilisation far below 100 %.

Definitely long overdue. Unfortunately no signs that such a refactoring would be in the works or even under consideration, and considering all the current QA issues even with minor incremental changes, there might be even more fundamental things in the development process in need of addressing first…

Needless to say, I completely agree. Particularly this bit:

I can imagine a lot of people conflating the two issues. Yes it’s nice for visuals to improve, and it’s natural for hardware demands to increase over time. However the requirements to hold 60fps in a solo ride jumping from an i3-4130 to an i5-12600K is crazy. Likewise the GPU demands going from a 970 to a 3070 or thereabouts.

Unfortunately I strongly suspect PC users are a rapidly diminishing sector of the user base, and 20fps+ is considered acceptable.

1 Like

Well, 4K Apple TVs have 6 cores (that’s one crazy mutant apple innit) as well so…

1 Like

Added TLDR to the first post.

Multi-threading is the key to unlocking this in my opinion.

First half - Neokyo with all riders. Second half - Neokyo with 8 riders, testing new Clubs functionality.

£19.99 CPU which has good single core performance OC’d.

Zwift is understandably CPU heavy, but if this is known, optimising CPU usage should be a priority.

Only 3 votes for this so far. I suspect we can do better than that …

Multi-threading would certainly help, but we just don’t know whether there are other issues embedded in the engine. Perhaps it’s so bad that it’s basically impossible to adapt the engine for multi-threading. We have no way of knowing that.
Anyway I guess the GPU load was around 60 % most of the time? CPU around 55 %?

1 Like

voted… however I think we have seen that the number of votes matters very little… The numerous threads on this issue with many new and different voices may help however?

I would love to hear from @Wes on what he thinks about these performance issues and if there are any plans to optimize them? I don’t think anyone from HQ has chimed in on any of the threads.

1 Like

Undoubtedly an inefficient engine contributes. Zwift is quite unique in it’s requirements for calculating the exact positions of other riders and their impact on various dynamics though, so I am not that surprised that it requires a high CPU load.

I’ve reached out to Jon Mayfield on reddit as I know he is active there. Will be interesting to see if he responds.

3 Likes

High CPU load is not the problem though. Problem is that the load is not distributed between more CPU cores. Multi-threading in video games started more than 15 years ago! Almost 15 years ago, PS3 and Xbox 360 had multi-core CPUs.

1 Like

If I’m understanding the recent updates correctly, the pack dynamics work should help with that, but it all still needs to be drawn on a user’s machine.

Because the entire Zwift CPU load is not distributed amongst the cores, it ends up as too high a load just for one core/thread. So it’s still a CPU load problem.

We’re just arguing semantics here, of course.

2 Likes

Yeah it’s just semantics, but we are very limited when it comes to improving performance of a single CPU core (thread), but we can scale that pretty good by having more CPU cores (threads). A simple example would be building a house. You can imagine the difference between a single worker building a house and 10 workers building a house together. That’s what I meant.

I think I said this in my first sentence?

I don’t know much about CPUs but I like that particular example, because a lot of programming languages are still single threaded because it turns out to be counterproductive if the worker who wins the concurrency competition is designated to build the roof. :joy:

Some people, when confronted with a problem, think “I know, I’ll use multithreading”. Nothhw tpe yawrve o oblems. - Unknown