diff options
2 files changed, 116 insertions, 67 deletions
diff --git a/recipes-graphics/wayland/weston/0002-MGS-1111-Add-GPU-VIV-suport-for-wayland-and-weston-1.patch b/recipes-graphics/wayland/weston/0002-MGS-1111-Add-GPU-VIV-suport-for-wayland-and-weston-1.patch index cb93728b..9a80d9ed 100644 --- a/recipes-graphics/wayland/weston/0002-MGS-1111-Add-GPU-VIV-suport-for-wayland-and-weston-1.patch +++ b/recipes-graphics/wayland/weston/0002-MGS-1111-Add-GPU-VIV-suport-for-wayland-and-weston-1.patch | |||
@@ -15,11 +15,11 @@ Signed-off-by: Prabhu <prabhu.sundararaj@freescale.com> | |||
15 | create mode 100644 src/gal2d-renderer.c | 15 | create mode 100644 src/gal2d-renderer.c |
16 | create mode 100644 src/gal2d-renderer.h | 16 | create mode 100644 src/gal2d-renderer.h |
17 | 17 | ||
18 | Index: weston-1.10.0/Makefile.am | 18 | Index: weston-1.11.0/Makefile.am |
19 | =================================================================== | 19 | =================================================================== |
20 | --- weston-1.10.0.orig/Makefile.am 2016-05-12 10:52:23.308495113 -0500 | 20 | --- weston-1.11.0.orig/Makefile.am 2016-05-19 16:36:04.000000000 -0500 |
21 | +++ weston-1.10.0/Makefile.am 2016-05-12 10:52:23.524496184 -0500 | 21 | +++ weston-1.11.0/Makefile.am 2016-09-20 15:28:46.634190725 -0500 |
22 | @@ -231,6 +231,18 @@ | 22 | @@ -247,6 +247,18 @@ |
23 | src/vertex-clipping.h \ | 23 | src/vertex-clipping.h \ |
24 | shared/helpers.h | 24 | shared/helpers.h |
25 | endif | 25 | endif |
@@ -38,29 +38,30 @@ Index: weston-1.10.0/Makefile.am | |||
38 | 38 | ||
39 | if ENABLE_X11_COMPOSITOR | 39 | if ENABLE_X11_COMPOSITOR |
40 | module_LTLIBRARIES += x11-backend.la | 40 | module_LTLIBRARIES += x11-backend.la |
41 | Index: weston-1.10.0/src/compositor-fbdev.c | 41 | Index: weston-1.11.0/src/compositor-fbdev.c |
42 | =================================================================== | 42 | =================================================================== |
43 | --- weston-1.10.0.orig/src/compositor-fbdev.c 2016-05-12 10:52:21.356485434 -0500 | 43 | --- weston-1.11.0.orig/src/compositor-fbdev.c 2016-05-19 16:36:04.000000000 -0500 |
44 | +++ weston-1.10.0/src/compositor-fbdev.c 2016-05-12 11:41:07.000000000 -0500 | 44 | +++ weston-1.11.0/src/compositor-fbdev.c 2016-09-20 17:05:27.000000000 -0500 |
45 | @@ -49,6 +49,7 @@ | 45 | @@ -50,6 +50,7 @@ |
46 | #include "libinput-seat.h" | 46 | #include "libinput-seat.h" |
47 | #include "gl-renderer.h" | 47 | #include "gl-renderer.h" |
48 | #include "presentation_timing-server-protocol.h" | 48 | #include "presentation-time-server-protocol.h" |
49 | +#include "gal2d-renderer.h" | 49 | +#include "gal2d-renderer.h" |
50 | 50 | ||
51 | struct fbdev_backend { | 51 | struct fbdev_backend { |
52 | struct weston_backend base; | 52 | struct weston_backend base; |
53 | @@ -58,7 +59,9 @@ | 53 | @@ -59,8 +60,10 @@ |
54 | struct udev *udev; | 54 | struct udev *udev; |
55 | struct udev_input input; | 55 | struct udev_input input; |
56 | int use_pixman; | 56 | int use_pixman; |
57 | + int use_gal2d; | 57 | + int use_gal2d; |
58 | uint32_t output_transform; | ||
58 | struct wl_listener session_listener; | 59 | struct wl_listener session_listener; |
59 | + NativeDisplayType display; | 60 | + NativeDisplayType display; |
60 | }; | 61 | }; |
61 | 62 | ||
62 | struct fbdev_screeninfo { | 63 | struct fbdev_screeninfo { |
63 | @@ -91,15 +94,20 @@ | 64 | @@ -93,9 +96,13 @@ |
64 | /* pixman details. */ | 65 | /* pixman details. */ |
65 | pixman_image_t *hw_surface; | 66 | pixman_image_t *hw_surface; |
66 | uint8_t depth; | 67 | uint8_t depth; |
@@ -69,19 +70,12 @@ Index: weston-1.10.0/src/compositor-fbdev.c | |||
69 | + NativeWindowType window; | 70 | + NativeWindowType window; |
70 | }; | 71 | }; |
71 | 72 | ||
72 | struct fbdev_parameters { | ||
73 | int tty; | ||
74 | char *device; | ||
75 | int use_gl; | ||
76 | + int use_gal2d; | ||
77 | }; | ||
78 | |||
79 | struct gl_renderer_interface *gl_renderer; | 73 | struct gl_renderer_interface *gl_renderer; |
80 | +struct gal2d_renderer_interface *gal2d_renderer; | 74 | +struct gal2d_renderer_interface *gal2d_renderer; |
81 | 75 | ||
82 | static const char default_seat[] = "seat0"; | 76 | static const char default_seat[] = "seat0"; |
83 | 77 | ||
84 | @@ -447,6 +455,10 @@ | 78 | @@ -443,6 +450,10 @@ |
85 | strerror(errno)); | 79 | strerror(errno)); |
86 | 80 | ||
87 | output->fb = NULL; | 81 | output->fb = NULL; |
@@ -92,7 +86,7 @@ Index: weston-1.10.0/src/compositor-fbdev.c | |||
92 | } | 86 | } |
93 | 87 | ||
94 | static void fbdev_output_destroy(struct weston_output *base); | 88 | static void fbdev_output_destroy(struct weston_output *base); |
95 | @@ -454,7 +466,7 @@ | 89 | @@ -450,13 +461,13 @@ |
96 | 90 | ||
97 | static int | 91 | static int |
98 | fbdev_output_create(struct fbdev_backend *backend, | 92 | fbdev_output_create(struct fbdev_backend *backend, |
@@ -100,26 +94,24 @@ Index: weston-1.10.0/src/compositor-fbdev.c | |||
100 | + int x, int y, const char *device) | 94 | + int x, int y, const char *device) |
101 | { | 95 | { |
102 | struct fbdev_output *output; | 96 | struct fbdev_output *output; |
103 | struct weston_config_section *section; | 97 | int fb_fd; |
104 | @@ -463,7 +475,7 @@ | 98 | struct wl_event_loop *loop; |
105 | uint32_t config_transform; | ||
106 | char *s; | ||
107 | 99 | ||
108 | - weston_log("Creating fbdev output.\n"); | 100 | - weston_log("Creating fbdev output.\n"); |
109 | + weston_log("Creating fbdev output. %s x=%d y=%d\n", device, x, y); | 101 | + weston_log("Creating fbdev output. %s x=%d y=%d\n", device, x, y); |
110 | 102 | ||
111 | output = zalloc(sizeof *output); | 103 | output = zalloc(sizeof *output); |
112 | if (output == NULL) | 104 | if (output == NULL) |
113 | @@ -516,7 +528,7 @@ | 105 | @@ -500,7 +511,7 @@ |
114 | free(s); | 106 | output->base.name = strdup("fbdev"); |
115 | 107 | ||
116 | weston_output_init(&output->base, backend->compositor, | 108 | weston_output_init(&output->base, backend->compositor, |
117 | - 0, 0, output->fb_info.width_mm, | 109 | - 0, 0, output->fb_info.width_mm, |
118 | + x, y, output->fb_info.width_mm, | 110 | + x, y, output->fb_info.width_mm, |
119 | output->fb_info.height_mm, | 111 | output->fb_info.height_mm, |
120 | config_transform, | 112 | backend->output_transform, |
121 | 1); | 113 | 1); |
122 | @@ -524,10 +536,39 @@ | 114 | @@ -508,10 +519,39 @@ |
123 | if (backend->use_pixman) { | 115 | if (backend->use_pixman) { |
124 | if (pixman_renderer_output_create(&output->base) < 0) | 116 | if (pixman_renderer_output_create(&output->base) < 0) |
125 | goto out_hw_surface; | 117 | goto out_hw_surface; |
@@ -160,7 +152,7 @@ Index: weston-1.10.0/src/compositor-fbdev.c | |||
160 | gl_renderer->opaque_attribs, | 152 | gl_renderer->opaque_attribs, |
161 | NULL, 0) < 0) { | 153 | NULL, 0) < 0) { |
162 | weston_log("gl_renderer_output_create failed.\n"); | 154 | weston_log("gl_renderer_output_create failed.\n"); |
163 | @@ -573,6 +614,8 @@ | 155 | @@ -558,6 +598,8 @@ |
164 | if (backend->use_pixman) { | 156 | if (backend->use_pixman) { |
165 | if (base->renderer_state != NULL) | 157 | if (base->renderer_state != NULL) |
166 | pixman_renderer_output_destroy(base); | 158 | pixman_renderer_output_destroy(base); |
@@ -169,16 +161,16 @@ Index: weston-1.10.0/src/compositor-fbdev.c | |||
169 | } else { | 161 | } else { |
170 | gl_renderer->output_destroy(base); | 162 | gl_renderer->output_destroy(base); |
171 | } | 163 | } |
172 | @@ -636,7 +679,7 @@ | 164 | @@ -622,7 +664,7 @@ |
173 | * are re-initialised. */ | 165 | * are re-initialised. */ |
174 | device = output->device; | 166 | device = strdup(output->device); |
175 | fbdev_output_destroy(base); | 167 | fbdev_output_destroy(&output->base); |
176 | - fbdev_output_create(backend, device); | 168 | - fbdev_output_create(backend, device); |
177 | + fbdev_output_create(backend, 0, 0, device); | 169 | + fbdev_output_create(backend, 0, 0, device); |
170 | free(device); | ||
178 | 171 | ||
179 | return 0; | 172 | return 0; |
180 | } | 173 | @@ -777,7 +819,50 @@ |
181 | @@ -789,7 +832,50 @@ | ||
182 | if (backend->use_pixman) { | 174 | if (backend->use_pixman) { |
183 | if (pixman_renderer_init(compositor) < 0) | 175 | if (pixman_renderer_init(compositor) < 0) |
184 | goto out_launcher; | 176 | goto out_launcher; |
@@ -230,7 +222,7 @@ Index: weston-1.10.0/src/compositor-fbdev.c | |||
230 | gl_renderer = weston_load_module("gl-renderer.so", | 222 | gl_renderer = weston_load_module("gl-renderer.so", |
231 | "gl_renderer_interface"); | 223 | "gl_renderer_interface"); |
232 | if (!gl_renderer) { | 224 | if (!gl_renderer) { |
233 | @@ -797,17 +883,22 @@ | 225 | @@ -785,17 +870,22 @@ |
234 | goto out_launcher; | 226 | goto out_launcher; |
235 | } | 227 | } |
236 | 228 | ||
@@ -257,32 +249,24 @@ Index: weston-1.10.0/src/compositor-fbdev.c | |||
257 | 249 | ||
258 | udev_input_init(&backend->input, compositor, backend->udev, seat_id); | 250 | udev_input_init(&backend->input, compositor, backend->udev, seat_id); |
259 | 251 | ||
260 | @@ -838,13 +929,20 @@ | 252 | @@ -822,7 +912,13 @@ |
261 | struct fbdev_parameters param = { | 253 | * udev, rather than passing a device node in as a parameter. */ |
262 | .tty = 0, /* default to current tty */ | 254 | config->tty = 0; /* default to current tty */ |
263 | .device = "/dev/fb0", /* default frame buffer */ | 255 | config->device = "/dev/fb0"; /* default frame buffer */ |
264 | +#ifdef ENABLE_EGL | 256 | +#ifdef ENABLE_EGL |
265 | + .use_gl = 1, | 257 | + config->use_gl = 1; |
266 | + .use_gal2d = 0, | 258 | + config->use_gal2d = 0; |
267 | +#else | 259 | +#else |
268 | .use_gl = 0, | 260 | config->use_gl = 0; |
269 | + .use_gal2d = 1, | 261 | + config->use_gal2d = 1; |
270 | +#endif | 262 | +#endif |
271 | }; | 263 | config->output_transform = WL_OUTPUT_TRANSFORM_NORMAL; |
272 | 264 | } | |
273 | const struct weston_option fbdev_options[] = { | ||
274 | { WESTON_OPTION_INTEGER, "tty", 0, ¶m.tty }, | ||
275 | { WESTON_OPTION_STRING, "device", 0, ¶m.device }, | ||
276 | - { WESTON_OPTION_BOOLEAN, "use-gl", 0, ¶m.use_gl }, | ||
277 | + { WESTON_OPTION_INTEGER, "use-gl", 0, ¶m.use_gl }, | ||
278 | + { WESTON_OPTION_INTEGER, "use-gal2d", 0, ¶m.use_gal2d }, | ||
279 | }; | ||
280 | 265 | ||
281 | parse_options(fbdev_options, ARRAY_LENGTH(fbdev_options), argc, argv); | 266 | Index: weston-1.11.0/src/gal2d-renderer.c |
282 | Index: weston-1.10.0/src/gal2d-renderer.c | ||
283 | =================================================================== | 267 | =================================================================== |
284 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | 268 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
285 | +++ weston-1.10.0/src/gal2d-renderer.c 2016-05-12 11:37:05.000000000 -0500 | 269 | +++ weston-1.11.0/src/gal2d-renderer.c 2016-09-20 16:58:24.000000000 -0500 |
286 | @@ -0,0 +1,1342 @@ | 270 | @@ -0,0 +1,1342 @@ |
287 | +/* | 271 | +/* |
288 | + * Copyright (c) 2015 Freescale Semiconductor, Inc. | 272 | + * Copyright (c) 2015 Freescale Semiconductor, Inc. |
@@ -1626,10 +1610,10 @@ Index: weston-1.10.0/src/gal2d-renderer.c | |||
1626 | + .output_create = gal2d_renderer_output_create, | 1610 | + .output_create = gal2d_renderer_output_create, |
1627 | + .output_destroy = gal2d_renderer_output_destroy, | 1611 | + .output_destroy = gal2d_renderer_output_destroy, |
1628 | +}; | 1612 | +}; |
1629 | Index: weston-1.10.0/src/gal2d-renderer.h | 1613 | Index: weston-1.11.0/src/gal2d-renderer.h |
1630 | =================================================================== | 1614 | =================================================================== |
1631 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 | 1615 | --- /dev/null 1970-01-01 00:00:00.000000000 +0000 |
1632 | +++ weston-1.10.0/src/gal2d-renderer.h 2016-05-12 10:52:23.524496184 -0500 | 1616 | +++ weston-1.11.0/src/gal2d-renderer.h 2016-09-20 15:28:46.638190745 -0500 |
1633 | @@ -0,0 +1,50 @@ | 1617 | @@ -0,0 +1,50 @@ |
1634 | +/* | 1618 | +/* |
1635 | + * Copyright (c) 2015 Freescale Semiconductor, Inc. | 1619 | + * Copyright (c) 2015 Freescale Semiconductor, Inc. |
@@ -1681,3 +1665,71 @@ Index: weston-1.10.0/src/gal2d-renderer.h | |||
1681 | +}; | 1665 | +}; |
1682 | + | 1666 | + |
1683 | +#endif | 1667 | +#endif |
1668 | Index: weston-1.11.0/src/compositor-fbdev.h | ||
1669 | =================================================================== | ||
1670 | --- weston-1.11.0.orig/src/compositor-fbdev.h 2016-05-19 16:36:04.000000000 -0500 | ||
1671 | +++ weston-1.11.0/src/compositor-fbdev.h 2016-09-20 17:03:37.000000000 -0500 | ||
1672 | @@ -40,6 +40,7 @@ | ||
1673 | int tty; | ||
1674 | char *device; | ||
1675 | int use_gl; | ||
1676 | + int use_gal2d; | ||
1677 | |||
1678 | uint32_t output_transform; | ||
1679 | }; | ||
1680 | Index: weston-1.11.0/src/main.c | ||
1681 | =================================================================== | ||
1682 | --- weston-1.11.0.orig/src/main.c 2016-05-19 16:36:04.000000000 -0500 | ||
1683 | +++ weston-1.11.0/src/main.c 2016-09-20 17:29:12.000000000 -0500 | ||
1684 | @@ -285,7 +285,13 @@ | ||
1685 | "Options for fbdev-backend.so:\n\n" | ||
1686 | " --tty=TTY\t\tThe tty to use\n" | ||
1687 | " --device=DEVICE\tThe framebuffer device to use\n" | ||
1688 | - " --use-gl\t\tUse the GL renderer\n\n"); | ||
1689 | +#if defined ENABLE_EGL | ||
1690 | + " --no-use-gl\t\tDo not use the GL renderer\n" | ||
1691 | + " --use-gal2d\t\tUse the GAL2D renderer\n\n"); | ||
1692 | +#else | ||
1693 | + " --use-gl\t\tUse the GL renderer\n" | ||
1694 | + " --no-use-gal2d\t\tDo not use the GAL2D renderer\n\n"); | ||
1695 | +#endif | ||
1696 | #endif | ||
1697 | |||
1698 | #if defined(BUILD_HEADLESS_COMPOSITOR) | ||
1699 | @@ -864,18 +870,35 @@ | ||
1700 | struct weston_config_section *section; | ||
1701 | char *s = NULL; | ||
1702 | int ret = 0; | ||
1703 | +#ifdef ENABLE_EGL | ||
1704 | + /* GL rendering is default, so user options are --no-use-gl and --use-gal2d */ | ||
1705 | + int no_use_gl = 0; | ||
1706 | +#else | ||
1707 | + /* GAL2D rendering is default, so user options are --use-gl and --no-use-gal2d */ | ||
1708 | + int no_use_gal2d = 0; | ||
1709 | +#endif | ||
1710 | |||
1711 | const struct weston_option fbdev_options[] = { | ||
1712 | { WESTON_OPTION_INTEGER, "tty", 0, &config.tty }, | ||
1713 | { WESTON_OPTION_STRING, "device", 0, &config.device }, | ||
1714 | +#ifdef ENABLE_EGL | ||
1715 | + { WESTON_OPTION_BOOLEAN, "no-use-gl", 0, &no_use_gl }, | ||
1716 | + { WESTON_OPTION_BOOLEAN, "use-gal2d", 0, &config.use_gal2d }, | ||
1717 | +#else | ||
1718 | { WESTON_OPTION_BOOLEAN, "use-gl", 0, &config.use_gl }, | ||
1719 | + { WESTON_OPTION_BOOLEAN, "no-use-gal2d", 0, &no_use_gal2d }, | ||
1720 | +#endif | ||
1721 | }; | ||
1722 | |||
1723 | parse_options(fbdev_options, ARRAY_LENGTH(fbdev_options), argc, argv); | ||
1724 | |||
1725 | if (!config.device) | ||
1726 | config.device = strdup("/dev/fb0"); | ||
1727 | - | ||
1728 | +#ifdef ENABLE_EGL | ||
1729 | + config.use_gl = !no_use_gl; | ||
1730 | +#else | ||
1731 | + config.use_gal2d = !no_use_gal2d; | ||
1732 | +#endif | ||
1733 | section = weston_config_get_section(wc, "output", "name", "fbdev"); | ||
1734 | weston_config_section_get_string(section, "transform", &s, "normal"); | ||
1735 | if (weston_parse_transform(s, &config.output_transform) < 0) | ||
diff --git a/recipes-graphics/wayland/weston/0003-MGS-1192-xwld-g2d-compositor-dose-not-work.patch b/recipes-graphics/wayland/weston/0003-MGS-1192-xwld-g2d-compositor-dose-not-work.patch index b9dfbeab..019b7105 100644 --- a/recipes-graphics/wayland/weston/0003-MGS-1192-xwld-g2d-compositor-dose-not-work.patch +++ b/recipes-graphics/wayland/weston/0003-MGS-1192-xwld-g2d-compositor-dose-not-work.patch | |||
@@ -12,20 +12,17 @@ Signed-off-by: Yong Gan <yong.gan@freescale.com> | |||
12 | src/compositor-fbdev.c | 3 ++- | 12 | src/compositor-fbdev.c | 3 ++- |
13 | 1 file changed, 2 insertions(+), 1 deletion(-) | 13 | 1 file changed, 2 insertions(+), 1 deletion(-) |
14 | 14 | ||
15 | diff --git a/src/compositor-fbdev.c b/src/compositor-fbdev.c | 15 | Index: weston-1.11.0/src/compositor-fbdev.c |
16 | index c6f732e..ed25576 100644 | 16 | =================================================================== |
17 | --- a/src/compositor-fbdev.c | 17 | --- weston-1.11.0.orig/src/compositor-fbdev.c 2016-08-31 20:23:38.109228731 -0500 |
18 | +++ b/src/compositor-fbdev.c | 18 | +++ weston-1.11.0/src/compositor-fbdev.c 2016-08-31 20:30:25.000000000 -0500 |
19 | @@ -900,7 +900,8 @@ fbdev_backend_create(struct weston_compositor *compositor, int *argc, char *argv | 19 | @@ -811,7 +811,8 @@ |
20 | backend->base.restore = fbdev_restore; | 20 | backend->base.restore = fbdev_restore; |
21 | 21 | ||
22 | backend->prev_state = WESTON_COMPOSITOR_ACTIVE; | 22 | backend->prev_state = WESTON_COMPOSITOR_ACTIVE; |
23 | - backend->use_pixman = !param->use_gl; | 23 | - backend->use_pixman = !param->use_gl; |
24 | + backend->use_pixman = !(param->use_gl || param->use_gal2d); | 24 | + backend->use_pixman = !(param->use_gl || param->use_gal2d); |
25 | + backend->use_gal2d = param->use_gal2d; | 25 | + backend->use_gal2d = param->use_gal2d; |
26 | backend->output_transform = param->output_transform; | ||
26 | 27 | ||
27 | for (key = KEY_F1; key < KEY_F9; key++) | 28 | weston_setup_vt_switch_bindings(compositor); |
28 | weston_compositor_add_key_binding(compositor, key, | ||
29 | -- | ||
30 | 1.9.1 | ||
31 | |||