From 76f74f55a40bfaf6e1d73f5da23d1b067b1e37c2 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Tue, 13 Feb 2024 15:11:40 -0500 Subject: [PATCH] egl/wayland: add a separate hook for kopper buffer age this otherwise hits the swrast one which is wrong Acked-by: Daniel Stone Part-of: --- src/egl/drivers/dri2/platform_wayland.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/egl/drivers/dri2/platform_wayland.c b/src/egl/drivers/dri2/platform_wayland.c index 6978fef05e7..773510abe5d 100644 --- a/src/egl/drivers/dri2/platform_wayland.c +++ b/src/egl/drivers/dri2/platform_wayland.c @@ -2561,6 +2561,18 @@ dri2_wl_swrast_swap_buffers(_EGLDisplay *disp, _EGLSurface *draw) return EGL_TRUE; } +static EGLint +dri2_wl_kopper_query_buffer_age(_EGLDisplay *disp, _EGLSurface *surface) +{ + struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp); + struct dri2_egl_surface *dri2_surf = dri2_egl_surface(surface); + + /* This can legitimately be null for lavapipe */ + if (dri2_dpy->kopper) + return dri2_dpy->kopper->queryBufferAge(dri2_surf->dri_drawable); + return 0; +} + static EGLint dri2_wl_swrast_query_buffer_age(_EGLDisplay *disp, _EGLSurface *surface) { @@ -2640,7 +2652,7 @@ static const struct dri2_egl_display_vtbl dri2_wl_kopper_display_vtbl = { .swap_buffers = dri2_wl_swrast_swap_buffers, .swap_buffers_with_damage = dri2_wl_swrast_swap_buffers_with_damage, .get_dri_drawable = dri2_surface_get_dri_drawable, - .query_buffer_age = dri2_wl_swrast_query_buffer_age, + .query_buffer_age = dri2_wl_kopper_query_buffer_age, }; static const __DRIswrastLoaderExtension swrast_loader_extension = {