One of the fans from Facebook Page encourage me to write a full post about the "Myth" of using 144Hz Monitor, based on one of the comments I have made to a Facebook Post.
In the post, I have attempted to clear the misconception that using a 144Hz (or 120Hz) monitor is a waste - since games are not working at 144fps all the time. I have briefly explained in the post that we should always use the highest Hz screen possible - for the best experience of smoothness in games - even if the fps doesn't reach the Hz of the screen.
Before we get into that, we have to first understand how the game works.
How the game (coding) works
All programs across all OSes run as loops, which means the code repatedly executed non-stop.
For non-games programs on Windows, there's a Windows Message Loop that captures information sent by the Windows system and then translates it into an application event - such as Mouse Click, Key Press. Games on Windows and also any OSes out there - there is also this loop, called "Game Loop" or "Main Loop." If you want to read more, go here.
For Game Loop, if translated into English in a way that everyone can understand roughly, it would be something like this.
While Game is Running
● Read User Input
● Process Game Rule and AI
● Set Polygons Position in Game World
● Send Data to GPU for Render
Back to Beginning (Loop)
From this very brief simulation of Game Loop, you can see that the part that the GPU is working on presenting things on your screen (monitor) is the last part of the loop. Before you could see into the game world - there are steps to be complete, that require the CPU to process.
- Read Input: Reading the status of Hardware such as which buttons on the keyboard is being pressed
- Process Game Rule and AI: For example, if you pressed W it means the player has to move forwward. And if the character still does not hit the wall, continue move the character forward. For AI - it is such as if the bot sees the player character then cast a spell at him.
- Set Polygons Position in Game World: After we know what will be going on in the game world, (Game State) we take a look at all of that data to create a three-dimensional graphics, cut only the part that is in front of the player (Culling) and send to the GPU.
- Send Data to GPU: Once all the polygon data is ready, the CPU will send those data along with the texture image to GPU - this is what called: Rasterization
A game loop like this runs once is called 1 frame of the game, and this game loop can run multiple times in 1 second, so we call it "Frames per Second" or fps. (FPS = First Person Shooter, which is not fps) As you can see, fps is not only dependent on GPU alone - but also the speed which the game state changes per second as well. Which is why some Racing Games, Console Games are locked to 30fps or 60fps - it makes programmer manage things easiler when we know the exact amount of time we have per frame to do stuff (60fps = 16.67 millseconds - which is quite a long time in coding terms)
This is the source of Input Lag, Network Latency, Interpolation Delay those fancy stuff that people talk about. It is also why the CPU clock speed affects the fps of the game, because the higher the clock speed, the faster the game loop can run, and Intel always claim that its consumer CPU is the "Best Gaming CPU".
Because Intel CPUs have high clock speeds and each clock has high output (meaning high IPC - which might not be true now) and each core sits all together (Monolithic Design) in a single piece of silicon so data can be shared faster. This seems a bit counterintuitive as AMD CPUs offer 30% more Core/Thread and the same price point. Well more cores should be better, right?
Add a little bit of CPU cores for playing games.
(Pictured: CPU AMD Zen architecture designed as "Chiplet". Several cores are joined together on a single package. There are 4-8 cores in one piece.)
It's not easy to distribute Game Loop tasks across multiple cores because game state usually require data from previous frame (data dependency) and also it should run sequentially. That is, we can't send data to the GPU until the polygons are created. And we can't define polygons, unless the Game Rule is finished running, and we can't run the Game Rule until the Input has finished reading, etc.
It's true that we can run AI for multiple characters at the same time using multiple CPU cores, but this distribution has another overhead, that is, we have to create a supervisor to supervise the process (called Synchronization). Moreover - each AI can affect the game state - so we will have to write a program so that every AI does not affect the world in the game at the same time (Mutual Exclusion) or it must not conflict with each other.
As for the bottleneck, don't worry too much about it, it does exist. However, most games are GPU Bound, which means the graphics card runs longer than the CPU in 1 frame.
Very few games are CPU Bound, CPU Bound games all tend to be simulation, strategy games - since running physic simulation and control 1,000 units obviously takes more time than shooting bullets at about 2-3 bullets per second to about 10 AI characters in FPS games.
Bottleneck is when the GPU doesn't load to 100% (that is, the GPU is running too fast for current settings), doesn't mean we have to go about and buy a new CPU - but it means that now we're still not using the graphics card fully. If you see less than 100% Load, just run at Higher resolution, enable Shadow or Anti-Alias and Ambient Occlusion - it will be 100% in no time!
Of course, the opposite is true, if we are going to play games that want to push the highest fps like CS:GO or Overwatch - we require highest possible clock speed. That is why LEVEL51 also have a model which use Desktop CPU but moderate level GPU - they are for people who do e-sports.
Principle of Display Output
Both ancient and modern screens need to be refreshed, which is to "activate" the chemicals inside the screen.
Even for LCD monitors (or LED monitors, which are LCD monitors that use LED to light up the image instead of Fluorescent Tube in the early days) of modern times, they still need to be stimulated as well. Otherwise, the image will fade - just that it doesn't need to refresh as often as CRT monitors. The only screen that does not have to be refreshes are e-ink monitors, the image just stays there because of magnetism so it barely use any power at all - but they are also slow to refresh.
Since the Screens require "refres" - even though you just leave your laptop on and listen to music - the GPU still has to send the same still image to the screen repeatedly. The rate at which the image is sent to this screen is known as the "Refresh Rate" and is always constant. Depending on the screen, such as 60Hz, 75Hz, 120Hz, 144Hz - by Hz or Hertz means the number of times per second for 60Hz, it is refreshed 60 times per second.
Frame Buffer is the area on GPU Memory (or your PC Memory) reserved for Monitor to "read" the current image to be display on screen. The action which monitor (essentially the display controller) read this image is called Scan.
The scan always happen in top to bottom fashion, at the rate equal to refresh rate of the monitor. That is for a 60Hz Refresh Rate, this Frame buffer will be Scanned 60 times per second. Note again that even the image does not change, this scan still happens.
Problems with the screen and the game not working at the same time
The simplest example of the problem is : Let's think back to when we sit in a car waiting to make a turn, the turn signal in each car in front of us will NOT blink at the same rate. But if we sit and look at it for a long time, there will be a moment that they blink in unison. (Fully Synchronized!) but after a while, the synchronization began to get worse - the worst that could happen is all car turn signal blink alternatively and not synchronized at all.
Game Loop and Display Refresh are the same as the turn signal, because Game Loop and Frame Buffer Scans are not the same program, they don't start at the same time, they don't synchronize - so sometimes they come together, but most of the time, they won't at all.
Why it could be a problem? Let's take a look together from this theoritical monitor which has resolution of 1000x1000 - that is there is 1000 lines on the screen and refresh rate of 100Hz
Currently, the Monitor has scanned 200 lines from the Game (Frame 1) which is blue color
Since the game is always running, suppose that it takes 1ms for the game to run (game is running at 1000fps), the monitor has scanned another 100 lines to line 300 from the Frame Buffer while the game is running. The game loop has finished running, so GPU have drawn a new image on Frame Buffer - which is now Frame 2 in the Orange color.
Why 1ms = 100 lines? Since there is 1000 Lines on the screen and refresh rate is 100Hz - that means each refresh is 10ms (1ms = 1/1000 second), and every 1ms the monitor can read 100 lines.
So, the blue image is gone and it is now Orange. (notice that the door also gets closer too!)
Third Frame works a bit slower and it took 2ms, and produce Green image. At this time, monitor already read the Orange image for 200 lines while the image already changed to Green (and position of the door is different)
Game Loop continues to work, but this frame is a bit slow, and took 5ms. So at this time, the monitor has just finished its refresh routine (10ms has passed) and we end up seeing 3 images from 3 previous frames while the 4th Frame is waiting to be displayed
This kind of phenomenon is known as Tearing, and it occurs at its worst when Game Loop (fps) and Refresh Rate are very different.
Tearing is worst when turning left and right or objects on the screen has a horizontal movement. We will see the characters in the game split into several pieces.
Double, Triple, Quad Buffer help?
Double Buffering (or Multiple Buffering) is to allow the video card and the screen to write/read Framebuffer from different places. In the case of Double Buffering, there will be 2 Framebuffers. The set that the screen is reading is called Front Buffer.
Drawing is going to Back Buffer and only after when the graphics card finished drawing, it will switch the Buffer (Buffer Swap) to exchange the Buffer with the screen and back buffer become front buffer. This helps make things faster since only GPU will have full access to Frame Buffer, but the mentioned Tearing problem still occurs,
Triple (3) or Quad (4) also won't fix ths Tearing because the intention was to wait until the image finished drawing before sending to Monitor (so we can apply Post-Processing effects such as blurring, color adjustments) not to fix tearing.
Nowadays, everything we can see on a computer screen is at least double buffering, and especially with newer versions of Windows, game screen painting always go to a buffer since Windows now manages the display itself and there is no longer an Exclusive Mode where the game can take away all screen views like the old days.
The technique that emerged to help resolve Tearing symptoms is Vertical Synchronization. Also known as V-Sync. By turning on this option in game, there will be a slight Game Loop change as follows:
While Game is Running
● Read User Input
● Process Game Rule and AI
● Set Polygons Position
● Send Data to GPU for Render to Back Buffer
● Wait For Current Scan To Complete (Vertical Synchronization)
● Swap Buffer
That is, after the game has instructed the GPU to draw on the buffer, it must wait until the screen finishes drawing. Then send a new image (buffer swap) so there is no way to Tearing at all because the game has to "wait" the screen first.
Turning on V-Sync solved the tearing problem, but instead caused a new problem: Input Lag. Which is the time it take for you to see your action (such as click mouse to fire a but) to be visible in game is too long and noticable.
Especially in the case of a 60Hz screen, which runs much slower than games and GPU nowadays. The longest possible (Worst Case Scenario) delay is 16.67ms, that is, the rendering of the graphics card already finished but the screen just started to read the first line of the last frame - so it is aboult 0.01 second that nothing has happend on the screen.
It also causes another problem: Stutter. This is when the screen is repeating the same image because there is no new image from the video card sent - see the explaining image from Nvidia for clearer understanding
Sounds 16ms, maybe not a lot, but if now try to open the Speed Test website, you will find that when the signal from our device Used to travel to find Test Server in Kathmandu and run back (Ping) is at 3ms and Ping from Nepal to Singapore Data Center in Overwatch is about 20-30ms!!!
How can a high refresh rate monitor help?
As already mentioned - if it's a very responsive game, we'll have to turn off V-Sync (actually it shouldn't, we HAVE to), but it will cause Tearing instead as mentioned above.
But with the screen having a very fast refresh rate, the chance of severe Tearing is fewer because the screen read the image very quickly, the chances of us noticing the tearing are also less - it will be usually in the bottom or top part of the screen if we really try to look.
Also for games that may not require that much agility to respond We can turn on V-Sync without causing too much Input Lag.
For 144Hz screens, the maximum delay time is only 6.94ms or almost equal to the speed that the crystal bar in the LCD screen can already rotate (Response Time), on the 300Hz screen, the delay time is only 3.33ms, the crystal in your monitors can barely keep up~ !!!
Also when the frame rate is lower than the refresh rate of the screen, it will cause another problem, namely the repetition of the image (Judder/Stutter) caused by amount of time between frames in the game is not constant. High Refresh Rate could help in this regard as well - We have put a 120Hz screen for customers who use a 950M video card, and it does feels smoother even though the fps is at "only" 30-40
In summary, Monitor is the Window into your game world - the faster it shows you new image, it will be "smoother" for your experience.
This is hard to explain in words - you can always visit our showroom to try! Just move the Window or cursor around will already made you feel addicted
What about G-Sync / FreeSync?
G-Sync and FreeSync are technologies in a group called Variable Refresh Rate, which are currently being added to the HDMI 2.1 standard (HDMI VRR). PS5, XBOX Series X are also supported. In the future, there should be more screens that support VRR.
This VRR technology does the opposite of V-Sync, that is, instead of the game having to wait for the Monitor to complete refresh, it let the Monitor to wait for the image from the game instead and then do the refresh. Exploiting the fact that the LCD screen actually does not need to be refreshed all the time and it can retain the original image for a bit. For example, the TV I'm using can have a minimum refresh at 24Hz and a maximum at 120Hz, that is, the refresh rate is not constant (Variable).
If anyone has ever played the screen FreeSync/G-Sync It should feel very smooth, but of course, since it's still "Syncing" anything that is programmed has to be synced means there will always be a wait. VRR only "reduces" input lag (notice the slide uses "Less", not No), but it doesn't eliminate input lag from waiting for the screen image.
How high is Good enough for Refresh Rate?
As we mentioned that Monitor is like the Window into your game world - the only way we can see information from the game world as quickly as possible is to be capturing images as often as possible.
Just take a look at this sample image from Nvidia - you can see that 60Hz monitor only "sees" the image from the Past, while 144 and 240Hz the image that you see is more recent and closely matches what the game state currently is.
How high is enough? I would say it's mainly about satisfaction. Going from 60 to 120/144, has very clear benefit, but 120/144 to 240 to 300 it's not as dramatic. However, if you like to play competitively, getting 300Hz panel is a good investment.
Let's take a look at Linus, they test the effect of 240 300 360 screen on player's performance.
But must not forget that There is also the issue of Response Time involved. For monitors with high refresh rates but high Response Time (mostly IPS Panels have higher response times than VA, and the minimum response time is TN) The time when the screen moves quickly. For example, facing left and right in the game, if the Response Time is high, the image will see a shadow as if Motion Blur is turned on (called Ghosting). Check out this video.
And another part that is used to make decisions is the sRGB Volume as well, the screen with a higher sRGB Volume will have more vivid colors, when playing some games, it will not have much effect. Because the game, often tunes the colors to it in a not very wide range. for all players Get images with similar colors, but when watching Netflix, it's much more satisfying. Let me tell you!
So - you deserve a 300Hz screen!
Thank you for reading until here. I hope it's helpful, if you like it, don't forget to share it with your friends.