Adjust the graphics/user experience according to the hardware on the client

The recent TDZ rides have shown that it is too demanding of the client to render all riders/graphics when the group is huge. Real minimum hardware requirements right now are the same as for a gaming PC. I think that is too much to require for a training app like Zwift. It will exclude too many users.

It would be nice if Zwift can automatically adjust the graphics/demand on the PC so that the user will get a decent FPS regardless of the hardware on the client. The current minimum hardware requirements should still apply off course.

I think most users will rather have crappy graphics for some of these massive rides than to not be able to ride them at all.

The type of devices that struggle already get crappy graphics. That automatic adjustment is how the detail system has always worked.

More manual control would be better but we’re heading the other way if anything.

As I understand, Zwift sets the profile automatically e.g. basic, high, ultra. Each profile has its settings. See https://zwiftinsider.com/config-file-tweaks/. I’m thinking that these custom settings can be automatically adjusted.

The few settings you can tweak in config files are only a tiny part of what each profile changes in the background. That stuff is chosen by Zwift, and though I’d rather we had full options, the whole point of the automatic profile system is to adjust the graphical detail and complexity to try and ensure better performance on lower end devices.

The part everyone always misses from that guide:

None of the config file changes below will increase or decrease the polygon count or detail level in textures.

I’m sure there are more settings that Zwift can adjust. My point is that Zwift need to adjust the graphics so that the app runs satisfactory for the user. This should happen automatically. The profile switching does not seem to be enough.

In my view we should have full access to all graphics settings, with the profiles as we have them now being presets. This would match basically every other computer game on the market, but for some reason Zwift users have always been treated as idiots, incapable of being trusted with such tools. I don’t expect this strategy to change, and if anything I believe more and more control will be taken away as Zwift push for the casual crowd.

My original point was just that the low end devices including Apple TV are already on the very lowest tier of graphics Zwift offers (I suspect most users don’t even realise this), so I’m unsure how much lower it could go.

2 Likes

The graphics aren’t what slow down a large group ride, it’s the processing requirement to calculate rider position, other riders around you, everybody’s position in the event, etc. More efficient code is the only answer.

1 Like

OK. I thought that Zwift only considered the 100 closest rides and that the processing time for calculation of rider position and riders around was a constant.

It only renders the closest 100 riders - which is why graphics processing is pretty consistent regardless of group size.

e.g. you could be running a GTX 2080 ti, but you will still see significant framerate drops in a large group, because the processing is done by the CpU on a single thread

2 Likes

That makes sense, but why do Zwift calculate positions for more that 100 riders when they only render 100 riders? I would guess that it should be enough to calculate positions for only the closest riders to calculate draft etc.

Good question. :wink:

My guess would be that when the code was originally written, it didn’t account for several thousand riders being within whatever range they chose as being close enough to have an effect (for drafting etc) on the user’s avatar. It seems to be completely linear, you need more and more CPU single thread processing power - clock speed and IPC - to keep the GPU fed and maintain frame rate. At the low end the CPU just craps out.

3 Likes

You are probably right. They do calculations for all riders within a certain distance, no matter how many. That does not scale very well :slight_smile: Since Zwift is CPU bound, they should scale out processing to utilize all cores of the CPU.

What we need is a rider ranking or score based on ability then Zwift can use that to limit the field size and only deal with a small number of riders at a time.

That will make these rides more fun it could even improve racing.

They can even hav mass start but only do calculations for the 100 riders that are within your riders rank or score. Or sorting the group from fast to slow and let them go in waves.

Good idea. I think it could be a problem if you are riding in a field with more than 100 riders. Those that are outside your closest rider rank score are still part of the ride and should e.g. add to your draft if they ride close to you and visa versa.
And what if there are more than 100 riders within your riders rank or score? Should you just take the closest 100 in rank even if there are others with about the same rank as you? Maybe include all those with rank in a range of x% of you?

Im thinking of limiting the field to only 100. There’s no point for a D Rider to see the A’s in the start.

You only see 100 in anyway and groups form naturally, so this way groups are formed earlier.

This would help for mass start races, but for mass start rides I guess lower ranked riders find it fun to be able to hang on to higher ranked riders as long as they can. A B-rider, like myself, will e.g. be able to hang on to a larger group of A-riders for some time on a flat route.