Minecraft: Bedrock Edition on Windows doesn't opt in for Screen Tearing causing V-Sync Off to not behave correctly.
Examples:
Game FPS capped 2x the refresh rate.
Capped FPS in fullscreen but Uncapped in windowed.
The root issue seems to be how the game is requesting V-Sync to be turned off.
By using PresentMon, a tool that allows us to see performance metrics of a graphical application we can see how IDXGISwapChain::Present() is being called.
Make sure to download their CLI tool & not their installer for PresentMon!
Using the following command in an admin Command Prompt window with gfx_vsync set to 0 disable V-Sync ingame:
presentmon.exe -no_csv -process_name Minecraft.Windows.exe
Minecraft: Bedrock Edition internally calls the function as follows:
IDXGISwapChain::Present(0, 0)
Technically this does disable V-Sync but as mentioned before it doesn't behave as intended.
[media]My monitor is 75 Hz & as you can see it's capped double the refresh rate.
Microsoft's Documentation for IDXGISwapchain::Present flags specifically mentions DXGI_PRESENT_ALLOW_TEARING must be used in an windowed application to allow for screen tearing as well as the swapchain having screen tearing support via DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING.
For demonstration purposes, here is the game modded to add screen tearing support.
This is done by:
Hooking IDXGISwapchain::Present(), IDXGISwapchain::ResizeBuffers() & IDXGIFactory2::CreateSwapChainForCoreWindow.
Add screen tearing support via flags as required.
Ā
[media]As you can see as soon as we add screen tearing support, V-Sync works as intended.
Additionally this also fixes MCPE-98861 since V-Sync off works as intended.
Linked issues
duplicates 1
Attachments
Comments 3
Thank you for your report!
We're tracking this issue in MCPE-110006 and MCPE-166745, so this ticket is being resolved and linked as a duplicate.
If you would like to add a vote and any extra information to the main ticket it would be appreciated.
If you haven't already, you might like to make use of the search feature to see if the issue has already been mentioned.
Quick Links:
š Bug Tracker Guidelines ā š¬ Community Support ā š§ Mojang Support (Technical Issues) ā š§ Microsoft Support (Account Issues)
š Project Summary ā āļø Feedback and Suggestions ā š Game Wiki
-- I am a bot. This action was performed automatically! The ticket was resolved by one of our moderators, and I left this message to give more information to you.
For those you want to try out demonstrated fix, please check out Stonecutter which is available on my GitHub.
I recommend going through the source code for "src/DllMain.c" which contains the V-Sync fix.
I am hopeful Mojang goes out of their way & fixes this V-Sync issue once & for all.