diff options
Diffstat (limited to 'meta-xilinx/meta-xilinx-bsp/recipes-graphics/weston')
5 files changed, 129 insertions, 0 deletions
diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-graphics/weston/files/0001-gl-renderer.c-Use-gr-egl_config-to-create-pbuffer-su.patch b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/weston/files/0001-gl-renderer.c-Use-gr-egl_config-to-create-pbuffer-su.patch new file mode 100644 index 000000000..d7d411f63 --- /dev/null +++ b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/weston/files/0001-gl-renderer.c-Use-gr-egl_config-to-create-pbuffer-su.patch @@ -0,0 +1,84 @@ +From 7cc76d50bddd6ff1eb5fb19712415f385f5d3f49 Mon Sep 17 00:00:00 2001 +From: Madhurkiran Harikrishnan <madhurkiran.harikrishnan@xilinx.com> +Date: Mon, 3 Feb 2020 14:26:21 -0800 +Subject: [PATCH] gl-renderer.c: Use gr->egl_config to create pbuffer surface + +The original implementation always chose first egl config for pbuffer +surface type, however the returned configs are implementation specific +and egl config may not always match between ctx and surface. Hence, +use gr->egl_config which already has the matching config but ensure that +windows and pbuffer bit are set for the surface type. + +Signed-off-by: Madhurkiran Harikrishnan <madhurkiran.harikrishnan@xilinx.com> +Upstream-status: Pending +--- + libweston/renderer-gl/gl-renderer.c | 28 ++++++++++++++-------------- + 1 file changed, 14 insertions(+), 14 deletions(-) + +diff --git a/libweston/renderer-gl/gl-renderer.c b/libweston/renderer-gl/gl-renderer.c +index 54f8b1c..f50c959 100644 +--- a/libweston/renderer-gl/gl-renderer.c ++++ b/libweston/renderer-gl/gl-renderer.c +@@ -3567,7 +3567,7 @@ gl_renderer_setup_egl_extensions(struct weston_compositor *ec) + } + + static const EGLint gl_renderer_opaque_attribs[] = { +- EGL_SURFACE_TYPE, EGL_WINDOW_BIT, ++ EGL_SURFACE_TYPE, EGL_WINDOW_BIT | EGL_PBUFFER_BIT, + EGL_RED_SIZE, 1, + EGL_GREEN_SIZE, 1, + EGL_BLUE_SIZE, 1, +@@ -3577,7 +3577,7 @@ static const EGLint gl_renderer_opaque_attribs[] = { + }; + + static const EGLint gl_renderer_alpha_attribs[] = { +- EGL_SURFACE_TYPE, EGL_WINDOW_BIT, ++ EGL_SURFACE_TYPE, EGL_WINDOW_BIT | EGL_PBUFFER_BIT, + EGL_RED_SIZE, 1, + EGL_GREEN_SIZE, 1, + EGL_BLUE_SIZE, 1, +@@ -3682,15 +3682,7 @@ static int + gl_renderer_create_pbuffer_surface(struct gl_renderer *gr) { + EGLConfig pbuffer_config; + +- static const EGLint pbuffer_config_attribs[] = { +- EGL_SURFACE_TYPE, EGL_PBUFFER_BIT, +- EGL_RED_SIZE, 1, +- EGL_GREEN_SIZE, 1, +- EGL_BLUE_SIZE, 1, +- EGL_ALPHA_SIZE, 0, +- EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT, +- EGL_NONE +- }; ++ EGLint surface_type; + + static const EGLint pbuffer_attribs[] = { + EGL_WIDTH, 10, +@@ -3698,13 +3690,21 @@ gl_renderer_create_pbuffer_surface(struct gl_renderer *gr) { + EGL_NONE + }; + +- if (egl_choose_config(gr, pbuffer_config_attribs, NULL, 0, &pbuffer_config) < 0) { +- weston_log("failed to choose EGL config for PbufferSurface\n"); ++ if(!eglGetConfigAttrib(gr->egl_display, gr->egl_config, EGL_SURFACE_TYPE, &surface_type)) { ++ weston_log("failed to get surface type for PbufferSurface\n"); ++ return -1; ++ } ++ ++ if (!((surface_type & EGL_WINDOW_BIT) && (surface_type & EGL_PBUFFER_BIT)) && ++ !gr->has_configless_context) { ++ weston_log("attempted to use a different EGL config for an " ++ "output but EGL_KHR_no_config_context or " ++ "EGL_MESA_configless_context is not supported\n"); + return -1; + } + + gr->dummy_surface = eglCreatePbufferSurface(gr->egl_display, +- pbuffer_config, ++ gr->egl_config, + pbuffer_attribs); + + if (gr->dummy_surface == EGL_NO_SURFACE) { +-- +2.7.4 + diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-graphics/weston/files/0001-libweston-Remove-substitute-format-for-ARGB8888.patch b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/weston/files/0001-libweston-Remove-substitute-format-for-ARGB8888.patch new file mode 100644 index 000000000..e8e8a1f00 --- /dev/null +++ b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/weston/files/0001-libweston-Remove-substitute-format-for-ARGB8888.patch @@ -0,0 +1,29 @@ +From 77afc64239199f75041ec344f8f886ee20bba0f8 Mon Sep 17 00:00:00 2001 +From: Madhurkiran Harikrishnan <madhurkiran.harikrishnan@xilinx.com> +Date: Tue, 11 Feb 2020 19:07:45 -0800 +Subject: [PATCH] libweston: Remove substitute format for ARGB8888 + +Xilinx DP gfx layer does not support XRGB8888. Hence, remove the same +as opaque substitute. + +Signed-off-by: Madhurkiran Harikrishnan <madhurkiran.harikrishnan@xilinx.com> +Upstream-Status : Inappropriate [Xilinx specific] +--- + libweston/pixel-formats.c | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/libweston/pixel-formats.c b/libweston/pixel-formats.c +index b96f3b2..e2a7715 100644 +--- a/libweston/pixel-formats.c ++++ b/libweston/pixel-formats.c +@@ -165,7 +165,6 @@ static const struct pixel_format_info pixel_format_table[] = { + }, + { + DRM_FORMAT(ARGB8888), +- .opaque_substitute = DRM_FORMAT_XRGB8888, + .depth = 32, + .bpp = 32, + GL_FORMAT(GL_BGRA_EXT), +-- +2.7.4 + diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-graphics/weston/files/weston.ini b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/weston/files/weston.ini new file mode 100644 index 000000000..783a9c6b8 --- /dev/null +++ b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/weston/files/weston.ini @@ -0,0 +1,4 @@ +[core] +idle-time=0 + +gbm-format=rgb565 diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-graphics/weston/weston-init%.bbappend b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/weston/weston-init%.bbappend new file mode 100644 index 000000000..aaee7f5dc --- /dev/null +++ b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/weston/weston-init%.bbappend @@ -0,0 +1,7 @@ +FILESEXTRAPATHS_prepend_zynqmp := "${THISDIR}/files:" + +SRC_URI_append_zynqmp = " file://weston.ini" + +do_install_append_zynqmp() { + install -Dm 0700 ${WORKDIR}/weston.ini ${D}/${sysconfdir}/xdg/weston/weston.ini +} diff --git a/meta-xilinx/meta-xilinx-bsp/recipes-graphics/weston/weston_%.bbappend b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/weston/weston_%.bbappend new file mode 100644 index 000000000..a13b627a4 --- /dev/null +++ b/meta-xilinx/meta-xilinx-bsp/recipes-graphics/weston/weston_%.bbappend @@ -0,0 +1,5 @@ +FILESEXTRAPATHS_prepend_zynqmp := "${THISDIR}/files:" + +SRC_URI_append_zynqmp = " file://0001-gl-renderer.c-Use-gr-egl_config-to-create-pbuffer-su.patch \ + file://0001-libweston-Remove-substitute-format-for-ARGB8888.patch \ + " |