cogl/onscreen: Add cogl_onscreen_egl_maybe_create_timestamp_query

Move the code out of cogl_onscreen_egl_swap_buffers_with_damage, and
call the new function from callers of the former.

v2:
* Use early return if the cogl context doesn't support timestamp
  queries. (Sebastian Wick)

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3689>
This commit is contained in:
Michel Dänzer
2024-04-09 18:28:40 +02:00
committed by Michel Dänzer
parent 0bbc25f694
commit 09267d0bdd
4 changed files with 29 additions and 13 deletions

View File

@ -1305,6 +1305,8 @@ meta_onscreen_native_swap_buffers_with_damage (CoglOnscreen *onscreen,
rectangles,
n_rectangles);
cogl_onscreen_egl_maybe_create_timestamp_query (onscreen, frame_info);
parent_class = COGL_ONSCREEN_CLASS (meta_onscreen_native_parent_class);
parent_class->swap_buffers_with_damage (onscreen,
rectangles,

View File

@ -186,6 +186,8 @@ meta_stage_x11_nested_finish_frame (ClutterStageWindow *stage_window,
}
frame_info = cogl_frame_info_new (context, 0);
cogl_onscreen_egl_maybe_create_timestamp_query (stage_x11->onscreen,
frame_info);
cogl_onscreen_swap_buffers (stage_x11->onscreen, frame_info, frame);
if (!clutter_frame_has_result (frame))