[meta-freescale] [meta-fsl-arm][PATCH] weston: Fix issues with 1.9 version
Neena Busireddy
neenareddy.busireddy at nxp.com
Thu Feb 18 13:23:48 PST 2016
These set of patches are required to address the issues with weston 1.9
Signed-off-by: Neena Busireddy <neenareddy.busireddy at nxp.com>
---
...-GPU-VIV-suport-for-wayland-and-weston-1.patch} | 230 ++++++++++-----------
...x6qp-imx6dl-First-frame-distored-when-som.patch | 106 ++++++++++
...imx6qp-imx6dl-First-frame-distored-when-s.patch | 51 +++++
recipes-graphics/wayland/weston_%.bbappend | 8 +-
4 files changed, 270 insertions(+), 125 deletions(-)
rename recipes-graphics/wayland/weston/{0001-MGS-840-Add-i.MX6-support-for-weston.patch => 0002-MGS-1111-Add-GPU-VIV-suport-for-wayland-and-weston-1.patch} (87%)
create mode 100644 recipes-graphics/wayland/weston/0006-MGS-1236-imx6qp-imx6dl-First-frame-distored-when-som.patch
create mode 100644 recipes-graphics/wayland/weston/0007-MGS-1236-1-imx6qp-imx6dl-First-frame-distored-when-s.patch
diff --git a/recipes-graphics/wayland/weston/0001-MGS-840-Add-i.MX6-support-for-weston.patch b/recipes-graphics/wayland/weston/0002-MGS-1111-Add-GPU-VIV-suport-for-wayland-and-weston-1.patch
similarity index 87%
rename from recipes-graphics/wayland/weston/0001-MGS-840-Add-i.MX6-support-for-weston.patch
rename to recipes-graphics/wayland/weston/0002-MGS-1111-Add-GPU-VIV-suport-for-wayland-and-weston-1.patch
index 80505bd..9d35356 100644
--- a/recipes-graphics/wayland/weston/0001-MGS-840-Add-i.MX6-support-for-weston.patch
+++ b/recipes-graphics/wayland/weston/0002-MGS-1111-Add-GPU-VIV-suport-for-wayland-and-weston-1.patch
@@ -1,32 +1,28 @@
-From 0da66b0b96a7059392f0b62d3a13fcedf1023ba8 Mon Sep 17 00:00:00 2001
+From e766967ae24d15048c01d03de09fc39757d13ec3 Mon Sep 17 00:00:00 2001
From: Prabhu <prabhu.sundararaj at freescale.com>
-Date: Wed, 24 Jun 2015 17:29:03 -0500
-Subject: [PATCH] MGS-840 Add i.MX6 support for weston
+Date: Sat, 3 Oct 2015 19:44:33 -0500
+Subject: [PATCH] MGS-1111: Add GPU-VIV suport for wayland and weston 1.9
-Add fbdev backend support for Vivante FBdev EGL
+Add support GPU-VIV support for weston 1.9
-Date: June 24, 2015
Signed-off-by: Prabhu <prabhu.sundararaj at freescale.com>
---
- Makefile.am | 13 +
- src/compositor-fbdev.c | 139 ++++-
- src/gal2d-renderer.c | 1337 ++++++++++++++++++++++++++++++++++++++++++++++++
- src/gal2d-renderer.h | 47 ++
- 4 files changed, 1519 insertions(+), 17 deletions(-)
- mode change 100644 => 100755 Makefile.am
+ Makefile.am | 12 +
+ src/compositor-fbdev.c | 128 ++++-
+ src/gal2d-renderer.c | 1342 ++++++++++++++++++++++++++++++++++++++++++++++++
+ src/gal2d-renderer.h | 50 ++
+ 4 files changed, 1519 insertions(+), 13 deletions(-)
create mode 100644 src/gal2d-renderer.c
create mode 100644 src/gal2d-renderer.h
diff --git a/Makefile.am b/Makefile.am
-old mode 100644
-new mode 100755
-index 5819b19..e7e2d49
+index 62719c9..86d3dfa 100644
--- a/Makefile.am
+++ b/Makefile.am
-@@ -207,6 +207,19 @@ gl_renderer_la_SOURCES = \
- src/vertex-clipping.h
+@@ -214,6 +214,18 @@ gl_renderer_la_SOURCES = \
+ src/vertex-clipping.h \
+ shared/helpers.h
endif
-
+module_LTLIBRARIES += gal2d-renderer.la
+gal2d_renderer_la_LDFLAGS = -module -avoid-version
+gal2d_renderer_la_LIBADD = $(COMPOSITOR_LIBS) $(EGL_LIBS)
@@ -39,23 +35,22 @@ index 5819b19..e7e2d49
+ src/gal2d-renderer.c \
+ src/vertex-clipping.c \
+ src/vertex-clipping.h
-+
+
if ENABLE_X11_COMPOSITOR
module_LTLIBRARIES += x11-backend.la
- x11_backend_la_LDFLAGS = -module -avoid-version
diff --git a/src/compositor-fbdev.c b/src/compositor-fbdev.c
-index 3f3394f..9d18c45 100644
+index 81281d0..c6f732e 100644
--- a/src/compositor-fbdev.c
+++ b/src/compositor-fbdev.c
-@@ -45,6 +45,7 @@
+@@ -49,6 +49,7 @@
#include "libinput-seat.h"
#include "gl-renderer.h"
#include "presentation_timing-server-protocol.h"
+#include "gal2d-renderer.h"
- struct fbdev_compositor {
- struct weston_compositor base;
-@@ -53,7 +54,9 @@ struct fbdev_compositor {
+ struct fbdev_backend {
+ struct weston_backend base;
+@@ -58,7 +59,9 @@ struct fbdev_backend {
struct udev *udev;
struct udev_input input;
int use_pixman;
@@ -65,7 +60,7 @@ index 3f3394f..9d18c45 100644
};
struct fbdev_screeninfo {
-@@ -88,15 +91,20 @@ struct fbdev_output {
+@@ -93,15 +96,20 @@ struct fbdev_output {
pixman_image_t *shadow_surface;
void *shadow_buf;
uint8_t depth;
@@ -86,7 +81,7 @@ index 3f3394f..9d18c45 100644
static const char default_seat[] = "seat0";
-@@ -471,6 +479,10 @@ fbdev_frame_buffer_destroy(struct fbdev_output *output)
+@@ -476,6 +484,10 @@ fbdev_frame_buffer_destroy(struct fbdev_output *output)
strerror(errno));
output->fb = NULL;
@@ -97,16 +92,16 @@ index 3f3394f..9d18c45 100644
}
static void fbdev_output_destroy(struct weston_output *base);
-@@ -478,7 +490,7 @@ static void fbdev_output_disable(struct weston_output *base);
+@@ -483,7 +495,7 @@ static void fbdev_output_disable(struct weston_output *base);
static int
- fbdev_output_create(struct fbdev_compositor *compositor,
+ fbdev_output_create(struct fbdev_backend *backend,
- const char *device)
+ int x, int y, const char *device)
{
struct fbdev_output *output;
struct weston_config_section *section;
-@@ -489,7 +501,7 @@ fbdev_output_create(struct fbdev_compositor *compositor,
+@@ -494,7 +506,7 @@ fbdev_output_create(struct fbdev_backend *backend,
uint32_t config_transform;
char *s;
@@ -115,26 +110,26 @@ index 3f3394f..9d18c45 100644
output = zalloc(sizeof *output);
if (output == NULL)
-@@ -542,7 +554,7 @@ fbdev_output_create(struct fbdev_compositor *compositor,
+@@ -547,7 +559,7 @@ fbdev_output_create(struct fbdev_backend *backend,
free(s);
- weston_output_init(&output->base, &compositor->base,
+ weston_output_init(&output->base, backend->compositor,
- 0, 0, output->fb_info.width_mm,
+ x, y, output->fb_info.width_mm,
output->fb_info.height_mm,
config_transform,
1);
-@@ -565,12 +577,43 @@ fbdev_output_create(struct fbdev_compositor *compositor,
- if (compositor->use_pixman) {
+@@ -570,10 +582,41 @@ fbdev_output_create(struct fbdev_backend *backend,
+ if (backend->use_pixman) {
if (pixman_renderer_output_create(&output->base) < 0)
goto out_shadow_surface;
- } else {
-+ }
-+ else if(compositor->use_gal2d) {
++ }
++ else if(backend->use_gal2d) {
+
+ char* fbenv = getenv("FB_FRAMEBUFFER_0");
+ setenv("FB_FRAMEBUFFER_0", device, 1);
-+ output->display = fbGetDisplay(compositor->base.wl_display);
++ output->display = fbGetDisplay(backend->compositor->wl_display);
+ if (output->display == NULL) {
+ fprintf(stderr, "failed to get display\n");
+ return 0;
@@ -155,64 +150,48 @@ index 3f3394f..9d18c45 100644
+ }
+
+ }
-+ else {
++ else {
setenv("HYBRIS_EGLPLATFORM", "wayland", 1);
-+ output->window = fbCreateWindow(compositor->display, -1, -1, 0, 0);
++ output->window = fbCreateWindow(backend->display, -1, -1, 0, 0);
+ if (output->window == NULL) {
+ fprintf(stderr, "failed to create window\n");
+ return 0;
+ }
if (gl_renderer->output_create(&output->base,
- (EGLNativeWindowType)NULL, NULL,
-- gl_renderer->opaque_attribs,
-- NULL, 0) < 0) {
-+ (NativeWindowType)output->window, NULL,
-+ gl_renderer->opaque_attribs,
-+ NULL, 0) < 0) {
++ (EGLNativeWindowType)output->window, NULL,
+ gl_renderer->opaque_attribs,
+ NULL, 0) < 0) {
weston_log("gl_renderer_output_create failed.\n");
- goto out_shadow_surface;
- }
-@@ -629,7 +672,11 @@ fbdev_output_destroy(struct weston_output *base)
+@@ -634,7 +677,11 @@ fbdev_output_destroy(struct weston_output *base)
free(output->shadow_buf);
output->shadow_buf = NULL;
}
- } else {
+ }
-+ else if (compositor->use_gal2d) {
++ else if (backend->use_gal2d) {
+ gal2d_renderer->output_destroy(base);
+ }
+ else {
gl_renderer->output_destroy(base);
}
-@@ -692,7 +739,7 @@ fbdev_output_reenable(struct fbdev_compositor *compositor,
+@@ -697,7 +744,7 @@ fbdev_output_reenable(struct fbdev_backend *backend,
* are re-initialised. */
device = output->device;
fbdev_output_destroy(base);
-- fbdev_output_create(compositor, device);
-+ fbdev_output_create(compositor, 0, 0, device);
+- fbdev_output_create(backend, device);
++ fbdev_output_create(backend, 0, 0, device);
return 0;
}
-@@ -850,7 +897,10 @@ fbdev_compositor_create(struct wl_display *display, int *argc, char *argv[],
- compositor->base.restore = fbdev_restore;
-
- compositor->prev_state = WESTON_COMPOSITOR_ACTIVE;
-- compositor->use_pixman = !param->use_gl;
-+ compositor->use_gal2d = param->use_gal2d;
-+ weston_log("compositor->use_gal2d=%d\n", compositor->use_gal2d);
-+ if(param->use_gl == 0 && param->use_gal2d == 0)
-+ compositor->use_pixman = 1;
-
- for (key = KEY_F1; key < KEY_F9; key++)
- weston_compositor_add_key_binding(&compositor->base, key,
-@@ -860,7 +910,50 @@ fbdev_compositor_create(struct wl_display *display, int *argc, char *argv[],
- if (compositor->use_pixman) {
- if (pixman_renderer_init(&compositor->base) < 0)
+@@ -863,7 +910,50 @@ fbdev_backend_create(struct weston_compositor *compositor, int *argc, char *argv
+ if (backend->use_pixman) {
+ if (pixman_renderer_init(compositor) < 0)
goto out_launcher;
- } else {
+ }
-+ else if (compositor->use_gal2d) {
++ else if (backend->use_gal2d) {
+ int x = 0, y = 0;
+ int i=0;
+ int count = 0;
@@ -225,7 +204,7 @@ index 3f3394f..9d18c45 100644
+ goto out_launcher;
+ }
+
-+ if (gal2d_renderer->create(&compositor->base) < 0) {
++ if (gal2d_renderer->create(backend->compositor) < 0) {
+ weston_log("gal2d_renderer_create failed.\n");
+ goto out_launcher;
+ }
@@ -247,30 +226,29 @@ index 3f3394f..9d18c45 100644
+
+ for(i=0; i<dispCount; i++)
+ {
-+ if (fbdev_output_create(compositor, x, y, displays[i]) < 0)
-+ goto out_pixman;
-+ x += container_of(compositor->base.output_list.prev,
++ if (fbdev_output_create(backend, x, y, displays[i]) < 0)
++ goto out_launcher;
++ x += container_of(backend->compositor->output_list.prev,
+ struct weston_output,
+ link)->width;
+ }
+ }
-+ else {
++ else {
gl_renderer = weston_load_module("gl-renderer.so",
"gl_renderer_interface");
if (!gl_renderer) {
-@@ -868,17 +961,22 @@ fbdev_compositor_create(struct wl_display *display, int *argc, char *argv[],
+@@ -871,17 +961,22 @@ fbdev_backend_create(struct weston_compositor *compositor, int *argc, char *argv
goto out_launcher;
}
-- if (gl_renderer->create(&compositor->base, NO_EGL_PLATFORM,
-- EGL_DEFAULT_DISPLAY,
-+ compositor->display = fbGetDisplay(compositor->base.wl_display);
-+ if (compositor->display == NULL) {
++ backend->display = fbGetDisplay(backend->compositor->wl_display);
++ if (backend->display == NULL) {
+ weston_log("fbGetDisplay failed.\n");
+ goto out_launcher;
+ }
-+
-+ if (gl_renderer->create(&compositor->base, NO_EGL_PLATFORM, compositor->display,
+ if (gl_renderer->create(compositor, NO_EGL_PLATFORM,
+- EGL_DEFAULT_DISPLAY,
++ backend->display,
gl_renderer->opaque_attribs,
NULL, 0) < 0) {
weston_log("gl_renderer_create failed.\n");
@@ -278,15 +256,15 @@ index 3f3394f..9d18c45 100644
}
}
-
-- if (fbdev_output_create(compositor, param->device) < 0)
-- goto out_pixman;
-+ if(!compositor->use_gal2d)
-+ if (fbdev_output_create(compositor, 0, 0, param->device) < 0)
-+ goto out_pixman;
+- if (fbdev_output_create(backend, param->device) < 0)
+- goto out_launcher;
++ if(!backend->use_gal2d)
++ if (fbdev_output_create(backend, 0, 0, param->device) < 0)
++ goto out_launcher;
- udev_input_init(&compositor->input, &compositor->base, compositor->udev, seat_id);
+ udev_input_init(&backend->input, compositor, backend->udev, seat_id);
-@@ -911,13 +1009,20 @@ backend_init(struct wl_display *display, int *argc, char *argv[],
+@@ -911,13 +1006,20 @@ backend_init(struct weston_compositor *compositor, int *argc, char *argv[],
struct fbdev_parameters param = {
.tty = 0, /* default to current tty */
.device = "/dev/fb0", /* default frame buffer */
@@ -310,31 +288,35 @@ index 3f3394f..9d18c45 100644
parse_options(fbdev_options, ARRAY_LENGTH(fbdev_options), argc, argv);
diff --git a/src/gal2d-renderer.c b/src/gal2d-renderer.c
new file mode 100644
-index 0000000..7ebbf98
+index 0000000..c68f02c
--- /dev/null
+++ b/src/gal2d-renderer.c
-@@ -0,0 +1,1337 @@
+@@ -0,0 +1,1342 @@
+/*
+ * Copyright (c) 2015 Freescale Semiconductor, Inc.
+ * Copyright © 2012 Intel Corporation
++ * Copyright © 2015 Collabora, Ltd.
+ *
-+ * Permission to use, copy, modify, distribute, and sell this software and
-+ * its documentation for any purpose is hereby granted without fee, provided
-+ * that the above copyright notice appear in all copies and that both that
-+ * copyright notice and this permission notice appear in supporting
-+ * documentation, and that the name of the copyright holders not be used in
-+ * advertising or publicity pertaining to distribution of the software
-+ * without specific, written prior permission. The copyright holders make
-+ * no representations about the suitability of this software for any
-+ * purpose. It is provided "as is" without express or implied warranty.
++ * Permission is hereby granted, free of charge, to any person obtaining
++ * a copy of this software and associated documentation files (the
++ * "Software"), to deal in the Software without restriction, including
++ * without limitation the rights to use, copy, modify, merge, publish,
++ * distribute, sublicense, and/or sell copies of the Software, and to
++ * permit persons to whom the Software is furnished to do so, subject to
++ * the following conditions:
+ *
-+ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
-+ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-+ * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
-+ * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
-+ * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
-+ * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
-+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
++ * The above copyright notice and this permission notice (including the
++ * next paragraph) shall be included in all copies or substantial
++ * portions of the Software.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
++ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
++ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
++ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
++ * SOFTWARE.
+ */
+
+#define _GNU_SOURCE
@@ -349,6 +331,7 @@ index 0000000..7ebbf98
+#include "compositor.h"
+#include "gal2d-renderer.h"
+#include "vertex-clipping.h"
++#include "shared/helpers.h"
+#include "HAL/gc_hal.h"
+#include "HAL/gc_hal_raster.h"
+#include "HAL/gc_hal_eglplatform.h"
@@ -1653,31 +1636,34 @@ index 0000000..7ebbf98
+};
diff --git a/src/gal2d-renderer.h b/src/gal2d-renderer.h
new file mode 100644
-index 0000000..fefcfd1
+index 0000000..279358d
--- /dev/null
+++ b/src/gal2d-renderer.h
-@@ -0,0 +1,47 @@
+@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2015 Freescale Semiconductor, Inc.
+ * Copyright © 2013 Vasily Khoruzhick <anarsoul at gmail.com>
+ *
-+ * Permission to use, copy, modify, distribute, and sell this software and
-+ * its documentation for any purpose is hereby granted without fee, provided
-+ * that the above copyright notice appear in all copies and that both that
-+ * copyright notice and this permission notice appear in supporting
-+ * documentation, and that the name of the copyright holders not be used in
-+ * advertising or publicity pertaining to distribution of the software
-+ * without specific, written prior permission. The copyright holders make
-+ * no representations about the suitability of this software for any
-+ * purpose. It is provided "as is" without express or implied warranty.
++ * Permission is hereby granted, free of charge, to any person obtaining
++ * a copy of this software and associated documentation files (the
++ * "Software"), to deal in the Software without restriction, including
++ * without limitation the rights to use, copy, modify, merge, publish,
++ * distribute, sublicense, and/or sell copies of the Software, and to
++ * permit persons to whom the Software is furnished to do so, subject to
++ * the following conditions:
++ *
++ * The above copyright notice and this permission notice (including the
++ * next paragraph) shall be included in all copies or substantial
++ * portions of the Software.
+ *
-+ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
-+ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
-+ * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
-+ * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
-+ * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
-+ * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
-+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
++ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
++ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
++ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
++ * SOFTWARE.
+ */
+#ifndef __gal_2d_renderer_h_
+#define __gal_2d_renderer_h_
@@ -1705,5 +1691,5 @@ index 0000000..fefcfd1
+
+#endif
--
-2.3.6
+2.5.1
diff --git a/recipes-graphics/wayland/weston/0006-MGS-1236-imx6qp-imx6dl-First-frame-distored-when-som.patch b/recipes-graphics/wayland/weston/0006-MGS-1236-imx6qp-imx6dl-First-frame-distored-when-som.patch
new file mode 100644
index 0000000..bed6f0c
--- /dev/null
+++ b/recipes-graphics/wayland/weston/0006-MGS-1236-imx6qp-imx6dl-First-frame-distored-when-som.patch
@@ -0,0 +1,106 @@
+From 2bd1096ac342e251980c639543c0fad2f7173e82 Mon Sep 17 00:00:00 2001
+From: Prabhu Sundararaj <prabhu.sundararaj at freescale.com>
+Date: Wed, 9 Dec 2015 18:20:35 -0600
+Subject: [PATCH] MGS-1236 : [imx6qp/imx6dl] First frame distored when some
+ wayland apps run continuously using g2d
+
+gco2D_SetSource was missing when using the blit operations and
+hence causing the issue.
+
+If the weston started without weston.ini, animations will be disabled,
+for xwayland the weston.ini need to be included and hence the error
+was shown.
+
+Also removing util functions reusing from libGAL.so
+
+Date: Dec 10, 2015
+Signed-off-by: Prabhu Sundararaj <prabhu.sundararaj at freescale.com>
+---
+ src/gal2d-renderer.c | 57 ++++++----------------------------------------------
+ 1 file changed, 6 insertions(+), 51 deletions(-)
+
+diff --git a/src/gal2d-renderer.c b/src/gal2d-renderer.c
+index 6e7d640..dbec2d0 100644
+--- a/src/gal2d-renderer.c
++++ b/src/gal2d-renderer.c
+@@ -186,56 +186,6 @@ get_output_state(struct weston_output *output)
+ return (struct gal2d_output_state *)output->renderer_state;
+ }
+
+-static gctUINT32
+-galGetStretchFactor(gctINT32 SrcSize, gctINT32 DestSize)
+-{
+- gctUINT stretchFactor;
+- if ( (SrcSize > 0) && (DestSize > 1) )
+- {
+- stretchFactor = ((SrcSize - 1) << 16) / (DestSize - 1);
+- }
+- else
+- {
+- stretchFactor = 0;
+- }
+- return stretchFactor;
+-}
+-
+-static gceSTATUS
+-galGetStretchFactors(
+- IN gcsRECT_PTR SrcRect,
+- IN gcsRECT_PTR DestRect,
+- OUT gctUINT32 * HorFactor,
+- OUT gctUINT32 * VerFactor
+- )
+-{
+- if (HorFactor != gcvNULL)
+- {
+- gctINT32 src, dest;
+-
+- /* Compute width of rectangles. */
+- gcmVERIFY_OK(gcsRECT_Width(SrcRect, &src));
+- gcmVERIFY_OK(gcsRECT_Width(DestRect, &dest));
+-
+- /* Compute and return horizontal stretch factor. */
+- *HorFactor = galGetStretchFactor(src, dest);
+- }
+-
+- if (VerFactor != gcvNULL)
+- {
+- gctINT32 src, dest;
+-
+- /* Compute height of rectangles. */
+- gcmVERIFY_OK(gcsRECT_Height(SrcRect, &src));
+- gcmVERIFY_OK(gcsRECT_Height(DestRect, &dest));
+-
+- /* Compute and return vertical stretch factor. */
+- *VerFactor = galGetStretchFactor(src, dest);
+- }
+- /* Success. */
+- return gcvSTATUS_OK;
+-}
+-
+ static gceSTATUS
+ gal2d_getSurfaceFormat(halDISPLAY_INFO info, gceSURF_FORMAT * Format)
+ {
+@@ -725,6 +675,7 @@ repaint_region(struct weston_view *ev, struct weston_output *output, struct gal2
+ srcStride, 1,
+ tiling, srcFormat, gcvSURF_0_DEGREE,
+ srcWidth, srcHeight);
++ gcmVERIFY_OK(gco2D_SetSource(gr->gcoEngine2d, &srcRect));
+ /* Setup mirror. */
+ gcmONERROR(gco2D_SetBitBlitMirror(gr->gcoEngine2d, gcvFALSE, gcvFALSE));
+ gcmONERROR(gco2D_SetROP(gr->gcoEngine2d, 0xCC, 0xCC));
+@@ -830,7 +781,11 @@ repaint_region(struct weston_view *ev, struct weston_output *output, struct gal2
+ }
+ else
+ {
+- gcmVERIFY_OK(galGetStretchFactors(&srcRect, &dstrect, &horFactor, &verFactor));
++ gcmVERIFY_OK(gco2D_CalcStretchFactor(gr->gcoEngine2d, srcRect.right - srcRect.left,
++ dstrect.right - dstrect.left, &horFactor));
++
++ gcmONERROR(gco2D_CalcStretchFactor(gr->gcoEngine2d, srcRect.bottom - srcRect.top,
++ dstrect.bottom - dstrect.top, &verFactor));
+
+ if(verFactor == 65536 && horFactor == 65536)
+ {
+--
+2.6.2
+
diff --git a/recipes-graphics/wayland/weston/0007-MGS-1236-1-imx6qp-imx6dl-First-frame-distored-when-s.patch b/recipes-graphics/wayland/weston/0007-MGS-1236-1-imx6qp-imx6dl-First-frame-distored-when-s.patch
new file mode 100644
index 0000000..1c094c4
--- /dev/null
+++ b/recipes-graphics/wayland/weston/0007-MGS-1236-1-imx6qp-imx6dl-First-frame-distored-when-s.patch
@@ -0,0 +1,51 @@
+From b33d44b736b7b7ae4db31dc32ff9441c753219fb Mon Sep 17 00:00:00 2001
+From: Prabhu Sundararaj <prabhu.sundararaj at freescale.com>
+Date: Mon, 28 Dec 2015 22:15:05 -0600
+Subject: [PATCH] MGS-1236-1 : [imx6qp/imx6dl] First frame distored when some
+ wayland apps run continuously using g2d
+
+Remove residual galGetStretchFactors functions. the function is not needed
+any more
+
+Date: Dec 28, 2015
+Signed-off-by: Prabhu Sundararaj <prabhu.sundararaj at freescale.com>
+---
+ src/gal2d-renderer.c | 14 +++++++++-----
+ 1 file changed, 9 insertions(+), 5 deletions(-)
+
+diff --git a/src/gal2d-renderer.c b/src/gal2d-renderer.c
+index dbec2d0..2ecc8ac 100644
+--- a/src/gal2d-renderer.c
++++ b/src/gal2d-renderer.c
+@@ -781,11 +781,11 @@ repaint_region(struct weston_view *ev, struct weston_output *output, struct gal2
+ }
+ else
+ {
+- gcmVERIFY_OK(gco2D_CalcStretchFactor(gr->gcoEngine2d, srcRect.right - srcRect.left,
+- dstrect.right - dstrect.left, &horFactor));
++ gcmVERIFY_OK(gco2D_CalcStretchFactor(gr->gcoEngine2d, srcRect.right - srcRect.left,
++ dstrect.right - dstrect.left, &horFactor));
+
+- gcmONERROR(gco2D_CalcStretchFactor(gr->gcoEngine2d, srcRect.bottom - srcRect.top,
+- dstrect.bottom - dstrect.top, &verFactor));
++ gcmONERROR(gco2D_CalcStretchFactor(gr->gcoEngine2d, srcRect.bottom - srcRect.top,
++ dstrect.bottom - dstrect.top, &verFactor));
+
+ if(verFactor == 65536 && horFactor == 65536)
+ {
+@@ -799,7 +799,11 @@ repaint_region(struct weston_view *ev, struct weston_output *output, struct gal2
+ srcRect.right = srcRect.right < dstWidth ? srcRect.right : dstWidth;
+ srcRect.bottom = srcRect.bottom < dstHeight ? srcRect.bottom : dstHeight;
+
+- gcmVERIFY_OK(galGetStretchFactors(&srcRect, &dstrect, &horFactor, &verFactor));
++ gcmVERIFY_OK(gco2D_CalcStretchFactor(gr->gcoEngine2d, srcRect.right - srcRect.left,
++ dstrect.right - dstrect.left, &horFactor));
++
++ gcmONERROR(gco2D_CalcStretchFactor(gr->gcoEngine2d, srcRect.bottom - srcRect.top,
++ dstrect.bottom - dstrect.top, &verFactor));
+ /* Program the stretch factors. */
+ gcmVERIFY_OK(gco2D_SetStretchFactors(gr->gcoEngine2d, horFactor, verFactor));
+
+--
+2.6.2
+
diff --git a/recipes-graphics/wayland/weston_%.bbappend b/recipes-graphics/wayland/weston_%.bbappend
index 6c8ba6d..1fc061d 100644
--- a/recipes-graphics/wayland/weston_%.bbappend
+++ b/recipes-graphics/wayland/weston_%.bbappend
@@ -1,10 +1,12 @@
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
SRC_URI_append_mx6 = " \
- file://0001-MGS-840-Add-i.MX6-support-for-weston.patch \
+ file://0002-MGS-1111-Add-GPU-VIV-suport-for-wayland-and-weston-1.patch \
file://0004-MGS-1235-Fix-setenv-and-clear-environments.patch \
- file://0005-MGS-1252-Fix-for-Qt5_CinematicExperience-will-meet-s.patch"
-
+ file://0005-MGS-1252-Fix-for-Qt5_CinematicExperience-will-meet-s.patch
+ file://0006-MGS-1236-imx6qp-imx6dl-First-frame-distored-when-som.patch \
+ file://0007-MGS-1236-1-imx6qp-imx6dl-First-frame-distored-when-s.patch \
+ "
PACKAGECONFIG_append_mx6q = " cairo-glesv2"
PACKAGECONFIG_append_mx6dl = " cairo-glesv2"
PACKAGECONFIG_append_mx6sx = " cairo-glesv2"
--
1.9.1
More information about the meta-freescale
mailing list