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 <pekka.paalanen@collabora.com>
dev
Pekka Paalanen 4 years ago
parent 768f07cb38
commit 40c26a0b7c
  1. 5
      libweston/renderer-gl/gl-renderer-internal.h
  2. 13
      libweston/renderer-gl/gl-renderer.c
  3. 5
      libweston/renderer-gl/gl-shaders.c

@ -86,6 +86,8 @@ struct gl_shader {
struct gl_renderer { struct gl_renderer {
struct weston_renderer base; struct weston_renderer base;
struct weston_compositor *compositor;
bool fragment_shader_debug; bool fragment_shader_debug;
bool fan_debug; bool fan_debug;
struct weston_binding *fragment_binding; 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); const struct gl_shader_requirements *b);
struct weston_log_scope * struct weston_log_scope *
gl_shader_scope_create(struct weston_compositor *compositor, gl_shader_scope_create(struct gl_renderer *gr);
struct gl_renderer *gr);
#endif /* GL_RENDERER_INTERNAL_H */ #endif /* GL_RENDERER_INTERNAL_H */

@ -320,7 +320,6 @@ create_render_sync(struct gl_renderer *gr)
static void static void
timeline_submit_render_sync(struct gl_renderer *gr, timeline_submit_render_sync(struct gl_renderer *gr,
struct weston_compositor *ec,
struct weston_output *output, struct weston_output *output,
EGLSyncKHR sync, EGLSyncKHR sync,
enum timeline_render_point_type type) enum timeline_render_point_type type)
@ -330,13 +329,13 @@ timeline_submit_render_sync(struct gl_renderer *gr,
int fd; int fd;
struct timeline_render_point *trp; 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 || !gr->has_native_fence_sync ||
sync == EGL_NO_SYNC_KHR) sync == EGL_NO_SYNC_KHR)
return; return;
go = get_output_state(output); 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); fd = gr->dup_native_fence_fd(gr->egl_display, sync);
if (fd == EGL_NO_NATIVE_FENCE_FD_ANDROID) 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 /* 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. * the objects get assigned a valid sync file fd only after a gl flush.
*/ */
timeline_submit_render_sync(gr, compositor, output, timeline_submit_render_sync(gr, output, go->begin_render_sync,
go->begin_render_sync,
TIMELINE_RENDER_POINT_TYPE_BEGIN); 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); TIMELINE_RENDER_POINT_TYPE_END);
update_buffer_release_fences(compositor, output); update_buffer_release_fences(compositor, output);
@ -3608,10 +3606,11 @@ gl_renderer_display_create(struct weston_compositor *ec,
if (gr == NULL) if (gr == NULL)
return -1; return -1;
gr->compositor = ec;
wl_list_init(&gr->shader_list); wl_list_init(&gr->shader_list);
gr->platform = options->egl_platform; 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) if (!gr->shader_scope)
goto fail; goto fail;

@ -294,11 +294,10 @@ gl_shader_scope_new_subscription(struct weston_log_subscription *subs,
} }
struct weston_log_scope * struct weston_log_scope *
gl_shader_scope_create(struct weston_compositor *compositor, gl_shader_scope_create(struct gl_renderer *gr)
struct gl_renderer *gr)
{ {
return weston_compositor_add_log_scope(compositor, return weston_compositor_add_log_scope(gr->compositor,
"gl-shader-generator", "gl-shader-generator",
"GL renderer shader compilation and cache.\n", "GL renderer shader compilation and cache.\n",
gl_shader_scope_new_subscription, gl_shader_scope_new_subscription,

Loading…
Cancel
Save