File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff 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 ,
You can’t perform that action at this time.
0 commit comments