diff --git a/src/backends/native/meta-onscreen-native.c b/src/backends/native/meta-onscreen-native.c index 379ac3513..f8b9712fa 100644 --- a/src/backends/native/meta-onscreen-native.c +++ b/src/backends/native/meta-onscreen-native.c @@ -1578,6 +1578,8 @@ try_post_latest_swap (CoglOnscreen *onscreen) MetaRendererNative *renderer_native = renderer_gpu_data->renderer_native; MetaRenderer *renderer = META_RENDERER (renderer_native); MetaBackend *backend = meta_renderer_get_backend (renderer); + MetaBackendNative *backend_native = META_BACKEND_NATIVE (backend); + MetaKms *kms = meta_backend_native_get_kms (backend_native); MetaMonitorManager *monitor_manager = meta_backend_get_monitor_manager (backend); MetaOnscreenNative *onscreen_native = META_ONSCREEN_NATIVE (onscreen); @@ -1592,7 +1594,8 @@ try_post_latest_swap (CoglOnscreen *onscreen) int sync_fd; COGL_TRACE_SCOPED_ANCHOR (MetaRendererNativePostKmsUpdate); - if (onscreen_native->next_frame == NULL) + if (onscreen_native->next_frame == NULL || + meta_kms_is_shutting_down (kms)) return; power_save_mode = meta_monitor_manager_get_power_save_mode (monitor_manager);