pub type PresentMode = PresentMode;Aliased Type§
#[repr(C)]pub enum PresentMode {
AutoVsync = 0,
AutoNoVsync = 1,
Fifo = 2,
FifoRelaxed = 3,
Immediate = 4,
Mailbox = 5,
}Variants§
AutoVsync = 0
Chooses the first supported mode out of:
Because of the fallback behavior, this is supported everywhere.
AutoNoVsync = 1
Chooses the first supported mode out of:
Because of the fallback behavior, this is supported everywhere.
Fifo = 2
Presentation frames are kept in a First-In-First-Out queue approximately 3 frames long. Every vertical blanking period, the presentation engine will pop a frame off the queue to display. If there is no frame to display, it will present the same frame again until the next vblank.
When a present command is executed on the GPU, the presented image is added on the queue.
Calls to Surface::get_current_texture() will block until there is a spot in the queue.
- Tearing: No tearing will be observed.
- Supported on: All platforms.
- Also known as: “Vsync On”
This is the default value for PresentMode.
If you don’t know what mode to choose, choose this mode.
FifoRelaxed = 3
Presentation frames are kept in a First-In-First-Out queue approximately 3 frames long. Every vertical blanking period, the presentation engine will pop a frame off the queue to display. If there is no frame to display, it will present the same frame until there is a frame in the queue. The moment there is a frame in the queue, it will immediately pop the frame off the queue.
When a present command is executed on the GPU, the presented image is added on the queue.
Calls to Surface::get_current_texture() will block until there is a spot in the queue.
- Tearing: Tearing will be observed if frames last more than one vblank as the front buffer.
- Supported on: AMD on Vulkan.
- Also known as: “Adaptive Vsync”
Immediate = 4
Presentation frames are not queued at all. The moment a present command is executed on the GPU, the presented image is swapped onto the front buffer immediately.
- Tearing: Tearing can be observed.
- Supported on: Most platforms except older DX12 and Wayland.
- Also known as: “Vsync Off”
Mailbox = 5
Presentation frames are kept in a single-frame queue. Every vertical blanking period, the presentation engine will pop a frame from the queue. If there is no frame to display, it will present the same frame again until the next vblank.
When a present command is executed on the GPU, the frame will be put into the queue. If there was already a frame in the queue, the new frame will replace the old frame on the queue.
- Tearing: No tearing will be observed.
- Supported on: DX12 on Windows 10, NVidia on Vulkan and Wayland on Vulkan.
- Also known as: “Fast Vsync”