mirror of
https://github.com/brl/mutter.git
synced 2025-07-23 18:11:23 +00:00
backend/native: Set CRTC gamma once per frame
Before we received new gamma updates via D-Bus and posted the update to KMS directly. This won't be possible with atomic KMS, since one can only update the state of a CRTC once per cycle. Thus, to handle this, when configured by D-Bus, only cache the value, and mark it as invalid. The next frame, the native renderer will pick up the newly cached gamma value and configure the CRTCs accordingly. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1488>
This commit is contained in:
@ -3283,6 +3283,19 @@ meta_renderer_native_rebuild_views (MetaRenderer *renderer)
|
||||
meta_renderer_native_queue_modes_reset (META_RENDERER_NATIVE (renderer));
|
||||
}
|
||||
|
||||
void
|
||||
meta_renderer_native_prepare_frame (MetaRendererNative *renderer_native,
|
||||
MetaRendererView *view,
|
||||
ClutterFrame *frame)
|
||||
{
|
||||
MetaCrtc *crtc = meta_renderer_view_get_crtc (view);
|
||||
MetaCrtcKms *crtc_kms = META_CRTC_KMS (crtc);
|
||||
MetaKmsCrtc *kms_crtc = meta_crtc_kms_get_kms_crtc (META_CRTC_KMS (crtc));
|
||||
MetaKmsDevice *kms_device = meta_kms_crtc_get_device (kms_crtc);;
|
||||
|
||||
meta_crtc_kms_maybe_set_gamma (crtc_kms, kms_device);
|
||||
}
|
||||
|
||||
static void
|
||||
add_onscreen_frame_info (MetaCrtc *crtc)
|
||||
{
|
||||
|
Reference in New Issue
Block a user