From 4de2ebf95437e36f127ce01237bb122ee5998bbc Mon Sep 17 00:00:00 2001 From: Junkui Zhang <364772080@qq.com> Date: Wed, 23 Jul 2025 17:16:42 +0800 Subject: [PATCH] acctually enable vsync --- crates/gpui/src/platform/windows/directx_renderer.rs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/crates/gpui/src/platform/windows/directx_renderer.rs b/crates/gpui/src/platform/windows/directx_renderer.rs index ba7333acd895794fff2d9a00c6791117f03e6da3..b12ecebb5e2588bc78b87e1b896682314bc04ed0 100644 --- a/crates/gpui/src/platform/windows/directx_renderer.rs +++ b/crates/gpui/src/platform/windows/directx_renderer.rs @@ -191,7 +191,7 @@ impl DirectXRenderer { self.devices .device_context .OMSetRenderTargets(Some(&self.resources.render_target_view), None); - let result = self.resources.swap_chain.Present(0, DXGI_PRESENT(0)); + let result = self.resources.swap_chain.Present(1, DXGI_PRESENT(0)); // Presenting the swap chain can fail if the DirectX device was removed or reset. if result == DXGI_ERROR_DEVICE_REMOVED || result == DXGI_ERROR_DEVICE_RESET { let reason = self.devices.device.GetDeviceRemovedReason(); @@ -506,6 +506,14 @@ impl DirectXRenderer { .context("Failed to get gpu driver info") .log_err() .unwrap_or("Unknown Driver".to_string()); + match unsafe { + self.devices + .device + .CheckMultisampleQualityLevels(RENDER_TARGET_FORMAT, MULTISAMPLE_COUNT) + } { + Ok(level) => println!("=> Multisample quality levels: {}", level), + Err(err) => println!("Failed to check multisample quality levels: {:?}", err), + } Ok(GpuSpecs { is_software_emulated, device_name,