Merge branch 'frame-scheduler-helper' into 'master'

Draft: render: add frame scheduler helper

See merge request wlroots/wlroots!3783
This commit is contained in:
Simon Ser 2022-11-14 17:37:40 +00:00
commit e7737537ef
13 changed files with 479 additions and 7 deletions

View file

@ -32,6 +32,10 @@ struct wlr_gles2_tex_shader {
GLint tex_attrib;
};
// Fixed here, but missing from any libglvnd release:
// https://gitlab.freedesktop.org/glvnd/libglvnd/-/merge_requests/268
typedef void (GL_APIENTRYP PFNGLGETINTEGER64VEXTPROC) (GLenum pname, GLint64 *data);
struct wlr_gles2_renderer {
struct wlr_renderer wlr_renderer;
@ -48,6 +52,7 @@ struct wlr_gles2_renderer {
bool EXT_texture_type_2_10_10_10_REV;
bool OES_texture_half_float_linear;
bool EXT_texture_norm16;
bool EXT_disjoint_timer_query;
} exts;
struct {
@ -57,6 +62,11 @@ struct wlr_gles2_renderer {
PFNGLPOPDEBUGGROUPKHRPROC glPopDebugGroupKHR;
PFNGLPUSHDEBUGGROUPKHRPROC glPushDebugGroupKHR;
PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC glEGLImageTargetRenderbufferStorageOES;
PFNGLGETINTEGER64VEXTPROC glGetInteger64vEXT;
PFNGLGENQUERIESEXTPROC glGenQueriesEXT;
PFNGLDELETEQUERIESEXTPROC glDeleteQueriesEXT;
PFNGLQUERYCOUNTEREXTPROC glQueryCounterEXT;
PFNGLGETQUERYOBJECTI64VEXTPROC glGetQueryObjecti64vEXT;
} procs;
struct {
@ -112,6 +122,12 @@ struct wlr_gles2_texture {
struct wlr_addon buffer_addon;
};
struct wlr_gles2_timestamp {
struct wlr_render_timestamp base;
struct wlr_gles2_renderer *renderer;
GLuint query;
};
bool is_gles2_pixel_format_supported(const struct wlr_gles2_renderer *renderer,
const struct wlr_gles2_pixel_format *format);