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
|
META_EXPORT_TEST
|
||||||
MetaDevicePool * meta_backend_native_get_device_pool (MetaBackendNative *native);
|
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 */
|
#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));
|
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 *
|
MetaRenderDevice *
|
||||||
meta_backend_native_take_render_device (MetaBackendNative *backend_native,
|
meta_backend_native_take_render_device (MetaBackendNative *backend_native,
|
||||||
const char *device_path)
|
const char *device_path,
|
||||||
|
GError **error)
|
||||||
{
|
{
|
||||||
MetaRenderDevice *render_device;
|
MetaRenderDevice *render_device;
|
||||||
|
|
||||||
@ -1001,7 +1013,12 @@ meta_backend_native_take_render_device (MetaBackendNative *backend_native,
|
|||||||
device_path,
|
device_path,
|
||||||
NULL,
|
NULL,
|
||||||
(gpointer *) &render_device))
|
(gpointer *) &render_device))
|
||||||
return render_device;
|
{
|
||||||
|
return render_device;
|
||||||
|
}
|
||||||
else
|
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);
|
device_path = meta_gpu_kms_get_file_path (gpu_kms);
|
||||||
render_device = meta_backend_native_take_render_device (backend_native,
|
render_device = meta_backend_native_take_render_device (backend_native,
|
||||||
device_path);
|
device_path,
|
||||||
|
error);
|
||||||
if (!render_device)
|
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;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user