Difference between revisions of "Glossary:Vertical sync (Vsync)"
m (→Properties: added notes about modern way of doing triple buffering + fast sync) |
m (initial pass to the force vsync option. Replaced GitHub link for Strangle to GitLab since GitHub ain't working no more. New: https://gitlab.com/torkel104/libstrangle) |
||
Line 30: | Line 30: | ||
Note that Vsync should not be used only as an FPS limit. If you only want to limit FPS drawn, for example to minimize heat and fan noise, but are not bothered by tearing and don't want to risk input lag, simply [[Glossary:Frame rate (FPS)#Frame rate capping|limit your FPS]] to that of your monitor's refresh rate or close to it. An FPS limit is often an option available as an in-game console command or similar. | Note that Vsync should not be used only as an FPS limit. If you only want to limit FPS drawn, for example to minimize heat and fan noise, but are not bothered by tearing and don't want to risk input lag, simply [[Glossary:Frame rate (FPS)#Frame rate capping|limit your FPS]] to that of your monitor's refresh rate or close to it. An FPS limit is often an option available as an in-game console command or similar. | ||
− | ==Force Vsync== | + | ==Force Vertical sync (Vsync)== |
− | {{Fixbox|description= | + | ===Vendor agnostic solution=== |
+ | {{Fixbox|description=D3DOverrider (Windows, DirectX)|fix= | ||
# Download and extract [http://community.pcgamingwiki.com/files/file/84-d3doverrider/ D3DOverrider] | # Download and extract [http://community.pcgamingwiki.com/files/file/84-d3doverrider/ D3DOverrider] | ||
# Open {{file|D3DOverrider.exe}}. | # Open {{file|D3DOverrider.exe}}. | ||
Line 37: | Line 38: | ||
# Make sure "Force triple buffering" and "Force VSync" are both enabled. | # Make sure "Force triple buffering" and "Force VSync" are both enabled. | ||
}} | }} | ||
+ | |||
+ | {{Fixbox|description=Strangle (Linux, OpenGL/Vulkan)|fix= | ||
+ | {{ii}} Also works for Wine | ||
+ | {{--}} Only works with applications that use OpenGL | ||
+ | # Download or clone the [https://gitlab.com/torkel104/libstrangle Strangle] and compile it according to instructions | ||
+ | # Use <code>strangle <number> path/to/game</code> command to run a game at desired framerate. | ||
+ | |||
+ | '''Notes''' | ||
+ | * You can also use <code>VSYNC=<0/1 or higher></code> before using the <code>strangle</code> command to enable the VSync instead of setting up the desired framerate. Higher than 1 will cause the software to set up a lower FPS by multiplying it by 1/<number you set in VSync>. So when it's set to 2 for example on a 120 Hz monitor, the software will run at 60 FPS, setting it to 4 will run the program at 30 FPS etc. | ||
+ | * Not confirmed, but according to the Readme of the software, setting it to -1 will use the Adaptive VSync. | ||
+ | * Can be also used on Steam via '''Set Launch Options...'''. Keep in mind that it won't work when Steam Overlay is enabled, unless it's placed at the end of '''LD_PRELOAD'''. | ||
+ | }} | ||
+ | |||
+ | ===AMD=== | ||
{{Fixbox|description=AMD only solution|fix= | {{Fixbox|description=AMD only solution|fix= | ||
# Download and install [http://www.radeonpro.info/ RadeonPro] | # Download and install [http://www.radeonpro.info/ RadeonPro] | ||
Line 51: | Line 66: | ||
}} | }} | ||
+ | ===Nvidia=== | ||
{{Fixbox|description=Nvidia Control Panel solution (Windows)|fix= | {{Fixbox|description=Nvidia Control Panel solution (Windows)|fix= | ||
# Open the Nvidia Control Panel | # Open the Nvidia Control Panel | ||
Line 67: | Line 83: | ||
# Set "Vertical Sync" to Force on | # Set "Vertical Sync" to Force on | ||
# Apply changes | # Apply changes | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
}} | }} | ||
==External links== | ==External links== | ||
* [[wikipedia:Analog television#Vertical synchronization|Vertical sync (Vsync)]] on Wikipedia | * [[wikipedia:Analog television#Vertical synchronization|Vertical sync (Vsync)]] on Wikipedia |
Revision as of 14:07, 1 September 2018
Graphics and video
Resolutions
Video settings
- Field of view (FOV)
- Windowed / borderless fullscreen
- Anisotropic filtering (AF)
- Anti-aliasing (AA)
- High-fidelity upscaling
- Vertical sync (Vsync)
- Frame rate (FPS)
- High dynamic range (HDR)
- Ray tracing (RT)
- Color blind mode
Hardware
For a list of games, see List of games that support vertical sync (Vsync).
Vertical synchronization is an option used to prevent screen tearing. Screen tearing is a graphical glitch which is perceived as straight horizontal lines across the monitor or as if the whole picture is stitched together by two or more separate pictures. This problem exists because the monitor and the graphics adapter normally works independently, so new frames may not be fully drawn when the monitor display them. Vsync makes the graphics adapter wait for the monitor to signal it's ready for the next frame to ensure all displayed frames are always fully drawn. This has the positive side effect of limiting the amount of frames per second the computer has to draw to the monitor refresh rate (the amount of frames per second the monitor is able to display) which saves resources. Unfortunately Vsync can also increase input lag.
Properties
Benefits
- Eliminates tearing by waiting for the monitor to signal it's ready for the next frame.
- Lower power consumption (and therefore heat and noise) by limiting FPS to what the monitor is able to display.
Disadvantages
- Introduces extra input lag. Commonly experienced as "mouse lag". The higher the monitor's refresh rate, the less input lag there will be.
- May decrease performance if FPS falls below the monitor refresh rate.
Limitations
- Only available in fullscreen exclusive mode (a borderless fullscreen window does not qualify).
- Not to be used when benchmarking since the FPS will be capped at the monitors refresh rate.
Double buffering vs. Triple buffering
- Nvidia's Fast Sync is an implementation for DirectX applications of the "older" way of doing triple buffering, where the oldest buffer would always be overwritten.[1]
- With double buffering, the GPU waits for the most recently rendered frame to get displayed before beginning work on the next frame. With triple buffering, the GPU starts working on the next frame after that in the third buffer and if that new frame completes first, that frame gets displayed next and the other frame in between gets discarded.
- The implementation of triple buffering differs; most modern DirectX games implementing the option as a sequential frame queue.[1] Nvidia owners can use Fast Sync to achieve "old school" triple buffering.
- Double buffering yields the most consistent frame rate while triple buffering can be slightly more responsive.
So what's the best option?
There is none and results will vary between different games, systems and people. If you're bothered by tearing or want the best visual quality, enable Vsync. If you're bothered by input lag or have performance problems, try Triple buffering for reduced input lag or completely disable Vsync for no input lag. If you're playing first-person shooters competitively, always disable.
Note that Vsync should not be used only as an FPS limit. If you only want to limit FPS drawn, for example to minimize heat and fan noise, but are not bothered by tearing and don't want to risk input lag, simply limit your FPS to that of your monitor's refresh rate or close to it. An FPS limit is often an option available as an in-game console command or similar.
Force Vertical sync (Vsync)
Vendor agnostic solution
D3DOverrider (Windows, DirectX) |
---|
|
Strangle (Linux, OpenGL/Vulkan) |
---|
Notes
|
AMD
AMD only solution |
---|
Notes
|
Nvidia
Nvidia Control Panel solution (Windows) |
---|
|
Nvidia only solution (Windows) |
---|
|
External links
- Vertical sync (Vsync) on Wikipedia
- "It’s interesting to note that Fast Sync isn’t a wholly new idea, but rather a modern and more consistent take on an old idea: triple buffering. While in modern times triple buffering is just a 3-deep buffer that is run through as a sequential frame queue, in the days of yore some games and video cards handled triple buffering a bit differently. Rather than using the 3 buffers as a sequential queue, they would instead always overwrite the oldest buffer. This small change had a potentially significant impact on input lag, and if you’re familiar with old school triple buffering, then you know where this is going.
With Fast Sync, NVIDIA has implemented old school triple buffering at the driver level, once again making it usable with modern cards. The purpose of implementing Fast Sync is to reduce input lag in modern games that can generate a frame rate higher than the refresh rate, with NVIDIA specifically targeting CS:GO and other graphically simple twitch games."