obs-studio
obs-studio copied to clipboard
libobs-opengl,UI: Use Metal swap chain for non-blocking vsync
Description
Using the Metal swap chain allows us check when the swap chain is ready, so the graphics thread won't get stuck waiting on vsync.
There's also dormant HDR code that isn't turned on right now because it causes Qt to flicker like crazy.
Motivation and Context
Want preview/projectors to not tear, and also not block the graphics thread from making progress.
How Has This Been Tested?
Preview and projectors seem to work. Resize is fine. Ran temporary instrumentation to test present is skipped alternating for 120 FPS video on 60 Hz refresh.
Vsync settings are gone from Settings dialog, and tested that that a setting change still works.
Types of changes
- Tweak (non-breaking change to improve existing functionality)
Checklist:
- [x] My code has been run through clang-format.
- [x] I have read the contributing document.
- [x] My code is not on the master branch.
- [x] The code has been tested.
- [x] All commit messages are properly formatted and commits squashed where appropriate.
- [x] I have included updates to all appropriate documentation.
Retracting. Too many issues. Waiting for real Metal renderer.