A simple way to fight FPS dropping and rubber banding

You may have plenty of available CPU and GPU power in your Windows computer and still experience problems with dropping FPS, stuttering, and rubber banding because of the way Zwift is written.

What can be done about that? Read on to find out more (some of the nerdier stuff is in the footnotes).

The problems

  • Zwift is very vulnerable to other programs running, often with a very visible drop in frames per second (FPS) if you launch another program.
  • Rubber banding can occur when the CPU is processing stuff for other programs. Zwift cannot get its calculation of position and screen updates done fluidly, and especially in views 1 and 2 you will experience that odd back and forth rubber band effect.1
  • Another odd behaviour is how Zwift freezes when it is processing screen shots.

A simple fix

A simple and easy fix for many of these problems is to increase the process priority for the ZwiftApp.exe process2. By doing that Zwift simply gets higher priority for its data processing than most other processes on your computer. It is all it takes to make Zwift run visibly smoother!3

I’ve tested this repeatedly4. A simple thing such as launching a browser or just switching to a browser with some animated SVG graphics would cause visible stuttering in Zwift at the normal process priority. Raising the process priority to ‘Above normal’ made Zwift run smoothly through the same scenarios, even when launching other applications in rapid succession.5 6

Set up once and worry no more

You can do it manually every time you have launched Zwift via the Windows Task Manager, but I’m going to explain how to set it up to be the standard whenever you launch Zwift.

It’s a three step procedure:

  1. Download and install Process Hacker
  2. Launch Zwift and configure the process priority
  3. Zwift

Let’s do it!

Step 1: Download and install Process Hacker

You have to download and install a free, open source program called ‘Process Hacker’. It’s a replacement for the normal Windows Task Manager with a lot of extra functionality.

One of the many features is that it lets you save which priority a process (think ZwiftApp.exe) should run with whenever it runs. When ‘Process Hacker’ itself is running it monitors the other processes on your computer and can make your saved changes to process priority.

So, download Process Hacker (version 2.3.9) here: https://processhacker.sourceforge.io/

Run the setup program you downloaded. Just make a full installation, but if you want to customise the installation definitely remember to include the ‘User notes’ plugin in your installation.

I recommend you also choose the following options during install:

  • Start Process Hacker on system startup (otherwise you will have to start ‘Process Hacker’ manually)
  • Minimized on system tray

You can let ‘Process Hacker’ run all the time. To keep it hidden in the Taskbar tray when it is not used and to prevent that you accidentially exit it, the following options are very useful (set them via the ‘Options’ menu in the ‘Process Hacker’ program after installation):

  • Hide when closed
  • Hide when minimized

Step 2: Launch Zwift and configure the process priority

Now, launch Zwift. When the main game window opens after login and pressing ‘Lets go’, it’s time to make the configuration in ‘Process Hacker’ which we want.

Launch ‘Process Hacker’ if its not already opened.

In ‘Process Hacker’, search for ‘ZwiftApp’ in the search field top right.

Right click the line with ZwiftApp.exe, choose ‘Priority’, then ‘Above normal’.

Now comes the most important part: Right click the line with ZwiftApp.exe, choose ‘Priority’, then ‘Save for ZwiftApp.exe’ option at the bottom of the right click menu.

That’s it!

Step 3: Zwift

Well, just ride on.

As long as ‘Process Hacker’ is running (remember that you set it up to launch with Windows and to hide itself in the taskbar tray) it will set the process priority to ‘Above normal’ every time you launch Zwift.

Final remarks 7

This is definitely not the solution to all problems with stuttering, FPS drops, and rubber banding. It won’t make a slow computer more powerful, and it won’t dramatically increase the performance of Zwift. It just can help a bit in making Zwift run more smoothly. The effect you see can vary a lot, depending on your computer configuration, Zwift version etc.

Footnotes

  1. Rubber banding can have other reasons, e.g. at high performing systems where the FPS gets capped at 60 FPS due to display limitations, so this is not the solution to all rubber banding issues []
  2. This primarily makes sense if you run Zwift in window mode and run other programs in parallel with Zwift, but could also be beneficial in fullscreen mode if Zwift competes with other processes already running in advance. Note added 2020-10-27 17:06 CET []
  3. Zwift seems to be coded without considering that the user can be running other programs simultaneously such as browsers, OneDrive, and Dropbox. Naturally, this ‘fix’ doesn’t really improve the way Zwift is coded and how it works, but it does remove some of the visible symptoms it has. []
  4. Windows 10, Version 20H2 (OS Build 19042.608), running Zwift version 1.0.57620. Note added 2020-10-27 17:15 CET []
  5. A downside to increasing the Zwift process priority will of course be that the priority of other processes will be lower, relatively speaking. They can be slowed a bit but for me that is definitely an acceptable tradeoff while zwifting. []
  6. There seems to be no particular benefit in increasing the Zwift process priority even further (to High or Realtime). []
  7. Remarks added 2020-10-27 17:07 CET []

8 comments

  1. Please HELP. My PC didn’t seem like this program so I unistalled it. Now I’m having loggin trouble with Zwift! Script error.. Any ideas how to put things back to how they were?

    1. Script errors does occur sometimes in the launcher. Often they can just be bypassed or they won’t be there if you exit the launcher and start Zwift again. When I experience script errors that normally works.

      If that doesn’t help I would recommend a restart of your PC, especially if you have installed or uninstalled software.

      Adding or removing Process Hacker doesn’t touch your Zwift installation but to make absolutely sure that you have what should be full and complete Zwift installation just uninstall Zwift, download and install it again.

      1. Thanks for that, I’ve restarted already so will try uninstall-download-install of Zwift. It will ask if I want to completely remove Zwift, I presume that’s a no, so personal achievements remain on my PC? Cheers Mark

        1. You’ll have to answer Yes to that question to uninstall. Uninstallation doesn’t remove the Documents\Zwift folder with all your personal achievement, but just to be on the safe, safe side, make a copy of the entire Documents\Zwift folder just in case before you uninstall.

  2. Hey Jesper,
    So it turns out Process Hacker had nothing to do with my script error on launcher, as I’m sure you expected anyway. It was just bad timing for me..
    I will just wait for Zwift to fix this and keep hitting yes in the meantime I guess.
    I never thought Pinterest would affect my favourite cycling app!
    Regards
    Mark

  3. I found the following solution. You could incorperate this in zwift-preference and run zwiftapp with this. Not sure is this is doable in AHK.

    :: Boost thread priority
    SET command=
    start “” /REALTIME /B /W %command%

    Boosting priority of the zwiftapp seems to help my older performing laptop

Leave a Reply

Your email address will not be published. Required fields are marked *