kms/update: Add meta_kms_update_get/set_sync_fd
v2: * Use g_steal_fd in meta_kms_update_merge_from. (Jonas Ådahl) Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3958> Signed-off-by: Mingi Sung <sungmg@saltyming.net>
This commit is contained in:
parent
011b6f7c96
commit
168839e317
2 changed files with 32 additions and 0 deletions
|
@ -20,6 +20,8 @@
|
||||||
#include "backends/native/meta-kms-update.h"
|
#include "backends/native/meta-kms-update.h"
|
||||||
#include "backends/native/meta-kms-update-private.h"
|
#include "backends/native/meta-kms-update-private.h"
|
||||||
|
|
||||||
|
#include <glib/gstdio.h>
|
||||||
|
|
||||||
#include "backends/meta-display-config-shared.h"
|
#include "backends/meta-display-config-shared.h"
|
||||||
#include "backends/native/meta-kms-connector.h"
|
#include "backends/native/meta-kms-connector.h"
|
||||||
#include "backends/native/meta-kms-crtc.h"
|
#include "backends/native/meta-kms-crtc.h"
|
||||||
|
@ -51,6 +53,8 @@ struct _MetaKmsUpdate
|
||||||
gboolean needs_modeset;
|
gboolean needs_modeset;
|
||||||
|
|
||||||
MetaKmsImplDevice *impl_device;
|
MetaKmsImplDevice *impl_device;
|
||||||
|
|
||||||
|
int sync_fd;
|
||||||
};
|
};
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -1136,6 +1140,8 @@ meta_kms_update_merge_from (MetaKmsUpdate *update,
|
||||||
merge_custom_page_flip_from (update, other_update);
|
merge_custom_page_flip_from (update, other_update);
|
||||||
merge_page_flip_listeners_from (update, other_update);
|
merge_page_flip_listeners_from (update, other_update);
|
||||||
merge_result_listeners_from (update, other_update);
|
merge_result_listeners_from (update, other_update);
|
||||||
|
|
||||||
|
meta_kms_update_set_sync_fd (update, g_steal_fd (&other_update->sync_fd));
|
||||||
}
|
}
|
||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
|
@ -1152,6 +1158,7 @@ meta_kms_update_new (MetaKmsDevice *device)
|
||||||
update = g_new0 (MetaKmsUpdate, 1);
|
update = g_new0 (MetaKmsUpdate, 1);
|
||||||
update->device = device;
|
update->device = device;
|
||||||
update->is_latchable = TRUE;
|
update->is_latchable = TRUE;
|
||||||
|
update->sync_fd = -1;
|
||||||
|
|
||||||
return update;
|
return update;
|
||||||
}
|
}
|
||||||
|
@ -1175,6 +1182,7 @@ meta_kms_update_free (MetaKmsUpdate *update)
|
||||||
g_list_free_full (update->crtc_color_updates,
|
g_list_free_full (update->crtc_color_updates,
|
||||||
(GDestroyNotify) meta_kms_crtc_color_updates_free);
|
(GDestroyNotify) meta_kms_crtc_color_updates_free);
|
||||||
g_clear_pointer (&update->custom_page_flip, meta_kms_custom_page_flip_free);
|
g_clear_pointer (&update->custom_page_flip, meta_kms_custom_page_flip_free);
|
||||||
|
g_clear_fd (&update->sync_fd, NULL);
|
||||||
|
|
||||||
g_free (update);
|
g_free (update);
|
||||||
}
|
}
|
||||||
|
@ -1200,6 +1208,23 @@ meta_kms_update_get_latch_crtc (MetaKmsUpdate *update)
|
||||||
return update->latch_crtc;
|
return update->latch_crtc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
meta_kms_update_get_sync_fd (MetaKmsUpdate *update)
|
||||||
|
{
|
||||||
|
return update->sync_fd;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
meta_kms_update_set_sync_fd (MetaKmsUpdate *update,
|
||||||
|
int sync_fd)
|
||||||
|
{
|
||||||
|
if (update->sync_fd == sync_fd)
|
||||||
|
return;
|
||||||
|
|
||||||
|
g_clear_fd (&update->sync_fd, NULL);
|
||||||
|
update->sync_fd = sync_fd;
|
||||||
|
}
|
||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
meta_kms_update_is_empty (MetaKmsUpdate *update)
|
meta_kms_update_is_empty (MetaKmsUpdate *update)
|
||||||
{
|
{
|
||||||
|
|
|
@ -157,6 +157,13 @@ void meta_kms_update_set_crtc_gamma (MetaKmsUpdate *update,
|
||||||
MetaKmsCrtc *crtc,
|
MetaKmsCrtc *crtc,
|
||||||
const MetaGammaLut *gamma);
|
const MetaGammaLut *gamma);
|
||||||
|
|
||||||
|
int
|
||||||
|
meta_kms_update_get_sync_fd (MetaKmsUpdate *update);
|
||||||
|
|
||||||
|
void
|
||||||
|
meta_kms_update_set_sync_fd (MetaKmsUpdate *update,
|
||||||
|
int sync_fd);
|
||||||
|
|
||||||
void meta_kms_plane_assignment_set_fb_damage (MetaKmsPlaneAssignment *plane_assignment,
|
void meta_kms_plane_assignment_set_fb_damage (MetaKmsPlaneAssignment *plane_assignment,
|
||||||
const int *rectangles,
|
const int *rectangles,
|
||||||
int n_rectangles);
|
int n_rectangles);
|
||||||
|
|
Loading…
Reference in a new issue