From def59d5aa61099be03a81e5189014ffe23f222e5 Mon Sep 17 00:00:00 2001 From: Fumiya Kohzu Date: Thu, 30 Nov 2023 13:28:56 +0900 Subject: UnifiedHMI: Update SRCREV for RVGPU and virtio-loopback-driver, and upgrade mesa-virtio. - OSS RVGPU update: Support for xdg_shell. - OSS virtio-gpu-driver update: Simplify directory structure, not use cmake. - Recipe updates: 1, Update SRCREV for RVGPU. Since RVGPU now supports xdg_shell in OSS, the patch enabling xdg_shell has been removed. 2, Remove the agl-shell-desktop interface because it is planned to be phased out. 3, Upgrade the base mesa for mesa-virtio from 18.2.0 to 20.3.5. Remove patches that were used with mesa-18.2.0. We are exploring ways to run it with the newer mesa. 4, Update SRCREV for virtio-loopback-driver. 5, Update meta-data for patches of RVGPU and virtio-gpu-driver. The content of the patches remains unchanged. We are planning to support a gRPC protocol interface for RVGPU. Bug-AGL: SPEC-4898 Change-Id: Ie314f40687c92ef93258b8fdc817584586d20e25 Signed-off-by: Fumiya Kohzu --- .../files/0001-Enable-using-python3.patch | 29 ----- .../0001-Use-wayland-scanner-in-the-path.patch | 37 ------ ...to-virtgpu-3d-transfer-to-host-linux-5-10.patch | 44 ------- ...to-virtgpu-3d-transfer-to-host-linux-5-15.patch | 47 -------- ...BufferData-Update-resource-backing-memory.patch | 91 -------------- ...x-missing-wayland-egl-backend-build-error.patch | 134 --------------------- 6 files changed, 382 deletions(-) delete mode 100644 meta-uhmi/meta-rvgpu/recipes-graphics/mesa-virtio/files/0001-Enable-using-python3.patch delete mode 100644 meta-uhmi/meta-rvgpu/recipes-graphics/mesa-virtio/files/0001-Use-wayland-scanner-in-the-path.patch delete mode 100644 meta-uhmi/meta-rvgpu/recipes-graphics/mesa-virtio/files/0001-add-stride-status-to-virtgpu-3d-transfer-to-host-linux-5-10.patch delete mode 100644 meta-uhmi/meta-rvgpu/recipes-graphics/mesa-virtio/files/0001-add-stride-status-to-virtgpu-3d-transfer-to-host-linux-5-15.patch delete mode 100644 meta-uhmi/meta-rvgpu/recipes-graphics/mesa-virtio/files/0001-glBufferData-Update-resource-backing-memory.patch delete mode 100644 meta-uhmi/meta-rvgpu/recipes-graphics/mesa-virtio/files/0002-mesa-virtio-Fix-missing-wayland-egl-backend-build-error.patch (limited to 'meta-uhmi/meta-rvgpu/recipes-graphics/mesa-virtio/files') diff --git a/meta-uhmi/meta-rvgpu/recipes-graphics/mesa-virtio/files/0001-Enable-using-python3.patch b/meta-uhmi/meta-rvgpu/recipes-graphics/mesa-virtio/files/0001-Enable-using-python3.patch deleted file mode 100644 index 30be886a..00000000 --- a/meta-uhmi/meta-rvgpu/recipes-graphics/mesa-virtio/files/0001-Enable-using-python3.patch +++ /dev/null @@ -1,29 +0,0 @@ -From b5aedd7844195a3ddae70f02de503636097a8ddb Mon Sep 17 00:00:00 2001 -From: Seimizu Joukan -Date: Fri, 20 Aug 2021 15:56:37 +0900 -Subject: [PATCH] Enable using python3 - -Python2 is not supported anymore since Yocto dunfell, -but mesa-18.2.0 depends on python2. - -Upstream-Status: Inappropriate [embedded specific] ---- - configure.ac | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index 42e1582..8c591ce 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -124,7 +124,7 @@ AC_PROG_GREP - AC_PROG_NM - AM_PROG_AS - AX_CHECK_GNU_MAKE --AC_CHECK_PROGS([PYTHON2], [python2.7 python2 python]) -+AC_CHECK_PROGS([PYTHON2], [python3 python2 python]) - AC_PROG_SED - AC_PROG_MKDIR_P - --- -2.17.1 - diff --git a/meta-uhmi/meta-rvgpu/recipes-graphics/mesa-virtio/files/0001-Use-wayland-scanner-in-the-path.patch b/meta-uhmi/meta-rvgpu/recipes-graphics/mesa-virtio/files/0001-Use-wayland-scanner-in-the-path.patch deleted file mode 100644 index b598cd47..00000000 --- a/meta-uhmi/meta-rvgpu/recipes-graphics/mesa-virtio/files/0001-Use-wayland-scanner-in-the-path.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 30da85819c26bb159fd2a6aaa2963f9332bda8d5 Mon Sep 17 00:00:00 2001 -From: Jussi Kukkonen -Date: Mon, 20 May 2019 14:50:19 +0300 -Subject: [PATCH] Simplify wayland-scanner lookup - -Don't use pkg-config to lookup the path of a binary that's in the path. - -Alternatively we'd have to prefix the path returned by pkg-config with -PKG_CONFIG_SYSROOT_DIR. - -Upstream-Status: Pending -Signed-off-by: Jussi Kukkonen ---- - configure.ac | 7 +------ - 1 file changed, 1 insertion(+), 6 deletions(-) - -diff --git a/configure.ac b/configure.ac -index aa64c99..97070b8 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1823,12 +1823,7 @@ for plat in $platforms; do - fi - WAYLAND_PROTOCOLS_DATADIR=`$PKG_CONFIG --variable=pkgdatadir wayland-protocols` - -- PKG_CHECK_MODULES([WAYLAND_SCANNER], [wayland-scanner], -- WAYLAND_SCANNER=`$PKG_CONFIG --variable=wayland_scanner wayland-scanner`, -- WAYLAND_SCANNER='') -- if test "x$WAYLAND_SCANNER" = x; then -- AC_PATH_PROG([WAYLAND_SCANNER], [wayland-scanner], [:]) -- fi -+ AC_PATH_PROG([WAYLAND_SCANNER], [wayland-scanner], [:]) - - if test "x$WAYLAND_SCANNER" = "x:"; then - AC_MSG_ERROR([wayland-scanner is needed to compile the wayland platform]) --- -2.7.4 - diff --git a/meta-uhmi/meta-rvgpu/recipes-graphics/mesa-virtio/files/0001-add-stride-status-to-virtgpu-3d-transfer-to-host-linux-5-10.patch b/meta-uhmi/meta-rvgpu/recipes-graphics/mesa-virtio/files/0001-add-stride-status-to-virtgpu-3d-transfer-to-host-linux-5-10.patch deleted file mode 100644 index ccf08333..00000000 --- a/meta-uhmi/meta-rvgpu/recipes-graphics/mesa-virtio/files/0001-add-stride-status-to-virtgpu-3d-transfer-to-host-linux-5-10.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 1301cdf196f7d27dc23cbd3de1b188369a66dc26 Mon Sep 17 00:00:00 2001 -From: "matsui.tetsuo" -Date: Tue, 10 Dec 2019 10:45:33 +0900 -Subject: [PATCH] Add stride status to virtgpu_3d_transfer_to_host - -The gallium driver in mesa-18.2.0 does not support kernel-5.10 stride -variable definitions. We are currently working on an update to mesa, -but currently need to use mesa-18.2.0, so the stride variable needs -to be defined. - -Upstream-Status: Inappropriate [embedded specific] ---- - src/gallium/winsys/virgl/drm/virgl_drm_winsys.c | 2 +- - src/gallium/winsys/virgl/drm/virtgpu_drm.h | 1 + - 2 files changed, 2 insertions(+), 1 deletion(-) - -diff --git a/src/gallium/winsys/virgl/drm/virgl_drm_winsys.c b/src/gallium/winsys/virgl/drm/virgl_drm_winsys.c -index 7f542e7..06a28c1 100644 ---- a/src/gallium/winsys/virgl/drm/virgl_drm_winsys.c -+++ b/src/gallium/winsys/virgl/drm/virgl_drm_winsys.c -@@ -266,7 +266,7 @@ virgl_bo_transfer_put(struct virgl_winsys *vws, - tohostcmd.box.d = box->depth; - tohostcmd.offset = buf_offset; - tohostcmd.level = level; -- // tohostcmd.stride = stride; -+ tohostcmd.stride = stride; - // tohostcmd.layer_stride = stride; - return drmIoctl(vdws->fd, DRM_IOCTL_VIRTGPU_TRANSFER_TO_HOST, &tohostcmd); - } -diff --git a/src/gallium/winsys/virgl/drm/virtgpu_drm.h b/src/gallium/winsys/virgl/drm/virtgpu_drm.h -index 30bc3af..1b99a6b 100644 ---- a/src/gallium/winsys/virgl/drm/virtgpu_drm.h -+++ b/src/gallium/winsys/virgl/drm/virtgpu_drm.h -@@ -102,6 +102,7 @@ struct drm_virtgpu_3d_transfer_to_host { - struct drm_virtgpu_3d_box box; - uint32_t level; - uint32_t offset; -+ uint32_t stride; - }; - - struct drm_virtgpu_3d_transfer_from_host { --- -2.7.4 - diff --git a/meta-uhmi/meta-rvgpu/recipes-graphics/mesa-virtio/files/0001-add-stride-status-to-virtgpu-3d-transfer-to-host-linux-5-15.patch b/meta-uhmi/meta-rvgpu/recipes-graphics/mesa-virtio/files/0001-add-stride-status-to-virtgpu-3d-transfer-to-host-linux-5-15.patch deleted file mode 100644 index 0456841f..00000000 --- a/meta-uhmi/meta-rvgpu/recipes-graphics/mesa-virtio/files/0001-add-stride-status-to-virtgpu-3d-transfer-to-host-linux-5-15.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 6e2991baaccfae69721c47e8c533522cfa99c490 Mon Sep 17 00:00:00 2001 -From: murakami -Date: Tue, 28 Mar 2023 14:20:34 +0900 -Subject: [PATCH] Add stride status to virtgpu 3d transfer to host - -The gallium driver in mesa-18.2.0 does not support kernel-5.15 stride -variable definitions. We are currently working on an update to mesa, -but currently need to use mesa-18.2.0, so the stride variable needs -to be defined. - -Upstream-Status: Inappropriate [embedded specific] ---- - src/gallium/winsys/virgl/drm/virgl_drm_winsys.c | 4 ++-- - src/gallium/winsys/virgl/drm/virtgpu_drm.h | 2 ++ - 2 files changed, 4 insertions(+), 2 deletions(-) - -diff --git a/src/gallium/winsys/virgl/drm/virgl_drm_winsys.c b/src/gallium/winsys/virgl/drm/virgl_drm_winsys.c -index 3bb637e..0f859c3 100644 ---- a/src/gallium/winsys/virgl/drm/virgl_drm_winsys.c -+++ b/src/gallium/winsys/virgl/drm/virgl_drm_winsys.c -@@ -266,8 +266,8 @@ virgl_bo_transfer_put(struct virgl_winsys *vws, - tohostcmd.box.d = box->depth; - tohostcmd.offset = buf_offset; - tohostcmd.level = level; -- // tohostcmd.stride = stride; -- // tohostcmd.layer_stride = stride; -+ tohostcmd.stride = 0; -+ tohostcmd.layer_stride = 0; - return drmIoctl(vdws->fd, DRM_IOCTL_VIRTGPU_TRANSFER_TO_HOST, &tohostcmd); - } - -diff --git a/src/gallium/winsys/virgl/drm/virtgpu_drm.h b/src/gallium/winsys/virgl/drm/virtgpu_drm.h -index 028e78c..307bbbd 100644 ---- a/src/gallium/winsys/virgl/drm/virtgpu_drm.h -+++ b/src/gallium/winsys/virgl/drm/virtgpu_drm.h -@@ -108,6 +108,8 @@ struct drm_virtgpu_3d_transfer_to_host { - struct drm_virtgpu_3d_box box; - uint32_t level; - uint32_t offset; -+ uint32_t stride; -+ uint32_t layer_stride; - }; - - struct drm_virtgpu_3d_transfer_from_host { --- -2.17.1 - diff --git a/meta-uhmi/meta-rvgpu/recipes-graphics/mesa-virtio/files/0001-glBufferData-Update-resource-backing-memory.patch b/meta-uhmi/meta-rvgpu/recipes-graphics/mesa-virtio/files/0001-glBufferData-Update-resource-backing-memory.patch deleted file mode 100644 index f146c54f..00000000 --- a/meta-uhmi/meta-rvgpu/recipes-graphics/mesa-virtio/files/0001-glBufferData-Update-resource-backing-memory.patch +++ /dev/null @@ -1,91 +0,0 @@ -From 6e23c8970762309d3f2b88f252333b2492aacd28 Mon Sep 17 00:00:00 2001 -From: Andrii Pauk -Date: Sat, 27 Feb 2021 17:42:00 +0200 -Subject: [PATCH] glBufferData: Update resource backing memory. - -Update buffer backing memory on buffer initialization with data. -This is workaround for UHMI project, where -VIRTIO_GPU_CMD_TRANSFER_FROM_HOST_3D command is not implemented. - -The problem is in the following use-case: -1) glBufferData --- reserves guest memory "backing" for resource, -but doesn't fill it with data. Instead, data is serialized into -virgl internal command and sent using VIRTIO_GPU_CMD_SUBMIT_3D -comand. This command is opaque for rproxy/rvdds and serialized cmd buffer -is just forwarded to virglrenderer, where it is deserialized and -used for initialization of internal "gpu" memory with this data. -2) glMapBuffer --- this calls TRANSFER_FROM_HOST_3D, which asks host/rproxy--> -rvdds/virglrenderer to update backing memory (on source) with buffer data. -And further this backing memory is mapped to guest application. -In case of UHMI, TRANSFER_FROM_HOST_3D is not implemented, thus the memory is -not "initialized". -3) Modify buffer memory, but not whole memory, just some chunks. -4) glUnmapBuffer --- this will trigger VIRTIO_GPU_CMD_TRANSFER_TO_HOST_3D -command, which will send to target whole buffer memory and will overwrite -previous memory. It's ok for modified in step 3 memory, but other is -just garbage (I always saw zero filled memory). - -The above scenario produces artifacts on buffer-scene of glmark, in case of -"update-method=map", which forces glmark to use 1-4 flow. - -As a workaround, fill buffer backing memory with data on step 1. - -Issue: EXDCLXXII-420 - -Upstream-Status: Pending ---- - src/gallium/auxiliary/util/u_inlines.h | 21 +++++++++++++++++++++ - src/mesa/state_tracker/st_cb_bufferobjects.c | 4 +++- - 2 files changed, 24 insertions(+), 1 deletion(-) - -diff --git a/src/gallium/auxiliary/util/u_inlines.h b/src/gallium/auxiliary/util/u_inlines.h -index dee6f8f..4745f7b 100644 ---- a/src/gallium/auxiliary/util/u_inlines.h -+++ b/src/gallium/auxiliary/util/u_inlines.h -@@ -462,6 +462,27 @@ pipe_buffer_read(struct pipe_context *pipe, - pipe_buffer_unmap(pipe, src_transfer); - } - -+static inline void -+pipe_buffer_update_backing(struct pipe_context *pipe, -+ struct pipe_resource *buf, -+ unsigned offset, -+ unsigned size, -+ void *data) -+{ -+ struct pipe_transfer *src_transfer; -+ ubyte *map; -+ -+ map = (ubyte *) pipe_buffer_map_range(pipe, -+ buf, -+ offset, size, -+ PIPE_TRANSFER_WRITE, -+ &src_transfer); -+ if (!map) -+ return; -+ -+ memcpy(map, data, size); -+ pipe_buffer_unmap(pipe, src_transfer); -+} - - /** - * Map a resource for reading/writing. -diff --git a/src/mesa/state_tracker/st_cb_bufferobjects.c b/src/mesa/state_tracker/st_cb_bufferobjects.c -index 5ebe94f..cb33c8c 100644 ---- a/src/mesa/state_tracker/st_cb_bufferobjects.c -+++ b/src/mesa/state_tracker/st_cb_bufferobjects.c -@@ -343,8 +343,10 @@ bufferobj_data(struct gl_context *ctx, - else { - st_obj->buffer = screen->resource_create(screen, &buffer); - -- if (st_obj->buffer && data) -+ if (st_obj->buffer && data) { - pipe_buffer_write(pipe, st_obj->buffer, 0, size, data); -+ pipe_buffer_update_backing(pipe, st_obj->buffer, 0, size, data); -+ } - } - - if (!st_obj->buffer) { --- -2.7.4 - diff --git a/meta-uhmi/meta-rvgpu/recipes-graphics/mesa-virtio/files/0002-mesa-virtio-Fix-missing-wayland-egl-backend-build-error.patch b/meta-uhmi/meta-rvgpu/recipes-graphics/mesa-virtio/files/0002-mesa-virtio-Fix-missing-wayland-egl-backend-build-error.patch deleted file mode 100644 index af2e8c36..00000000 --- a/meta-uhmi/meta-rvgpu/recipes-graphics/mesa-virtio/files/0002-mesa-virtio-Fix-missing-wayland-egl-backend-build-error.patch +++ /dev/null @@ -1,134 +0,0 @@ -From d676753e3089c5bccb73750fba0f14d287f8add9 Mon Sep 17 00:00:00 2001 -From: Ihor Korynkevych -Date: Mon, 20 May 2019 15:44:30 +0300 -Subject: [PATCH] mesa-virtio: Fix missing wayland-egl-backend build error. - -From the mesa 18.2.8 release notes: libwayland-egl is now distributed by Wayland -(since 1.15, see announcement), and has been removed from Mesa in this release. - -Add back the wayland-egl-backend header file not to break the build. - -Issue: EXDCLXXII-59 - -Upstream-Status: Pending - -Signed-off-by: Ihor Korynkevych ---- - configure.ac | 4 -- - src/egl/Makefile.am | 3 + - src/egl/wayland/wayland-egl/wayland-egl-backend.h | 67 +++++++++++++++++++++++ - 3 files changed, 70 insertions(+), 4 deletions(-) - create mode 100644 src/egl/wayland/wayland-egl/wayland-egl-backend.h - -diff --git a/configure.ac b/configure.ac -index 97070b8..afc81e6 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -90,7 +90,6 @@ LIBOMXIL_TIZONIA_REQUIRED=0.10.0 - LIBVA_REQUIRED=0.39.0 - VDPAU_REQUIRED=1.1 - WAYLAND_REQUIRED=1.11 --WAYLAND_EGL_BACKEND_REQUIRED=3 - WAYLAND_PROTOCOLS_REQUIRED=1.8 - XCB_REQUIRED=1.9.3 - XCBDRI2_REQUIRED=1.8 -@@ -1818,9 +1817,6 @@ for plat in $platforms; do - PKG_CHECK_MODULES([WAYLAND_CLIENT], [wayland-client >= $WAYLAND_REQUIRED]) - PKG_CHECK_MODULES([WAYLAND_SERVER], [wayland-server >= $WAYLAND_REQUIRED]) - PKG_CHECK_MODULES([WAYLAND_PROTOCOLS], [wayland-protocols >= $WAYLAND_PROTOCOLS_REQUIRED]) -- if test "x$enable_egl" = xyes; then -- PKG_CHECK_MODULES([WAYLAND_EGL], [wayland-egl-backend >= $WAYLAND_EGL_BACKEND_REQUIRED]) -- fi - WAYLAND_PROTOCOLS_DATADIR=`$PKG_CONFIG --variable=pkgdatadir wayland-protocols` - - AC_PATH_PROG([WAYLAND_SCANNER], [wayland-scanner], [:]) -diff --git a/src/egl/Makefile.am b/src/egl/Makefile.am -index b43805d..0fcc24a 100644 ---- a/src/egl/Makefile.am -+++ b/src/egl/Makefile.am -@@ -123,6 +123,9 @@ AM_CFLAGS += \ - -DDEFAULT_DRIVER_DIR=\"$(DRI_DRIVER_SEARCH_DIR)\" \ - -D_EGL_BUILT_IN_DRIVER_DRI2 - -+AM_CFLAGS += \ -+ -I$(top_srcdir)/src/egl/wayland/wayland-egl -+ - nodist_libEGL_common_la_SOURCES = \ - $(dri2_backend_GENERATED_FILES) - -diff --git a/src/egl/wayland/wayland-egl/wayland-egl-backend.h b/src/egl/wayland/wayland-egl/wayland-egl-backend.h -new file mode 100644 -index 0000000..869c86f ---- /dev/null -+++ b/src/egl/wayland/wayland-egl/wayland-egl-backend.h -@@ -0,0 +1,67 @@ -+/* -+ * Copyright © 2011 Benjamin Franzke -+ * -+ * 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 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. -+ * -+ * Authors: -+ * Benjamin Franzke -+ */ -+ -+#ifndef _WAYLAND_EGL_PRIV_H -+#define _WAYLAND_EGL_PRIV_H -+ -+#include -+ -+#ifdef __cplusplus -+extern "C" { -+#endif -+ -+/* -+ * NOTE: This version must be kept in sync with the Version field in the -+ * wayland-egl-backend.pc.in file. -+ */ -+#define WL_EGL_WINDOW_VERSION 3 -+ -+struct wl_surface; -+ -+struct wl_egl_window { -+ const intptr_t version; -+ -+ int width; -+ int height; -+ int dx; -+ int dy; -+ -+ int attached_width; -+ int attached_height; -+ -+ void *driver_private; -+ void (*resize_callback)(struct wl_egl_window *, void *); -+ void (*destroy_window_callback)(void *); -+ -+ struct wl_surface *surface; -+}; -+ -+#ifdef __cplusplus -+} -+#endif -+ -+#endif --- -2.7.4 - -- cgit 1.2.3-korg