onscreen/native: Remove frame parameter from flip_crtc

It's always equal to `onscreen_native->next_frame` and we can't eliminate
that copy so easily. Removing the parameter removes all ambiguity about
where the next frame will come from.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3829>
This commit is contained in:
Daniel van Vugt
2024-06-21 13:41:03 +08:00
committed by Marge Bot
parent 5cfbe2528c
commit 88b7f00085

View File

@ -480,12 +480,12 @@ meta_onscreen_native_flip_crtc (CoglOnscreen *onscreen,
MetaKmsUpdate *kms_update, MetaKmsUpdate *kms_update,
MetaKmsAssignPlaneFlag flags, MetaKmsAssignPlaneFlag flags,
const int *rectangles, const int *rectangles,
int n_rectangles, int n_rectangles)
ClutterFrame *frame)
{ {
MetaOnscreenNative *onscreen_native = META_ONSCREEN_NATIVE (onscreen); MetaOnscreenNative *onscreen_native = META_ONSCREEN_NATIVE (onscreen);
MetaRendererNative *renderer_native = onscreen_native->renderer_native; MetaRendererNative *renderer_native = onscreen_native->renderer_native;
MetaFrameNative *frame_native = meta_frame_native_from_frame (frame); ClutterFrame *frame = onscreen_native->next_frame;
MetaFrameNative *frame_native;
MetaGpuKms *render_gpu = onscreen_native->render_gpu; MetaGpuKms *render_gpu = onscreen_native->render_gpu;
MetaCrtcKms *crtc_kms = META_CRTC_KMS (crtc); MetaCrtcKms *crtc_kms = META_CRTC_KMS (crtc);
MetaKmsCrtc *kms_crtc = meta_crtc_kms_get_kms_crtc (crtc_kms); MetaKmsCrtc *kms_crtc = meta_crtc_kms_get_kms_crtc (crtc_kms);
@ -500,6 +500,8 @@ meta_onscreen_native_flip_crtc (CoglOnscreen *onscreen,
COGL_TRACE_BEGIN_SCOPED (MetaOnscreenNativeFlipCrtcs, COGL_TRACE_BEGIN_SCOPED (MetaOnscreenNativeFlipCrtcs,
"Meta::OnscreenNative::flip_crtc()"); "Meta::OnscreenNative::flip_crtc()");
g_return_if_fail (frame);
gpu_kms = META_GPU_KMS (meta_crtc_get_gpu (crtc)); gpu_kms = META_GPU_KMS (meta_crtc_get_gpu (crtc));
g_assert (meta_gpu_kms_is_crtc_active (gpu_kms, crtc)); g_assert (meta_gpu_kms_is_crtc_active (gpu_kms, crtc));
@ -509,6 +511,7 @@ meta_onscreen_native_flip_crtc (CoglOnscreen *onscreen,
switch (renderer_gpu_data->mode) switch (renderer_gpu_data->mode)
{ {
case META_RENDERER_NATIVE_MODE_GBM: case META_RENDERER_NATIVE_MODE_GBM:
frame_native = meta_frame_native_from_frame (frame);
buffer = meta_frame_native_get_buffer (frame_native); buffer = meta_frame_native_get_buffer (frame_native);
scanout = meta_frame_native_get_scanout (frame_native); scanout = meta_frame_native_get_scanout (frame_native);
@ -1426,8 +1429,7 @@ meta_onscreen_native_swap_buffers_with_damage (CoglOnscreen *onscreen,
kms_update, kms_update,
META_KMS_ASSIGN_PLANE_FLAG_NONE, META_KMS_ASSIGN_PLANE_FLAG_NONE,
rectangles, rectangles,
n_rectangles, n_rectangles);
frame);
} }
else else
{ {
@ -1672,8 +1674,7 @@ meta_onscreen_native_direct_scanout (CoglOnscreen *onscreen,
kms_update, kms_update,
META_KMS_ASSIGN_PLANE_FLAG_DIRECT_SCANOUT, META_KMS_ASSIGN_PLANE_FLAG_DIRECT_SCANOUT,
NULL, NULL,
0, 0);
frame);
meta_topic (META_DEBUG_KMS, meta_topic (META_DEBUG_KMS,
"Posting direct scanout update for CRTC %u (%s)", "Posting direct scanout update for CRTC %u (%s)",