render: add wlr_renderer_get_time()

This queries the current GPU time.

[1]: https://registry.khronos.org/OpenGL/extensions/EXT/EXT_disjoint_timer_query.txt

References: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3025
This commit is contained in:
Simon Ser 2022-09-23 21:55:29 +02:00
parent c07424411a
commit b4765809b5
5 changed files with 45 additions and 0 deletions

View file

@ -48,6 +48,7 @@ struct wlr_renderer_impl {
uint32_t (*get_render_buffer_caps)(struct wlr_renderer *renderer);
struct wlr_texture *(*texture_from_buffer)(struct wlr_renderer *renderer,
struct wlr_buffer *buffer);
bool (*get_time)(struct wlr_renderer *r, struct timespec *t);
};
void wlr_renderer_init(struct wlr_renderer *renderer,

View file

@ -14,6 +14,8 @@
#include <wlr/backend.h>
#include <wlr/render/wlr_texture.h>
struct timespec;
struct wlr_renderer_impl;
struct wlr_drm_format_set;
struct wlr_buffer;
@ -112,6 +114,11 @@ bool wlr_renderer_init_wl_shm(struct wlr_renderer *r,
*/
int wlr_renderer_get_drm_fd(struct wlr_renderer *r);
/**
* Get the current GPU time.
*/
bool wlr_renderer_get_time(struct wlr_renderer *r, struct timespec *t);
/**
* Destroys the renderer.
*