summaryrefslogtreecommitdiffstats
path: root/meta-agl-bsp/meta-freescale-layer/recipes-graphics/wayland/weston-2.0.0/0001-libweston-Restore-EGL-support-for-the-fbdev-backend.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-agl-bsp/meta-freescale-layer/recipes-graphics/wayland/weston-2.0.0/0001-libweston-Restore-EGL-support-for-the-fbdev-backend.patch')
-rw-r--r--meta-agl-bsp/meta-freescale-layer/recipes-graphics/wayland/weston-2.0.0/0001-libweston-Restore-EGL-support-for-the-fbdev-backend.patch250
1 files changed, 0 insertions, 250 deletions
diff --git a/meta-agl-bsp/meta-freescale-layer/recipes-graphics/wayland/weston-2.0.0/0001-libweston-Restore-EGL-support-for-the-fbdev-backend.patch b/meta-agl-bsp/meta-freescale-layer/recipes-graphics/wayland/weston-2.0.0/0001-libweston-Restore-EGL-support-for-the-fbdev-backend.patch
deleted file mode 100644
index 77bf2c5cb..000000000
--- a/meta-agl-bsp/meta-freescale-layer/recipes-graphics/wayland/weston-2.0.0/0001-libweston-Restore-EGL-support-for-the-fbdev-backend.patch
+++ /dev/null
@@ -1,250 +0,0 @@
-From c43b64cad0fdc55594434a68faa25447b50ca7c5 Mon Sep 17 00:00:00 2001
-From: Georgi Vlaev <georgi.vlaev@konsulko.com>
-Date: Wed, 27 Sep 2017 14:00:50 +0300
-Subject: [PATCH 1/5] libweston: Restore EGL support for the fbdev backend
-
-In Weston 2.0, the EGL support was dropped from the fbdev-backend,
-as that was not the correct way to initialize the EGL in first
-place. However, the vendor support patches in Weston 1.11 still
-require that functionality. Teporary restore the EGL support in
-the fbdev-backend, until a separate vendor backend is available,
-or switch to using etnaviv.
-
-Signed-off-by: Georgi Vlaev <georgi.vlaev@konsulko.com>
----
- compositor/main.c | 2 +
- libweston/compositor-fbdev.c | 99 +++++++++++++++++++++++++++++++++++++-------
- libweston/compositor-fbdev.h | 1 +
- 3 files changed, 87 insertions(+), 15 deletions(-)
-
-diff --git a/compositor/main.c b/compositor/main.c
-index 72c3cd10..6c45a018 100644
---- a/compositor/main.c
-+++ b/compositor/main.c
-@@ -574,6 +574,7 @@ usage(int error_code)
- "Options for fbdev-backend.so:\n\n"
- " --tty=TTY\t\tThe tty to use\n"
- " --device=DEVICE\tThe framebuffer device to use\n"
-+ " --use-gl\t\tUse the GL renderer\n"
- "\n");
- #endif
-
-@@ -1444,6 +1445,7 @@ load_fbdev_backend(struct weston_compositor *c,
- const struct weston_option fbdev_options[] = {
- { WESTON_OPTION_INTEGER, "tty", 0, &config.tty },
- { WESTON_OPTION_STRING, "device", 0, &config.device },
-+ { WESTON_OPTION_BOOLEAN, "use-gl", 0, &config.use_gl },
- };
-
- parse_options(fbdev_options, ARRAY_LENGTH(fbdev_options), argc, argv);
-diff --git a/libweston/compositor-fbdev.c b/libweston/compositor-fbdev.c
-index 44f0cf51..4ca53b67 100644
---- a/libweston/compositor-fbdev.c
-+++ b/libweston/compositor-fbdev.c
-@@ -49,6 +49,7 @@
- #include "launcher-util.h"
- #include "pixman-renderer.h"
- #include "libinput-seat.h"
-+#include "gl-renderer.h"
- #include "presentation-time-server-protocol.h"
-
- struct fbdev_backend {
-@@ -58,6 +59,7 @@ struct fbdev_backend {
-
- struct udev *udev;
- struct udev_input input;
-+ int use_pixman;
- uint32_t output_transform;
- struct wl_listener session_listener;
- };
-@@ -94,6 +96,8 @@ struct fbdev_output {
- uint8_t depth;
- };
-
-+struct gl_renderer_interface *gl_renderer;
-+
- static const char default_seat[] = "seat0";
-
- static inline struct fbdev_output *
-@@ -117,8 +121,8 @@ fbdev_output_start_repaint_loop(struct weston_output *output)
- weston_output_finish_frame(output, &ts, WP_PRESENTATION_FEEDBACK_INVALID);
- }
-
--static int
--fbdev_output_repaint(struct weston_output *base, pixman_region32_t *damage)
-+static void
-+fbdev_output_repaint_pixman(struct weston_output *base, pixman_region32_t *damage)
- {
- struct fbdev_output *output = to_fbdev_output(base);
- struct weston_compositor *ec = output->base.compositor;
-@@ -140,6 +144,26 @@ fbdev_output_repaint(struct weston_output *base, pixman_region32_t *damage)
- * refresh rate is given in mHz and the interval in ms. */
- wl_event_source_timer_update(output->finish_frame_timer,
- 1000000 / output->mode.refresh);
-+}
-+
-+static int
-+fbdev_output_repaint(struct weston_output *base, pixman_region32_t *damage)
-+{
-+ struct fbdev_output *output = to_fbdev_output(base);
-+ struct fbdev_backend *backend = output->backend;
-+ struct weston_compositor *ec = backend->compositor;
-+
-+ if (backend->use_pixman) {
-+ fbdev_output_repaint_pixman(base,damage);
-+ } else {
-+ ec->renderer->repaint_output(base, damage);
-+ /* Update the damage region. */
-+ pixman_region32_subtract(&ec->primary_plane.damage,
-+ &ec->primary_plane.damage, damage);
-+
-+ wl_event_source_timer_update(output->finish_frame_timer,
-+ 1000000 / output->mode.refresh);
-+ }
-
- return 0;
- }
-@@ -440,16 +464,30 @@ fbdev_output_enable(struct weston_output *base)
- return -1;
- }
-
-- if (fbdev_frame_buffer_map(output, fb_fd) < 0) {
-- weston_log("Mapping frame buffer failed.\n");
-- return -1;
-- }
-+ if (backend->use_pixman) {
-+ if (fbdev_frame_buffer_map(output, fb_fd) < 0) {
-+ weston_log("Mapping frame buffer failed.\n");
-+ return -1;
-+ }
-+ } else
-+ close(fb_fd);
-
- output->base.start_repaint_loop = fbdev_output_start_repaint_loop;
- output->base.repaint = fbdev_output_repaint;
-
-- if (pixman_renderer_output_create(&output->base) < 0)
-- goto out_hw_surface;
-+ if (backend->use_pixman) {
-+ if (pixman_renderer_output_create(&output->base) < 0)
-+ goto out_hw_surface;
-+ } else {
-+ setenv("HYBRIS_EGLPLATFORM", "wayland", 1);
-+ if (gl_renderer->output_window_create(&output->base,
-+ (EGLNativeWindowType)NULL, NULL,
-+ gl_renderer->opaque_attribs,
-+ NULL, 0) < 0) {
-+ weston_log("gl_renderer_output_create failed.\n");
-+ goto out_hw_surface;
-+ }
-+ }
-
- loop = wl_display_get_event_loop(backend->compositor->wl_display);
- output->finish_frame_timer =
-@@ -534,14 +572,19 @@ static void
- fbdev_output_destroy(struct weston_output *base)
- {
- struct fbdev_output *output = to_fbdev_output(base);
-+ struct fbdev_backend *backend = output->backend;
-
- weston_log("Destroying fbdev output.\n");
-
- /* Close the frame buffer. */
- fbdev_output_disable(base);
-
-- if (base->renderer_state != NULL)
-- pixman_renderer_output_destroy(base);
-+ if (backend->use_pixman) {
-+ if (base->renderer_state != NULL)
-+ pixman_renderer_output_destroy(base);
-+ } else {
-+ gl_renderer->output_destroy(base);
-+ }
-
- /* Remove the output. */
- weston_output_destroy(&output->base);
-@@ -610,9 +653,11 @@ fbdev_output_reenable(struct fbdev_backend *backend,
- }
-
- /* Map the device if it has the same details as before. */
-- if (fbdev_frame_buffer_map(output, fb_fd) < 0) {
-- weston_log("Mapping frame buffer failed.\n");
-- goto err;
-+ if (backend->use_pixman) {
-+ if (fbdev_frame_buffer_map(output, fb_fd) < 0) {
-+ weston_log("Mapping frame buffer failed.\n");
-+ goto err;
-+ }
- }
-
- return 0;
-@@ -628,9 +673,13 @@ static void
- fbdev_output_disable(struct weston_output *base)
- {
- struct fbdev_output *output = to_fbdev_output(base);
-+ struct fbdev_backend *backend = output->backend;
-
- weston_log("Disabling fbdev output.\n");
-
-+ if (!backend->use_pixman)
-+ return;
-+
- if (output->hw_surface != NULL) {
- pixman_image_unref(output->hw_surface);
- output->hw_surface = NULL;
-@@ -744,11 +793,30 @@ fbdev_backend_create(struct weston_compositor *compositor,
- backend->base.restore = fbdev_restore;
-
- backend->prev_state = WESTON_COMPOSITOR_ACTIVE;
-+ backend->use_pixman = !param->use_gl;
-
- weston_setup_vt_switch_bindings(compositor);
-
-- if (pixman_renderer_init(compositor) < 0)
-- goto out_launcher;
-+ if (backend->use_pixman) {
-+ if (pixman_renderer_init(compositor) < 0)
-+ goto out_launcher;
-+ } else {
-+ gl_renderer = weston_load_module("gl-renderer.so",
-+ "gl_renderer_interface");
-+ if (!gl_renderer) {
-+ weston_log("could not load gl renderer\n");
-+ goto out_launcher;
-+ }
-+
-+ if (gl_renderer->display_create(compositor, NO_EGL_PLATFORM,
-+ EGL_DEFAULT_DISPLAY,
-+ NULL,
-+ gl_renderer->opaque_attribs,
-+ NULL, 0) < 0) {
-+ weston_log("gl_renderer_create failed.\n");
-+ goto out_launcher;
-+ }
-+ }
-
- if (fbdev_output_create(backend, param->device) < 0)
- goto out_launcher;
-@@ -779,6 +847,7 @@ config_init_to_defaults(struct weston_fbdev_backend_config *config)
- * udev, rather than passing a device node in as a parameter. */
- config->tty = 0; /* default to current tty */
- config->device = "/dev/fb0"; /* default frame buffer */
-+ config->use_gl = 0;
- }
-
- WL_EXPORT int
-diff --git a/libweston/compositor-fbdev.h b/libweston/compositor-fbdev.h
-index 8b7d900e..806712f9 100644
---- a/libweston/compositor-fbdev.h
-+++ b/libweston/compositor-fbdev.h
-@@ -43,6 +43,7 @@ struct weston_fbdev_backend_config {
-
- int tty;
- char *device;
-+ int use_gl;
-
- /** Callback used to configure input devices.
- *
---
-2.11.0
-