Upcoming Events

Weekly BMW races on Simracing.GP Weekly BMW races on Simracing.GP Other regular AC events on Simracing.GP Weekly GT3 Sprint Races on Simracing.GP Weekly GT4 Sprint Races on Simracing.GP Daily WTCR races on Simracing.GP

Finally fixed my stuttering in ACC!

After never having ACC run without stuttering, and returning after buying the GT4 pack I was determined to try and resolve the issue. I was running at 80 to 120 fps in 4k but was still plagued with the dreaded microstutters.

Most of you may already know this, but for those who it may help.

To resolve the issue (for me anyway) if you locate the file ac2-win64-shipping.exe (which in located in your ACC game folder SteamLibrary\steamapps\common\Assetto Corsa Competizione\AC2\Binaries\Win64) - right click on it, select properties, select the compatibility tab and click on Disable Full Screen Optimisations. In game set the frame limiter to your screen refresh rate and turn on V-Sync. Windows Game Bar Mode also needs to be disabled for this to work.

I also used the same same option on the acc.exe file (which in located in your ACC game folder SteamLibrary\steamapps\common\Assetto Corsa Competizione\AC2) just in case.

It's cured my microstutters and I've been able to put most settings back to epic on 4k and retain solid 60fps with no stutters :thumbsup:

Kudos and my eternal thanks to PhilS13 at the AC Forums who posted this solution over a year ago, just wish I'd found it sooner.
 

RasmusP

Premium
I'm playing on a 60hz screen with no freesync. There is definitely no tearing whatsoever. I'm someone who cannot stand any tearing, it drives me nuts. I did have to lower some graphic settings to keep my framerate steady and avoid the tearing from fluctuations.
Then you definitely have some syncing going on. 58 fps at 60 hz can still be vsync'ed but it will have some mild microstuttering every now and then.

I'll explain why this is technically 100% sure the case in the next quote.
It is my understanding that keeping the framerate steady, with no jumps, and not exceeding the refresh rate of the monitor, would prevent tearing.
No, that's sadly completely incorrect. But it's not easy to find a good explanation for this so 2 years ago, I had no clue either...

So it works like this:
Your monitor is constantly, line for line, refreshing the visible image.
You have 60 hz, so your refresh takes 16.67ms, going either from bottom to the top or from top to bottom (it's one of it, not both. Depending on the monitor).

The pixels in a normal, standard flat screen are crystals that are moved by voltage, with the backlight always on.

So a crystal gets a new input every 16.67ms and will stay in its position between the inputs.
This is important! With old crt monitors, the frame was only visible for a very short time! (flickering if you're sensitive for it, so many had 100 hz instead of 60).

Now the gpu puts one frame into the buffer with 58 fps. That means every 17.24ms.

The monitor will grab that frame every 16.67ms and will start to refresh the crystals line after line.

You can see that this is not synced so at one point of this refresh, you'll get the new frame inserted into the frame buffer and the monitor will continue the refresh with the new frame.
That generates the tearing border.

However, since the gpu puts new frames slower into the buffer than the monitor refreshes, you won't have a tearing border in every frame!
If you would push 300 fps into a 60 hz monitor buffer, you would have 5 tearing borders visible per refresh cycle.

I had to play one game without vsync on a 60 hz monitor since I could only reach an average of 55 fps.
I found that 47 fps was a good value for limiting, since the tearing border didn't appear in every refresh cycle and always was in a different height of the monitor.
That was bearable for me, although stuttering a bit.. But at least a constant stutter that you could get used to.


Now about syncing:
With vsync, the gpu will wait for the monitor to start a new refresh cycle, which needs 1-3 frames to work, since the gpu needs to keep at least one frame ready to push into the frame buffer, when the monitor is ready.
This leads to the famous input lag with vsync.

If your fps drop below 60 fps with 60 hz and vsync, the monitor will display the current frame a second time (or 3rd if your fps drop a lot).
This leads to stuttering.

With freesync/gsync, the monitor will wait for the gpu to get the frame ready. So you won't have tearing and also don't need any buffering.
Which is why freesync and gsync always have low input lag.
 
Then you definitely have some syncing going on. 58 fps at 60 hz can still be vsync'ed but it will have some mild microstuttering every now and then.

I'll explain why this is technically 100% sure the case in the next quote.

No, that's sadly completely incorrect. But it's not easy to find a good explanation for this so 2 years ago, I had no clue either...

So it works like this:
Your monitor is constantly, line for line, refreshing the visible image.
You have 60 hz, so your refresh takes 16.67ms, going either from bottom to the top or from top to bottom (it's one of it, not both. Depending on the monitor).

The pixels in a normal, standard flat screen are crystals that are moved by voltage, with the backlight always on.

So a crystal gets a new input every 16.67ms and will stay in its position between the inputs.
This is important! With old crt monitors, the frame was only visible for a very short time! (flickering if you're sensitive for it, so many had 100 hz instead of 60).

Now the gpu puts one frame into the buffer with 58 fps. That means every 17.24ms.

The monitor will grab that frame every 16.67ms and will start to refresh the crystals line after line.

You can see that this is not synced so at one point of this refresh, you'll get the new frame inserted into the frame buffer and the monitor will continue the refresh with the new frame.
That generates the tearing border.

However, since the gpu puts new frames slower into the buffer than the monitor refreshes, you won't have a tearing border in every frame!
If you would push 300 fps into a 60 hz monitor buffer, you would have 5 tearing borders visible per refresh cycle.

I had to play one game without vsync on a 60 hz monitor since I could only reach an average of 55 fps.
I found that 47 fps was a good value for limiting, since the tearing border didn't appear in every refresh cycle and always was in a different height of the monitor.
That was bearable for me, although stuttering a bit.. But at least a constant stutter that you could get used to.


Now about syncing:
With vsync, the gpu will wait for the monitor to start a new refresh cycle, which needs 1-3 frames to work, since the gpu needs to keep at least one frame ready to push into the frame buffer, when the monitor is ready.
This leads to the famous input lag with vsync.

If your fps drop below 60 fps with 60 hz and vsync, the monitor will display the current frame a second time (or 3rd if your fps drop a lot).
This leads to stuttering.

With freesync/gsync, the monitor will wait for the gpu to get the frame ready. So you won't have tearing and also don't need any buffering.
Which is why freesync and gsync always have low input lag.
What you're saying makes sense. It sounds like I've been misinformed on how some (or much) of this stuff works.

The stuttering in ACC, at least for my machine, was completely related to HLOD being on. I actually got the idea to try changing that from another post I saw on the Steam forums, and it worked for me. With HLOD, there is a tiny millisecond stutter basically anytime I turn on track, even slightly. Luckily now, the game is perfectly smooth. Now if I could just buy a new video card so I could ramp up the resolution and settings! lol

In regards to the tearing, I didn't get a chance to play last night, but I am hoping to have time to log on a bit this evening. I know for a fact I have v-sync off in game and Radeon settings, but what I am not 100% of is if I am in exclusive fullscreen or window borderless. If I'm in borderless, then that may explain the lack of tearing since i'm getting the windows v-sync, and if that's the case I want to switch to exclusive and see how it reacts. I appreciate the detailed explanation, it's quite informative.
 
What you're saying makes sense. It sounds like I've been misinformed on how some (or much) of this stuff works.

The stuttering in ACC, at least for my machine, was completely related to HLOD being on. I actually got the idea to try changing that from another post I saw on the Steam forums, and it worked for me. With HLOD, there is a tiny millisecond stutter basically anytime I turn on track, even slightly. Luckily now, the game is perfectly smooth. Now if I could just buy a new video card so I could ramp up the resolution and settings! lol

In regards to the tearing, I didn't get a chance to play last night, but I am hoping to have time to log on a bit this evening. I know for a fact I have v-sync off in game and Radeon settings, but what I am not 100% of is if I am in exclusive fullscreen or window borderless. If I'm in borderless, then that may explain the lack of tearing since i'm getting the windows v-sync, and if that's the case I want to switch to exclusive and see how it reacts. I appreciate the detailed explanation, it's quite informative.
You were right, I have exclusive fullscreen off. When enabled I do have some slight tearing, mostly in the skyline. It's not bad, but it's enough to annoy me. No stuttering, but I'll stick to borderless window for now. I should have purchased a freesync tv lol.

When enabling hlod, I do still get the stutters in both modes, so hopefully that helps some folks having issues.
 

RasmusP

Premium
You were right, I have exclusive fullscreen off. When enabled I do have some slight tearing, mostly in the skyline. It's not bad, but it's enough to annoy me. No stuttering, but I'll stick to borderless window for now. I should have purchased a freesync tv lol.

When enabling hlod, I do still get the stutters in both modes, so hopefully that helps some folks having issues.
Nice to hear that we're both not imagining things :D

I don't have issues with hlod but I can imagine that some "special" LOD'ing can create frametime issues. So thanks for that!
 
Top