Skip to content

Commit db93b03

Browse files
wayland: Prefer gbm over EGL (nvidia) (#773)
1 parent 4e4de5f commit db93b03

1 file changed

Lines changed: 15 additions & 15 deletions

File tree

src/backends/native/meta-renderer-native.c

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3809,29 +3809,29 @@ meta_renderer_native_create_renderer_gpu_data (MetaRendererNative *renderer_nat
38093809
GError *egl_device_error = NULL;
38103810
#endif
38113811

3812-
#ifdef HAVE_EGL_DEVICE
3813-
/* Try to initialize the EGLDevice backend first. Whenever we use a
3814-
* non-NVIDIA GPU, the EGLDevice enumeration function won't find a match, and
3815-
* we'll fall back to GBM (which will always succeed as it has a software
3816-
* rendering fallback)
3812+
/* Try to initialize the GBM backend first. GBM provides better compatibility
3813+
* across different GPU vendors and has robust fallback mechanisms including
3814+
* software rendering when needed.
38173815
*/
3818-
renderer_gpu_data = create_renderer_gpu_data_egl_device (renderer_native,
3819-
gpu_kms,
3820-
&egl_device_error);
3821-
if (renderer_gpu_data)
3822-
return renderer_gpu_data;
3823-
#endif
3824-
38253816
renderer_gpu_data = create_renderer_gpu_data_gbm (renderer_native,
38263817
gpu_kms,
38273818
&gbm_error);
38283819
if (renderer_gpu_data)
3829-
{
3820+
return renderer_gpu_data;
3821+
38303822
#ifdef HAVE_EGL_DEVICE
3831-
g_error_free (egl_device_error);
3832-
#endif
3823+
/* Fall back to EGLDevice backend (primarily for NVIDIA proprietary drivers
3824+
* where it may provide better performance or features)
3825+
*/
3826+
renderer_gpu_data = create_renderer_gpu_data_egl_device (renderer_native,
3827+
gpu_kms,
3828+
&egl_device_error);
3829+
if (renderer_gpu_data)
3830+
{
3831+
g_error_free (gbm_error);
38333832
return renderer_gpu_data;
38343833
}
3834+
#endif
38353835

38363836
g_set_error (error, G_IO_ERROR,
38373837
G_IO_ERROR_FAILED,

0 commit comments

Comments
 (0)