diff options
Diffstat (limited to 'meta-agl-drm-lease/dynamic-layers/meta-rcar-gen3/recipes-graphics/wayland/wayland-wsegl')
2 files changed, 92 insertions, 0 deletions
diff --git a/meta-agl-drm-lease/dynamic-layers/meta-rcar-gen3/recipes-graphics/wayland/wayland-wsegl/0001-waylandws_client-Ensure-that-supported-DMAbuf-format.patch b/meta-agl-drm-lease/dynamic-layers/meta-rcar-gen3/recipes-graphics/wayland/wayland-wsegl/0001-waylandws_client-Ensure-that-supported-DMAbuf-format.patch new file mode 100644 index 00000000..850099c8 --- /dev/null +++ b/meta-agl-drm-lease/dynamic-layers/meta-rcar-gen3/recipes-graphics/wayland/wayland-wsegl/0001-waylandws_client-Ensure-that-supported-DMAbuf-format.patch @@ -0,0 +1,55 @@ +From 5a0a17bc0dafe577ec02ad2205c25bc8acb2c5e6 Mon Sep 17 00:00:00 2001 +From: Damian Hobson-Garcia <dhobsong@igel.co.jp> +Date: Mon, 25 Oct 2021 18:26:34 +0900 +Subject: [PATCH 1/3] waylandws_client: Ensure that supported DMAbuf formats + are received + +Explicitly check that the list of supported dmabuf formats have +been received from the server during initialization. At least +one pixel format must be supported in order to complete initialization +successfully. +--- + src/waylandws_client.c | 20 ++++++++++++++++++++ + 1 file changed, 20 insertions(+) + +diff --git a/src/waylandws_client.c b/src/waylandws_client.c +index e917347..20bfac9 100644 +--- a/src/waylandws_client.c ++++ b/src/waylandws_client.c +@@ -698,6 +698,20 @@ static bool setup_buffer_sharing(WLWSClientDisplay *display) + return authenticate_kms_device(display); + } + ++static bool ensure_supported_dmabuf_formats(WLWSClientDisplay *display) ++{ ++ if (!display->zlinux_dmabuf) ++ return true; ++ ++ if (wl_display_roundtrip_queue(display->wl_display, display->wl_queue) < 0 || ++ !display->enable_formats) { ++ /* No supported dmabuf pixel formats */ ++ return false; ++ } ++ ++ return true; ++} ++ + /*********************************************************************************** + Function Name : WSEGL_InitialiseDisplay + Inputs : hNativeDisplay +@@ -755,6 +769,12 @@ static WSEGLError WSEGLc_InitialiseDisplay(NativeDisplayType hNativeDisplay, + goto fail; + } + ++ /* Get the list of supported pixel formats */ ++ if (!ensure_supported_dmabuf_formats(display)) { ++ err = WSEGL_BAD_NATIVE_DISPLAY; ++ goto fail; ++ } ++ + /* XXX: should we wrap this with wl_kms client code? */ + if (kms_create(display->fd, &display->kms)) { + err = WSEGL_BAD_NATIVE_DISPLAY; +-- +2.25.1 + diff --git a/meta-agl-drm-lease/dynamic-layers/meta-rcar-gen3/recipes-graphics/wayland/wayland-wsegl/0002-waylandws_client-Rename-DRM-device-setup-function.patch b/meta-agl-drm-lease/dynamic-layers/meta-rcar-gen3/recipes-graphics/wayland/wayland-wsegl/0002-waylandws_client-Rename-DRM-device-setup-function.patch new file mode 100644 index 00000000..e756d22e --- /dev/null +++ b/meta-agl-drm-lease/dynamic-layers/meta-rcar-gen3/recipes-graphics/wayland/wayland-wsegl/0002-waylandws_client-Rename-DRM-device-setup-function.patch @@ -0,0 +1,37 @@ +From 10c7f13a3d868d489054d8af4463bb68036055c6 Mon Sep 17 00:00:00 2001 +From: Damian Hobson-Garcia <dhobsong@igel.co.jp> +Date: Tue, 26 Oct 2021 15:05:38 +0900 +Subject: [PATCH 2/3] waylandws_client: Rename DRM device setup function + +Make the function name better reflect its purpose. Namely, +getting the drm device and setting up authentication if +necessary. +--- + src/waylandws_client.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/waylandws_client.c b/src/waylandws_client.c +index 20bfac9..0638862 100644 +--- a/src/waylandws_client.c ++++ b/src/waylandws_client.c +@@ -681,7 +681,7 @@ static bool authenticate_kms_device(WLWSClientDisplay *display) + return true; + } + +-static bool setup_buffer_sharing(WLWSClientDisplay *display) ++static bool setup_drm_device(WLWSClientDisplay *display) + { + display->fd = -1; + +@@ -764,7 +764,7 @@ static WSEGLError WSEGLc_InitialiseDisplay(NativeDisplayType hNativeDisplay, + wl_registry_add_listener(display->wl_registry, &wayland_registry_listener, display); + + /* Now setup the DRM device */ +- if (!setup_buffer_sharing(display)) { ++ if (!setup_drm_device(display)) { + err = WSEGL_BAD_NATIVE_DISPLAY; + goto fail; + } +-- +2.25.1 + |