add render timer API

Based on five calls:
wlr_render_timer_create - creates a timer which can be reused across
  frames on the same renderer
wlr_renderer_begin_buffer_pass - now takes a timer so that backends can
  record when the rendering starts and finishes
wlr_render_timer_get_time - should be called as late as possible so that
  queries can make their way back from the GPU
wlr_render_timer_destroy - self-explanatory

The timer is exposed as an opaque `struct wlr_render_timer` so that
backends can store whatever they want in there.
This commit is contained in:
Rose Hudson 2023-06-02 10:25:07 +01:00 committed by Simon Ser
parent bd834fe8d1
commit 9e8947e4d5
19 changed files with 87 additions and 23 deletions

View file

@ -1673,7 +1673,7 @@ bool wlr_scene_output_commit(struct wlr_scene_output *scene_output) {
wlr_damage_ring_get_buffer_damage(&scene_output->damage_ring,
buffer_age, &damage);
struct wlr_render_pass *render_pass = wlr_renderer_begin_buffer_pass(renderer, buffer);
struct wlr_render_pass *render_pass = wlr_renderer_begin_buffer_pass(renderer, buffer, NULL);
if (render_pass == NULL) {
pixman_region32_fini(&damage);
wlr_buffer_unlock(buffer);