From 1c7d6584a7811b7785ae5c1e378f14b5ba0971cf Mon Sep 17 00:00:00 2001 From: takeshi_hoshina Date: Mon, 2 Nov 2020 11:07:33 +0900 Subject: basesystem-jj recipes --- ...mpositor-add-output-type-to-weston_output.patch | 254 --------------------- 1 file changed, 254 deletions(-) delete mode 100644 meta-agl/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0016-compositor-add-output-type-to-weston_output.patch (limited to 'meta-agl/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0016-compositor-add-output-type-to-weston_output.patch') diff --git a/meta-agl/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0016-compositor-add-output-type-to-weston_output.patch b/meta-agl/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0016-compositor-add-output-type-to-weston_output.patch deleted file mode 100644 index 6b93b06e..00000000 --- a/meta-agl/meta-agl-profile-graphical/recipes-graphics/wayland/weston/0016-compositor-add-output-type-to-weston_output.patch +++ /dev/null @@ -1,254 +0,0 @@ -From 8ea60075d5310101bebedf09c94902e9d41432ac Mon Sep 17 00:00:00 2001 -From: Veeresh Kadasani -Date: Mon, 29 Jul 2019 17:04:12 +0900 -Subject: [PATCH 1/3] compositor: add output type to weston_output - -This enables weston to use multiple types of backend -Each backends have own output structure for each functions -To avoid invalid member access, type identifier is needed - -Signed-off-by: Veeresh Kadasani ---- - libweston/compositor-drm.c | 78 +++++++++++++++++++++++------------------ - libweston/compositor-fbdev.c | 2 +- - libweston/compositor-headless.c | 2 +- - libweston/compositor-rdp.c | 2 +- - libweston/compositor-wayland.c | 2 +- - libweston/compositor-x11.c | 2 +- - libweston/compositor.h | 12 ++++++- - 7 files changed, 60 insertions(+), 40 deletions(-) - -diff --git a/libweston/compositor-drm.c b/libweston/compositor-drm.c -index 3891176..26a480c 100644 ---- a/libweston/compositor-drm.c -+++ b/libweston/compositor-drm.c -@@ -843,8 +843,9 @@ drm_output_find_by_crtc(struct drm_backend *b, uint32_t crtc_id) - struct drm_output *output; - - wl_list_for_each(output, &b->compositor->output_list, base.link) { -- if (output->crtc_id == crtc_id) -- return output; -+ if(output->base.output_type == OUTPUT_DRM) -+ if (output->crtc_id == crtc_id) -+ return output; - } - - return NULL; -@@ -859,7 +860,8 @@ drm_head_find_by_connector(struct drm_backend *backend, uint32_t connector_id) - wl_list_for_each(base, - &backend->compositor->head_list, compositor_link) { - head = to_drm_head(base); -- if (head->connector_id == connector_id) -+ if(base->output->output_type == OUTPUT_DRM) -+ if (head->connector_id == connector_id) - return head; - } - -@@ -5728,6 +5730,7 @@ drm_output_enable(struct weston_output *base) - drmModeRes *resources; - int ret; - -+ output->base.output_type = OUTPUT_DRM; - resources = drmModeGetResources(b->drm.fd); - if (!resources) { - weston_log("drmModeGetResources failed\n"); -@@ -6188,23 +6191,25 @@ drm_backend_update_heads(struct drm_backend *b, struct udev_device *drm_device) - /* Remove connectors that have disappeared. */ - wl_list_for_each_safe(base, next, - &b->compositor->head_list, compositor_link) { -- bool removed = true; -+ if (base->output->output_type == OUTPUT_DRM) { -+ bool removed = true; - -- head = to_drm_head(base); -+ head = to_drm_head(base); - -- for (i = 0; i < resources->count_connectors; i++) { -- if (resources->connectors[i] == head->connector_id) { -- removed = false; -- break; -- } -- } -+ for (i = 0; i < resources->count_connectors; i++) { -+ if (resources->connectors[i] == head->connector_id) { -+ removed = false; -+ break; -+ } -+ } - -- if (!removed) -- continue; -+ if (!removed) -+ continue; - -- weston_log("DRM: head '%s' (connector %d) disappeared.\n", -- head->base.name, head->connector_id); -- drm_head_destroy(head); -+ weston_log("DRM: head '%s' (connector %d) disappeared.\n", -+ head->base.name, head->connector_id); -+ drm_head_destroy(head); -+ } - } - - drm_backend_update_unused_outputs(b, resources); -@@ -6309,23 +6314,26 @@ session_notify(struct wl_listener *listener, void *data) - * pending frame callbacks. */ - - wl_list_for_each(output, &compositor->output_list, base.link) { -- output->base.repaint_needed = false; -- if (output->cursor_plane) -- drmModeSetCursor(b->drm.fd, output->crtc_id, -- 0, 0, 0); -+ if(output->base.output_type == OUTPUT_DRM) { -+ output->base.repaint_needed = false; -+ if (output->cursor_plane) -+ drmModeSetCursor(b->drm.fd, output->crtc_id, -+ 0, 0, 0); -+ } - } -- -- output = container_of(compositor->output_list.next, -- struct drm_output, base.link); -- -- wl_list_for_each(plane, &b->plane_list, link) { -- if (plane->type != WDRM_PLANE_TYPE_OVERLAY) -- continue; -- -- drmModeSetPlane(b->drm.fd, -- plane->plane_id, -- output->crtc_id, 0, 0, -- 0, 0, 0, 0, 0, 0, 0, 0); -+ if(output->base.output_type == OUTPUT_DRM) { -+ output = container_of(compositor->output_list.next, -+ struct drm_output, base.link); -+ -+ wl_list_for_each(plane, &b->plane_list, link) { -+ if (plane->type != WDRM_PLANE_TYPE_OVERLAY) -+ continue; -+ -+ drmModeSetPlane(b->drm.fd, -+ plane->plane_id, -+ output->crtc_id, 0, 0, -+ 0, 0, 0, 0, 0, 0, 0, 0); -+ } - } - } - } -@@ -6649,7 +6657,8 @@ switch_to_gl_renderer(struct drm_backend *b) - } - - wl_list_for_each(output, &b->compositor->output_list, base.link) -- pixman_renderer_output_destroy(&output->base); -+ if(output->base.output_type == OUTPUT_DRM) -+ pixman_renderer_output_destroy(&output->base); - - b->compositor->renderer->destroy(b->compositor); - -@@ -6661,7 +6670,8 @@ switch_to_gl_renderer(struct drm_backend *b) - } - - wl_list_for_each(output, &b->compositor->output_list, base.link) -- drm_output_init_egl(output, b); -+ if(output->base.output_type == OUTPUT_DRM) -+ drm_output_init_egl(output, b); - - b->use_pixman = 0; - -diff --git a/libweston/compositor-fbdev.c b/libweston/compositor-fbdev.c -index a71b7bd..8edb50b 100644 ---- a/libweston/compositor-fbdev.c -+++ b/libweston/compositor-fbdev.c -@@ -501,7 +501,7 @@ fbdev_output_enable(struct weston_output *base) - struct fbdev_head *head; - int fb_fd; - struct wl_event_loop *loop; -- -+ output->base.output_type = OUTPUT_FBDEV; - head = fbdev_output_get_head(output); - - /* Create the frame buffer. */ -diff --git a/libweston/compositor-headless.c b/libweston/compositor-headless.c -index 61a5bd9..f633cd7 100644 ---- a/libweston/compositor-headless.c -+++ b/libweston/compositor-headless.c -@@ -159,7 +159,7 @@ headless_output_enable(struct weston_output *base) - loop = wl_display_get_event_loop(b->compositor->wl_display); - output->finish_frame_timer = - wl_event_loop_add_timer(loop, finish_frame_handler, output); -- -+ output->base.output_type = OUTPUT_HEADLESS; - if (b->use_pixman) { - output->image_buf = malloc(output->base.current_mode->width * - output->base.current_mode->height * 4); -diff --git a/libweston/compositor-rdp.c b/libweston/compositor-rdp.c -index 134e729..429370c 100644 ---- a/libweston/compositor-rdp.c -+++ b/libweston/compositor-rdp.c -@@ -554,7 +554,7 @@ rdp_output_enable(struct weston_output *base) - struct rdp_output *output = to_rdp_output(base); - struct rdp_backend *b = to_rdp_backend(base->compositor); - struct wl_event_loop *loop; -- -+ output->base.output_type = OUTPUT_RDP; - output->shadow_surface = pixman_image_create_bits(PIXMAN_x8r8g8b8, - output->base.current_mode->width, - output->base.current_mode->height, -diff --git a/libweston/compositor-wayland.c b/libweston/compositor-wayland.c -index e80ecc1..808fc8f 100644 ---- a/libweston/compositor-wayland.c -+++ b/libweston/compositor-wayland.c -@@ -1221,7 +1221,7 @@ wayland_output_enable(struct weston_output *base) - struct wayland_backend *b = to_wayland_backend(base->compositor); - enum mode_status mode_status; - int ret = 0; -- -+ output->base.output_type = OUTPUT_WAYLAND; - weston_log("Creating %dx%d wayland output at (%d, %d)\n", - output->base.current_mode->width, - output->base.current_mode->height, -diff --git a/libweston/compositor-x11.c b/libweston/compositor-x11.c -index 4a9d068..afbaa73 100644 ---- a/libweston/compositor-x11.c -+++ b/libweston/compositor-x11.c -@@ -933,7 +933,7 @@ x11_output_enable(struct weston_output *base) - XCB_EVENT_MASK_STRUCTURE_NOTIFY, - 0 - }; -- -+ output->base.output_type = OUTPUT_X11; - if (!b->no_input) - values[0] |= - XCB_EVENT_MASK_KEY_PRESS | -diff --git a/libweston/compositor.h b/libweston/compositor.h -index 8b7a102..60feda3 100644 ---- a/libweston/compositor.h -+++ b/libweston/compositor.h -@@ -169,6 +169,16 @@ enum dpms_enum { - WESTON_DPMS_OFF - }; - -+/* bit compatible with drm definitions. */ -+enum output_type { -+ OUTPUT_DRM, -+ OUTPUT_FBDEV, -+ OUTPUT_HEADLESS, -+ OUTPUT_RDP, -+ OUTPUT_WAYLAND, -+ OUTPUT_X11, -+ OUTPUT_WALTHAM -+}; - /** Represents a monitor - * - * This object represents a monitor (hardware backends like DRM) or a window -@@ -201,7 +211,7 @@ struct weston_head { - struct weston_output { - uint32_t id; - char *name; -- -+ enum output_type output_type; - /** Matches the lifetime from the user perspective */ - struct wl_signal user_destroy_signal; - --- -2.7.4 - -- cgit 1.2.3-korg