From 38181e1748aa8f22c77bffbf2bbb4692104a3e74 Mon Sep 17 00:00:00 2001
From: Philipp Zabel
Date: Wed, 7 Jun 2023 11:15:09 +0200
Subject: [PATCH] gl-renderer: split buffer age query out of output_get_damage
Split the buffer age query out into a separate function.
The following patches will replace the remainder of the
output_get_damage function.
Signed-off-by: Philipp Zabel
---
libweston/renderer-gl/gl-renderer.c | 19 +++++++++++++++----
1 file changed, 15 insertions(+), 4 deletions(-)
diff --git a/libweston/renderer-gl/gl-renderer.c b/libweston/renderer-gl/gl-renderer.c
index 4a6da14f4..d913e8352 100644
--- a/libweston/renderer-gl/gl-renderer.c
+++ b/libweston/renderer-gl/gl-renderer.c
@@ -1538,15 +1538,13 @@ output_get_border_damage(struct weston_output *output,
}
}
-static void
-output_get_damage(struct weston_output *output,
- pixman_region32_t *buffer_damage, uint32_t *border_damage)
+static int
+output_get_buffer_age(struct weston_output *output)
{
struct gl_output_state *go = get_output_state(output);
struct gl_renderer *gr = get_renderer(output->compositor);
EGLint buffer_age = 0;
EGLBoolean ret;
- int i;
if (gr->has_egl_buffer_age || gr->has_egl_partial_update) {
ret = eglQuerySurface(gr->egl_display, go->egl_surface,
@@ -1559,6 +1557,19 @@ output_get_damage(struct weston_output *output,
buffer_age = 1;
}
+ return buffer_age;
+}
+
+static void
+output_get_damage(struct weston_output *output,
+ pixman_region32_t *buffer_damage, uint32_t *border_damage)
+{
+ struct gl_output_state *go = get_output_state(output);
+ int buffer_age;
+ int i;
+
+ buffer_age = output_get_buffer_age(output);
+
if (buffer_age == 0 || buffer_age - 1 > BUFFER_DAMAGE_COUNT) {
pixman_region32_copy(buffer_damage, &output->region);
*border_damage = BORDER_ALL_DIRTY;