DX11 strange "rubber banding" effect - possible solution (1.36-1.49)
Posted: July 8th, 2020, 7:09 pm
UPDATE 25/07/2024: The info in this post applies to ATS/ETS2 game versions 1.36 to 1.49 only.
This, i suspect, has no impact on Gsync, Freesync or vsync off setups.
This is a frame time fix and not a frame rate fix.
If your vsync fps are constantly dropping below the vsync level then this won't / can't fix that problem.
With vsync on, when you drive around the game world the driving motion will randomly, but suddenly, slow down and then rapidly speed back up. Repeating this for a few seconds or so making you feel like you are driving a frog down the road or "rubber banding" effect.
The framerate isn't dropping below vsync level at these moments.
This is not a stuttering or freezing issue, it's a frametime issue.
Turning vsync off solves that issue but then you have to put up with screen tearing.
If the above description sounds familiar to you, then you can try this. Otherwise this solution isn't for you.
In the games global config.cfg file there's this line:-
uset t_averaging_window_length "20"
That's the number of the past frames used to calculate the current frame duration.
SCS info on that here: https://modding.scssoft.com/wiki/Docume ... _variables
Setting this to twice your current vsync framerate should fix this rubber banding motion.
So, if you have vsync on and have 60fps, then set it to 120.
That'll use 2 seconds worth of past frames to give the current frame a much more stable average value for it's frametime.
UPDATE 19/04/2022
Since game version 1.40 (the new "far too demanding" lighting system) I've had to change my value from 60 to 150.
So for me, that's now 5x my vsync fps (30 fps) instead of my original 2x used in 1.36/1.37/1.38/1.39.
If you still get "rubber banding" after increasing this value... just keep testing with higher multiples of your vsync fps.
======================================================
My story to explain why i know it works for me:
Ever since DX11 was added to both games, i've been unable to play them in 64 bit mode due to the above "rubber banding" driving motion issue.
My solution has always been to run both games in 32 bit mode, i don't use mods, whilst also using 3dOverrider.exe to provide a triple buffer for 32 bit games. Perfect.
After each game update i recheck 64 bit to find the problem hasn't gone away, for me at least.
I have used config.cfg vsync "2" (economy mode in game menu) to lock to 30 fps for many years.
I now set config.cfg - uset t_averaging_window_length "60".
Having now driven all over ATS and ETS2 worlds (1.37), i've had no more rubber banding issues since setting that to "60".
As a double check, i set it back to default 20 and rubber banding is straight back.
Q6600 @ 3.3ghz, 8 gig ram, GTX760 2 gig, 3840x1024 & Win 7 x64.
I use 60hz with 'vsync 2' & 30 fps because i use NPI AA (DX9 and now DX11) and NPI AA drops my frames to below 60 at times causing stutters/slow downs.
So 30 fps is best for me and has always been smooth in 32 bit mode, but now i run in 64 bit mode!
Example:
In this pic you'll see 10 frames displayed one after another for a 1 second time period. 10 fps.
Each frame has 0.1 of a second to display itself.
. .
1 = Choppy motion caused by frames being produced at different speeds within each 0.1 interval.
2 = Very choppy motion caused by most of the frames being produced very quickly and leaving a gap.
3 = Smooth motion. All frames produced at a constant rate.
All 3 examples run at a constant 10 fps, no fps drops, but 2 will show a slow down/speed up motion, but it still produces 10 fps.
Info from other users when using this:
viewtopic.php?p=27427#p27427
This, i suspect, has no impact on Gsync, Freesync or vsync off setups.
This is a frame time fix and not a frame rate fix.
If your vsync fps are constantly dropping below the vsync level then this won't / can't fix that problem.
With vsync on, when you drive around the game world the driving motion will randomly, but suddenly, slow down and then rapidly speed back up. Repeating this for a few seconds or so making you feel like you are driving a frog down the road or "rubber banding" effect.
The framerate isn't dropping below vsync level at these moments.
This is not a stuttering or freezing issue, it's a frametime issue.
Turning vsync off solves that issue but then you have to put up with screen tearing.
If the above description sounds familiar to you, then you can try this. Otherwise this solution isn't for you.
In the games global config.cfg file there's this line:-
uset t_averaging_window_length "20"
That's the number of the past frames used to calculate the current frame duration.
SCS info on that here: https://modding.scssoft.com/wiki/Docume ... _variables
Setting this to twice your current vsync framerate should fix this rubber banding motion.
So, if you have vsync on and have 60fps, then set it to 120.
That'll use 2 seconds worth of past frames to give the current frame a much more stable average value for it's frametime.
UPDATE 19/04/2022
Since game version 1.40 (the new "far too demanding" lighting system) I've had to change my value from 60 to 150.
So for me, that's now 5x my vsync fps (30 fps) instead of my original 2x used in 1.36/1.37/1.38/1.39.
If you still get "rubber banding" after increasing this value... just keep testing with higher multiples of your vsync fps.
======================================================
My story to explain why i know it works for me:
Ever since DX11 was added to both games, i've been unable to play them in 64 bit mode due to the above "rubber banding" driving motion issue.
My solution has always been to run both games in 32 bit mode, i don't use mods, whilst also using 3dOverrider.exe to provide a triple buffer for 32 bit games. Perfect.
After each game update i recheck 64 bit to find the problem hasn't gone away, for me at least.
I have used config.cfg vsync "2" (economy mode in game menu) to lock to 30 fps for many years.
I now set config.cfg - uset t_averaging_window_length "60".
Having now driven all over ATS and ETS2 worlds (1.37), i've had no more rubber banding issues since setting that to "60".
As a double check, i set it back to default 20 and rubber banding is straight back.
Q6600 @ 3.3ghz, 8 gig ram, GTX760 2 gig, 3840x1024 & Win 7 x64.
I use 60hz with 'vsync 2' & 30 fps because i use NPI AA (DX9 and now DX11) and NPI AA drops my frames to below 60 at times causing stutters/slow downs.
So 30 fps is best for me and has always been smooth in 32 bit mode, but now i run in 64 bit mode!
Example:
In this pic you'll see 10 frames displayed one after another for a 1 second time period. 10 fps.
Each frame has 0.1 of a second to display itself.
. .
1 = Choppy motion caused by frames being produced at different speeds within each 0.1 interval.
2 = Very choppy motion caused by most of the frames being produced very quickly and leaving a gap.
3 = Smooth motion. All frames produced at a constant rate.
All 3 examples run at a constant 10 fps, no fps drops, but 2 will show a slow down/speed up motion, but it still produces 10 fps.
Info from other users when using this:
viewtopic.php?p=27427#p27427