From bfb4a3097f4f6635e9068aafc2c96348d818b3ee Mon Sep 17 00:00:00 2001 From: Leigh Scott Date: Fri, 19 Dec 2025 08:17:43 +0000 Subject: [PATCH] Wayland: Fix nvidia refresh rate when running nvidia driver --- src/backends/native/meta-renderer-native.c | 30 +++++++++++----------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/src/backends/native/meta-renderer-native.c b/src/backends/native/meta-renderer-native.c index 7e75ab9fd..f724a3dd8 100644 --- a/src/backends/native/meta-renderer-native.c +++ b/src/backends/native/meta-renderer-native.c @@ -3698,29 +3698,29 @@ meta_renderer_native_create_renderer_gpu_data (MetaRendererNative *renderer_nat GError *egl_device_error = NULL; #endif -#ifdef HAVE_EGL_DEVICE - /* Try to initialize the EGLDevice backend first. Whenever we use a - * non-NVIDIA GPU, the EGLDevice enumeration function won't find a match, and - * we'll fall back to GBM (which will always succeed as it has a software - * rendering fallback) + /* Try to initialize the GBM backend first. GBM provides better compatibility + * across different GPU vendors and has robust fallback mechanisms including + * software rendering when needed. */ - renderer_gpu_data = create_renderer_gpu_data_egl_device (renderer_native, - gpu_kms, - &egl_device_error); - if (renderer_gpu_data) - return renderer_gpu_data; -#endif - renderer_gpu_data = create_renderer_gpu_data_gbm (renderer_native, gpu_kms, &gbm_error); if (renderer_gpu_data) - { + return renderer_gpu_data; + #ifdef HAVE_EGL_DEVICE - g_error_free (egl_device_error); -#endif + /* Fall back to EGLDevice backend (primarily for NVIDIA proprietary drivers + * where it may provide better performance or features) + */ + renderer_gpu_data = create_renderer_gpu_data_egl_device (renderer_native, + gpu_kms, + &egl_device_error); + if (renderer_gpu_data) + { + g_error_free (gbm_error); return renderer_gpu_data; } +#endif g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,