Hi,
As everyone knows (maybe except some newcomers ^^), FRTC has unfortunately been removed and this requires the use of Chill, with more or less success for some of us. I know he's had a lot of debate here to bring back FRTC (and I'm one of the disappointed by the lose of the feature), but a recent new debate on these two features in another forum pushes me to ask for more technical aspect and information about them here, to understand how they do work.
I know we have to use Chill by putting "Max = Min" to "replace" FRTC. So, my question isn't that ^^
The question is, what is the difference betwen them in term of technics. How do they work ?
As can be seen, there is a difference in terms of feel, and especially for the stuttering in my case, push me to interrogate why we have this difference, and how to explain that. I tried to search some information about the technics, but I didn't find any information who satisfied my curiosity (and I'm a guy of text, not of video lol).
In other words, on what, what aspect, and how do these functions act to limit FPS and why does this cause different results ?
Thanks in advance for all the answers you can brings !
NB : If I'm not in the right section for this kind of question, feel free to tell me that I'm changing it ^^
FRTC would take action based on CPU ms delay. So it would limit the FPS produced by the CPU. Chill is ignoring this with high probability.
Edit: Chill changes the GPU ms delay based on keyboard-mouse-gamepad response with high probability.
Just for example let's say you set your limiter to 50fps, which is 20ms per frame.
Chill works by monitoring how long the previous frame took, and then stalling if necessary. So if the last frame took 22ms, it would do nothing. If it was 15ms, chill would stall for 5ms. This means it can only ever make a frame take longer, it can't compensate for a frame that comes a little too late.
I'm not sure exactly how FRTC works but it definitely works differently. I'm pretty sure it uses a frame buffer, similar to (but not the same as) how triple buffered vsync works. Rather than stalling the rendering, it is holding 1 frame in a buffer until the time is right. So in some cases FRTC is able to compensate for late frames as well as early ones, and can stick more closely to the target. This is always the case with buffered output of anything, you can increase the consistency of the output interval, at the cost of additional latency.
Look at these frame time plots, from CS:GO limited to 60fps by the in-game limiter:
Chill:
FRTC:
The green plots are the time taken to render the frame. And the brown is the time in between each time the display is changed. You can see that while there is a similar ~1ms jitter in the render times for all three, FRTC is far more consistent in terms of the actual time between display changes.
Chill is less consistent but with lower latency. FRTC more consistent but with more latency. Most of the time this doesn't matter much, but in certain cases it matters a lot.
Hi !
Sorry for my long time before answer, it's seems I like asking some thing when I don't really have the time to answer
Your two answer are interesting, and some of the type of things I wanted to know !
But, if FRTC is working as a "vsync buffered" like you mentionned @drallim, it means it's "limited" by GPU and not CPU I suppose ?
So, the graphics confirm by digit why the feel of smoothness is better with FRTC !
So, if I undestand what you told me, FRTC or Chill don't required any intervention of develloper (from games, or drivers) to integrate them (it was one of the point we had in the debate I mentionned) in game, they work as "stand-alone" without no extra implementation and only thanks to the driver.
I thank no, but what you told seems to confirm it right ?
Thanks again in advance !
So, if I undestand what you told me, FRTC or Chill don't required any intervention of develloper (from games, or drivers) to integrate them (it was one of the point we had in the debate I mentionned) in game, they work as "stand-alone" without no extra implementation and only thanks to the driver.
I thank no, but what you told seems to confirm it right ?
That is correct. Although in some cases, depending on how the game is written, things might not work properly.
That is correct. Although in some cases, depending on how the game is written, things might not work properly.
Thanks again for you answer ^^
I don't know why I told on this message "I thank no", because I defended they worked as "stand-alone" (at least for FRTC for which I was pretty certain, because it's more consistant (and was always with me)) as you just confirmed me ... well I supposed I was tired and dont really know what I was reading ...
Anyway, thank you for the light you bring to me ^^
Global FRTC control is back in Adrenalin 2020 21.3.1 Driver for RX5700XT -> R9 390X.
This is great news.
It works with Radeon Chill do you can set FRTC = 59, Chill min FPS = 30 Chill max "FPS" = 300 and run an RX Vega 64 Liquid on BFV at 4K Ultra with ~ reasonable 59 FPS 4K Experience with Vsync off.
Now all Radeon Team need to do is adjust chill behaviour so that you can hit more than 55 FPS with those settings with keyboard only input.
Thanks.