mirror of
https://github.com/brl/mutter.git
synced 2025-02-02 23:03:00 +00:00
backend/native: Create MetaRenderDevice on_gpu_added when it does not exists
Fixes GNOME/mutter#2481 Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2676>
This commit is contained in:
parent
986d3be7ac
commit
c57a500ccb
@ -33,7 +33,9 @@ MetaBarrierManagerNative *meta_backend_native_get_barrier_manager (MetaBackendNa
|
||||
META_EXPORT_TEST
|
||||
MetaDevicePool * meta_backend_native_get_device_pool (MetaBackendNative *native);
|
||||
|
||||
MetaRenderDevice * meta_backend_native_take_render_device (MetaBackendNative *backend_native,
|
||||
const char *device_path);
|
||||
|
||||
MetaRenderDevice * meta_backend_native_take_render_device (MetaBackendNative *backend_native,
|
||||
const char *device_path,
|
||||
GError **error);
|
||||
|
||||
#endif /* META_BACKEND_NATIVE_PRIVATE_H */
|
||||
|
@ -991,9 +991,21 @@ void meta_backend_native_resume (MetaBackendNative *native)
|
||||
clutter_seat_ensure_a11y_state (CLUTTER_SEAT (seat));
|
||||
}
|
||||
|
||||
static MetaRenderDevice *
|
||||
meta_backend_native_create_render_device (MetaBackendNative *backend_native,
|
||||
const char *device_path,
|
||||
GError **error)
|
||||
{
|
||||
g_autoptr (MetaRenderDevice) render_device = NULL;
|
||||
|
||||
render_device = create_render_device (backend_native, device_path, error);
|
||||
return g_steal_pointer (&render_device);
|
||||
}
|
||||
|
||||
MetaRenderDevice *
|
||||
meta_backend_native_take_render_device (MetaBackendNative *backend_native,
|
||||
const char *device_path)
|
||||
meta_backend_native_take_render_device (MetaBackendNative *backend_native,
|
||||
const char *device_path,
|
||||
GError **error)
|
||||
{
|
||||
MetaRenderDevice *render_device;
|
||||
|
||||
@ -1001,7 +1013,12 @@ meta_backend_native_take_render_device (MetaBackendNative *backend_native,
|
||||
device_path,
|
||||
NULL,
|
||||
(gpointer *) &render_device))
|
||||
return render_device;
|
||||
{
|
||||
return render_device;
|
||||
}
|
||||
else
|
||||
return NULL;
|
||||
{
|
||||
return meta_backend_native_create_render_device (backend_native,
|
||||
device_path, error);
|
||||
}
|
||||
}
|
||||
|
@ -1781,11 +1781,10 @@ meta_renderer_native_create_renderer_gpu_data (MetaRendererNative *renderer_nat
|
||||
|
||||
device_path = meta_gpu_kms_get_file_path (gpu_kms);
|
||||
render_device = meta_backend_native_take_render_device (backend_native,
|
||||
device_path);
|
||||
device_path,
|
||||
error);
|
||||
if (!render_device)
|
||||
{
|
||||
g_set_error (error, G_IO_ERROR, G_IO_ERROR_NOT_FOUND,
|
||||
"No render device found for %s", device_path);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user