[mutter] renderer/native: Allow forcing EGLStream backend
- From: Marge Bot <marge-bot src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] renderer/native: Allow forcing EGLStream backend
- Date: Wed, 8 Dec 2021 16:18:04 +0000 (UTC)
commit d43cc776ef733251fc02e8e62669ea4ba7e68e2c
Author: Jonas Ã…dahl <jadahl gmail com>
Date: Fri Dec 3 11:07:00 2021 +0100
renderer/native: Allow forcing EGLStream backend
The GBM support in the NVIDIA driver is fairly new, and to make it
easier to identify whether a problem encountered is related to using GBM
instead of EGLStreams, add a debug environment variable to force using
EGLStream instead of GBM.
To force using EGLStream instead of GBM, use
MUTTER_DEBUG_FORCE_EGL_STREAM=1
Related: https://gitlab.gnome.org/GNOME/mutter/-/issues/2045
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2132>
src/backends/native/meta-renderer-native.c | 30 +++++++++++++++++++++---------
1 file changed, 21 insertions(+), 9 deletions(-)
---
diff --git a/src/backends/native/meta-renderer-native.c b/src/backends/native/meta-renderer-native.c
index 1b118ce062..4bcd00cb4c 100644
--- a/src/backends/native/meta-renderer-native.c
+++ b/src/backends/native/meta-renderer-native.c
@@ -1664,7 +1664,7 @@ meta_renderer_native_create_renderer_gpu_data (MetaRendererNative *renderer_nat
MetaBackend *backend = meta_renderer_get_backend (renderer);
MetaDevicePool *device_pool =
meta_backend_native_get_device_pool (META_BACKEND_NATIVE (backend));
- MetaRendererNativeGpuData *gbm_renderer_gpu_data;
+ MetaRendererNativeGpuData *gbm_renderer_gpu_data = NULL;
MetaDeviceFileFlags device_file_flags = META_DEVICE_FILE_FLAG_NONE;
g_autoptr (MetaDeviceFile) device_file = NULL;
GError *gbm_error = NULL;
@@ -1687,17 +1687,29 @@ meta_renderer_native_create_renderer_gpu_data (MetaRendererNative *renderer_nat
if (!device_file)
return NULL;
- gbm_renderer_gpu_data = create_renderer_gpu_data_gbm (renderer_native,
- device_file,
- gpu_kms,
- &gbm_error);
- if (gbm_renderer_gpu_data)
+#ifdef HAVE_EGL_DEVICE
+ if (g_strcmp0 (getenv ("MUTTER_DEBUG_FORCE_EGL_STREAM"), "1") != 0)
+#endif
{
- MetaRenderDevice *render_device = gbm_renderer_gpu_data->render_device;
+ gbm_renderer_gpu_data = create_renderer_gpu_data_gbm (renderer_native,
+ device_file,
+ gpu_kms,
+ &gbm_error);
+ if (gbm_renderer_gpu_data)
+ {
+ MetaRenderDevice *render_device = gbm_renderer_gpu_data->render_device;
- if (meta_render_device_is_hardware_accelerated (render_device))
- return gbm_renderer_gpu_data;
+ if (meta_render_device_is_hardware_accelerated (render_device))
+ return gbm_renderer_gpu_data;
+ }
}
+#ifdef HAVE_EGL_DEVICE
+ else
+ {
+ g_set_error (&gbm_error, G_IO_ERROR, G_IO_ERROR_FAILED,
+ "GBM backend was disabled using env var");
+ }
+#endif
#ifdef HAVE_EGL_DEVICE
egl_stream_renderer_gpu_data =
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]