VSync
DonePerfect frame synchronization without tearing
VSync
Waxed handles all frame timing so your plugin doesn’t have to. Ensures tear-free rendering by synchronizing frame presentation with display refresh cycles.
How It Works
VSync (Vertical Synchronization) coordinates frame presentation with the display’s refresh cycle. When enabled, frames are only presented when the display is ready to accept them, preventing the visual artifact known as “tearing” where parts of multiple frames are visible simultaneously.
Core Implementation
Waxed implements VSync at the DRM/KMS level, using the atomic commit infrastructure to precisely time when frames appear on screen. This means:
- Zero plugin code required - VSync is handled entirely by the core
- Consistent behavior - All plugins get the same tear-free experience
- No configuration - Works out of the box with sensible defaults
Benefits for Plugin Developers
- No frame timing logic - Don’t worry about when to present frames
- Predictable rendering - Know exactly when frames will appear
- Smooth animations - Consistent frame pacing for UI effects
Technical Details
- Uses DRM atomic commits with page-flip events
- Integrates with the frame pipeline for optimal scheduling
- Works alongside triple buffering for reduced latency
- Compatible with VRR when displays support it
Plugin Integration
Frame presentation is handled automatically by the core. Plugins simply render to the provided surface, and Waxed handles timing.
Related Features
- Triple Buffering - Reduces latency with VSync
- Variable Refresh Rate - Adaptive sync support
- DRM Planes - Hardware compositing