From 40c26a0b7c3cb7aaafeafadeba2c50fda162417d Mon Sep 17 00:00:00 2001 From: Pekka Paalanen Date: Tue, 9 Feb 2021 17:31:11 +0200 Subject: [PATCH] gl-renderer: add compositor shorthand pointer One more thing is coming to need this, so add the compositor pointer and migrate existing places to use it where it simplifies things. Signed-off-by: Pekka Paalanen --- libweston/renderer-gl/gl-renderer-internal.h | 5 +++-- libweston/renderer-gl/gl-renderer.c | 13 ++++++------- libweston/renderer-gl/gl-shaders.c | 5 ++--- 3 files changed, 11 insertions(+), 12 deletions(-) diff --git a/libweston/renderer-gl/gl-renderer-internal.h b/libweston/renderer-gl/gl-renderer-internal.h index a03fbe8a..9c309f4e 100644 --- a/libweston/renderer-gl/gl-renderer-internal.h +++ b/libweston/renderer-gl/gl-renderer-internal.h @@ -86,6 +86,8 @@ struct gl_shader { struct gl_renderer { struct weston_renderer base; + struct weston_compositor *compositor; + bool fragment_shader_debug; bool fan_debug; struct weston_binding *fragment_binding; @@ -206,7 +208,6 @@ gl_shader_requirements_cmp(const struct gl_shader_requirements *a, const struct gl_shader_requirements *b); struct weston_log_scope * -gl_shader_scope_create(struct weston_compositor *compositor, - struct gl_renderer *gr); +gl_shader_scope_create(struct gl_renderer *gr); #endif /* GL_RENDERER_INTERNAL_H */ diff --git a/libweston/renderer-gl/gl-renderer.c b/libweston/renderer-gl/gl-renderer.c index e633bcbd..e4f9da37 100644 --- a/libweston/renderer-gl/gl-renderer.c +++ b/libweston/renderer-gl/gl-renderer.c @@ -320,7 +320,6 @@ create_render_sync(struct gl_renderer *gr) static void timeline_submit_render_sync(struct gl_renderer *gr, - struct weston_compositor *ec, struct weston_output *output, EGLSyncKHR sync, enum timeline_render_point_type type) @@ -330,13 +329,13 @@ timeline_submit_render_sync(struct gl_renderer *gr, int fd; struct timeline_render_point *trp; - if (!weston_log_scope_is_enabled(ec->timeline) || + if (!weston_log_scope_is_enabled(gr->compositor->timeline) || !gr->has_native_fence_sync || sync == EGL_NO_SYNC_KHR) return; go = get_output_state(output); - loop = wl_display_get_event_loop(ec->wl_display); + loop = wl_display_get_event_loop(gr->compositor->wl_display); fd = gr->dup_native_fence_fd(gr->egl_display, sync); if (fd == EGL_NO_NATIVE_FENCE_FD_ANDROID) @@ -1802,10 +1801,9 @@ gl_renderer_repaint_output(struct weston_output *output, /* We have to submit the render sync objects after swap buffers, since * the objects get assigned a valid sync file fd only after a gl flush. */ - timeline_submit_render_sync(gr, compositor, output, - go->begin_render_sync, + timeline_submit_render_sync(gr, output, go->begin_render_sync, TIMELINE_RENDER_POINT_TYPE_BEGIN); - timeline_submit_render_sync(gr, compositor, output, go->end_render_sync, + timeline_submit_render_sync(gr, output, go->end_render_sync, TIMELINE_RENDER_POINT_TYPE_END); update_buffer_release_fences(compositor, output); @@ -3608,10 +3606,11 @@ gl_renderer_display_create(struct weston_compositor *ec, if (gr == NULL) return -1; + gr->compositor = ec; wl_list_init(&gr->shader_list); gr->platform = options->egl_platform; - gr->shader_scope = gl_shader_scope_create(ec, gr); + gr->shader_scope = gl_shader_scope_create(gr); if (!gr->shader_scope) goto fail; diff --git a/libweston/renderer-gl/gl-shaders.c b/libweston/renderer-gl/gl-shaders.c index d5a7fe36..079cded5 100644 --- a/libweston/renderer-gl/gl-shaders.c +++ b/libweston/renderer-gl/gl-shaders.c @@ -294,11 +294,10 @@ gl_shader_scope_new_subscription(struct weston_log_subscription *subs, } struct weston_log_scope * -gl_shader_scope_create(struct weston_compositor *compositor, - struct gl_renderer *gr) +gl_shader_scope_create(struct gl_renderer *gr) { - return weston_compositor_add_log_scope(compositor, + return weston_compositor_add_log_scope(gr->compositor, "gl-shader-generator", "GL renderer shader compilation and cache.\n", gl_shader_scope_new_subscription,