kms-impl-simple: Add fake cursor planes if no real ones
Non-atomic drivers may support drmModeSetCursor() even if no cursor plane is advertised. To deal with this, add a fake cursor plane for every CRTC when using MetaKmsImplSimple. This will eventually be translated to drmModeSetCursor() calls without any explicit cursor plane usage. Fixes: https://gitlab.gnome.org/GNOME/mutter/issues/1058 https://gitlab.gnome.org/GNOME/mutter/merge_requests/1079
This commit is contained in:

committed by
Florian Müllner

parent
79920d66d4
commit
227eea1e31
@ -221,6 +221,22 @@ meta_kms_device_dispatch_sync (MetaKmsDevice *device,
|
||||
return meta_kms_flush_callbacks (device->kms);
|
||||
}
|
||||
|
||||
void
|
||||
meta_kms_device_add_fake_plane_in_impl (MetaKmsDevice *device,
|
||||
MetaKmsPlaneType plane_type,
|
||||
MetaKmsCrtc *crtc)
|
||||
{
|
||||
MetaKmsImplDevice *impl_device = device->impl_device;
|
||||
MetaKmsPlane *plane;
|
||||
|
||||
meta_assert_in_kms_impl (device->kms);
|
||||
|
||||
plane = meta_kms_impl_device_add_fake_plane (impl_device,
|
||||
plane_type,
|
||||
crtc);
|
||||
device->planes = g_list_append (device->planes, plane);
|
||||
}
|
||||
|
||||
typedef struct _CreateImplDeviceData
|
||||
{
|
||||
MetaKmsDevice *device;
|
||||
|
Reference in New Issue
Block a user