Look at this article: Triple Buffering: Why We Love It - Print View
According to this link, it’s possible to remove tearing and have a frame rate not limited by the refresh rate of the monitor (by frame rate here I mean the Update() function being called more than 60 times per second on a 60hz monitor).
To achieve this they suggest to use vsync off and triple buffer. At the very end of this article, they say that many developers thinks that a render queue functionality is the same as triple buffering but it’s not the same and it will not let you achieve the described results.
In Unity 3D there is this function QualitySettings.maxQueuedFrames, according to Dave Hampson from Unity (https://feedback.unity3d.com/suggestions/triple-buffering-vsync), when you set this to 2, it’s the same as Triple Buffering. But, according to this post of a moderator (Coroutines vs Update - Unity Engine - Unity Discussions), triple buffering is not implemented in Unity and never will be implemented.
So my questions are:
- Is this maxQueuedFrames = 2 the same as the Triple Buffering described in the article I have linked to on top?
- If not, then why is the real triple buffering not implemented and what is the difference between maxQueuedFrames and this real triple buffering?
- Most important question: is this possible in Unity3D to run the game logic more than 60 times per second on a 60hz monitor while avoiding tearing? I want to achieve this to reduce the input latency.
I hope someone will be able to answer, thank you in advance!