Overclock.net - An Overclocking Community - View Single Post - [AMD] Radeon Software Adrenalin 2019 Edition 19.8.1

View Single Post
post #9 of (permalink) Old 08-13-2019, 03:40 PM
EastCoast's Avatar
Join Date: Feb 2010
Posts: 3,589
Rep: 157 (Unique: 102)
Quote: Originally Posted by Jonny321321 View Post
FlipQueueSize apparently doesn't do anything anymore and it was only for dx9 games, Main3D still exists and appears to do something. Surely 0 Main3D also prevents the CPU from behind ahead of the GPU.
FQS (Main3d) of 0 has never did anything for me.

Quote: Originally Posted by Jonny321321 View Post
In regards to the capping frame rate, I read that capping your frames (to something solidly achievable) effectively gives you 0 pre-rendered frames, not sure in the validity of that. It was RealNC (someone who posts on blurbusters forum)

I don't believe you can have 0 latency. But again we are talking about input latency. Not pixel to pixel latency. RAL is designed to help reduce input lag.

Let me link you to a post on the matter though. This person is very knowledgeable about Radeon's Anti Lag (He says he's the creator).

Explanation to Radeon Anti Lag

So.... In a normal case the flip queue size should be 1. It is only ever increased if there are stuttering/performance problems. We've tested it a lot and (with all the recent driver enhancements) saw that we don't ever need a flip queue size greater than 1...

About Flip queue size 0... There isn't actually a thing like that, but there is something similar. Let me explain:
A flip-queue size of 1 tells the driver "don't start the CPU work on the next frame as long as there is a fully defined frame which has not been presented yet". Or, more precisely - "don't return from Present() as long as there is at least 1 unexecuted present command in-flight". The same kind of logic describes flip-queue size of 2,3 etc. - but obviously this doesn't work for "0".
There is instead a mode which is can be considered a "flip-queue-size 0" in some sense - I call this mode a "hard sync" mode. Basically, the logic goes: "don't start the CPU work on the next frame as long as there is ANY unexecuted GPU command in the GPU queue", or, more precisely - "Don't return from Present() until the previous frame has fully rendered".

In the first case (flip queue size 1) you get the optimal framerate (GPU is fully utilized), but sub-optimal latency (==2 frame times).
In the second case (hard sync) you get the optimal (minimal) latency (just over 1 frame time), but sub-optimal framerate (GPU is not fully utilized)
So Anti-Lag gives you both - the optimal framerate and the optimal (minimal) latency - the kind that you get in a CPU-bound case. So you can call RAL as having a flip-queue-size of 0.5 maybe?... Lol...
I think this answers what RAL really is.

BTW...if you want to see if for yourself you can do so by pressing CTRL-ALT-L (or whatever digit you assign to it...for whatever reason some had to reassign L to another letter to get it to work correctly). To offset that if that's a problem for you just go into the game profile itself. There you will see the option to enable RAL-
Gaming > "Title of Game" > Radeon Anti-Lag "On".

Once you do that start the game and then hit CTRL-ALT-L twice. Once is a green dot. Second time is the FPS counter (green) that will show you the FPS you would actually need to have in order to get that level of reduce latency. I suggest that you use MSI A/B OSD so you can see your actual FPS vs RAL FPS.

He also explains that here:

Explanation to RAL's OSD (Green FPS Counter which I've not seen discussed in any review BTW)

Ok, so I call this number the “EqFPS”, or “Equivalent FPS”. The meaning is as following: assuming you are GPU bound, this number represents the framerate you would need to have w/o Anti-Lag to achieve the same latency as you do with Anti-Lag. A bit confusing, I know - but in the end it will make sense.

You should you also run Fraps (I am guessing you are already doing that) to see both FPS and EqFPS next to each other. When RAL is enabled, if you press and hold the Right Ctrl key - you will effectively disable the RAL. In this case you should see the EqFPS go down and it should now match the FPS number (more or less).

The EqFPS is a just a representation of driver lag. The formula is:
EqFPS[Hz] = 2000 / DriverLag[ms]
DriverLag[ms] = 2000 / EqFPS[Hz]

In a normal (healthy) GPU-bound situation, without RAL and with 1 pre-rendered frame setting - the driver lag should equal exactly 2 frame times (on all platforms - AMD, Intel, NVidia, Android etc.). If you plug this into the above formula, you will see that EqFPS == FPS. RAL reduces the latency, therefore EqFPS increases - and the ratio gives you an idea of just how much lag you have now. EqFPS is not supposed to get larger than 2xFPS, but it can get close to it.

Also note, that in the CPU-bound case, the latency is (in a healthy situation) less than 2 GPU frames, therefore in this case you should be seeing EqFPS > FPS even when Anti-Lag is disabled, and Anti-Lag should have no (significant) effect on this value.
EastCoast is offline