backends: force enable modifiers on tagged devices

Some devices can't scanout to linear buffers directly as the hw is not
capable of eg rendering into a linear depth buffer.

Add code to force kms-modifiers on udev taged devices.

Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/1408

https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1443
This commit is contained in:
Karol Herbst
2020-09-14 20:36:17 +02:00
parent 82fffacbae
commit 9b9b912765
12 changed files with 66 additions and 0 deletions

View File

@ -320,6 +320,12 @@ meta_renderer_native_get_egl (MetaRendererNative *renderer_native)
return meta_backend_get_egl (meta_renderer_get_backend (renderer));
}
gboolean
meta_renderer_native_use_modifiers (MetaRendererNative *renderer_native)
{
return renderer_native->use_modifiers;
}
static MetaEgl *
meta_onscreen_native_get_egl (MetaOnscreenNative *onscreen_native)
{
@ -3804,6 +3810,9 @@ meta_renderer_native_initable_init (GInitable *initable,
if (!renderer_native->primary_gpu_kms)
return FALSE;
if (meta_gpu_kms_requires_modifiers (renderer_native->primary_gpu_kms))
renderer_native->use_modifiers = TRUE;
return TRUE;
}