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:
Jonas Ådahl
2020-02-21 12:06:28 +01:00
committed by Florian Müllner
parent 79920d66d4
commit 227eea1e31
12 changed files with 133 additions and 8 deletions

View File

@ -27,12 +27,12 @@
#include "backends/native/meta-kms-types.h"
#include "backends/meta-monitor-transform.h"
typedef enum _MetaKmsPlaneType
enum _MetaKmsPlaneType
{
META_KMS_PLANE_TYPE_PRIMARY,
META_KMS_PLANE_TYPE_CURSOR,
META_KMS_PLANE_TYPE_OVERLAY,
} MetaKmsPlaneType;
};
#define META_TYPE_KMS_PLANE meta_kms_plane_get_type ()
G_DECLARE_FINAL_TYPE (MetaKmsPlane, meta_kms_plane,