diff options
author | Marius Vlad <marius.vlad@collabora.com> | 2023-03-28 17:27:24 +0300 |
---|---|---|
committer | Jan-Simon Moeller <jsmoeller@linuxfoundation.org> | 2023-03-31 21:49:45 +0000 |
commit | e9f25619d276d2d12142658313d730056109351e (patch) | |
tree | 06595df172c9159aaf68c4cd7a5c06ae553eba71 /meta-agl-bsp | |
parent | ae6ecba1b6239de0b075cb1d42a62604ae7523f0 (diff) |
meta-core/recipes-graphics/mesa: Backport a fix from 22.2.5
This adds
0001-virgl-don-t-a-use-staging-when-a-resources-created-w.patch which is
a backport from mesa 22.2.5 as a tentative fix for running on virgl on the x86
platform.
This issue seems have been fixed 22.2.4 and 22.2.5, but the original
change was initially quite a long time before in 22.0.X and we seem to
be using 22.0.3.
This also seems to affect Xen when updating it from 4.16 to 4.18.
Bug-AGL: SPEC-4724
Change-Id: I255e30d8e513b8f3bbfa720a24c1afcbd40af2c9
Reported-by: Rahul Kumar <Rahul.Kumar1@amd.com>
Tested-by: Rahul Kumar <Rahul.Kumar1@amd.com>
Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Reviewed-on: https://gerrit.automotivelinux.org/gerrit/c/AGL/meta-agl/+/28580
Tested-by: Jenkins Job builder account
Reviewed-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org>
Diffstat (limited to 'meta-agl-bsp')
-rw-r--r-- | meta-agl-bsp/meta-core/recipes-graphics/mesa/mesa/0001-virgl-don-t-a-use-staging-when-a-resources-created-w.patch | 48 | ||||
-rw-r--r-- | meta-agl-bsp/meta-core/recipes-graphics/mesa/mesa_%.bbappend | 4 |
2 files changed, 52 insertions, 0 deletions
diff --git a/meta-agl-bsp/meta-core/recipes-graphics/mesa/mesa/0001-virgl-don-t-a-use-staging-when-a-resources-created-w.patch b/meta-agl-bsp/meta-core/recipes-graphics/mesa/mesa/0001-virgl-don-t-a-use-staging-when-a-resources-created-w.patch new file mode 100644 index 000000000..9d6b2f3d0 --- /dev/null +++ b/meta-agl-bsp/meta-core/recipes-graphics/mesa/mesa/0001-virgl-don-t-a-use-staging-when-a-resources-created-w.patch @@ -0,0 +1,48 @@ +From f50ff0b5cf2bfedfc2fd660ccfbfd5cfc3c131d1 Mon Sep 17 00:00:00 2001 +From: Marius Vlad <marius.vlad@collabora.com> +Date: Tue, 28 Mar 2023 15:33:26 +0300 +Subject: [PATCH] virgl: don't a use staging when a resources created with the + shared flag + +There seems to be a problem with running firefox by using Xwayland that +results in a shared resources being not always tagged as using staging. + +As a result one process tries to map the resource that was allocated as +one that uses staging without actually using the staging resource, and +hence the mapped range only accounts for the small region that we have +to allocated because a zero-allocation doesn't work, but the application +mapping the resource assumes that a properly sized range is mapped, and +consequently this results in invalid memory access. + +To work around this issue disable creating staging for resources that +are created by using shared binding. It is not clear to me whether this +is the best fix, but it seems to quell the issue. + +Fixes: c9d99b7eec7ec14d6d71d381a424b6280d75a882 +virgl: Fix texture transfers by using a staging resource + +Related: https://gitlab.freedesktop.org/virgl/virglrenderer/-/issues/291 +Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19655> +(cherry picked from commit e496d24cb2d5339566c08c79a8aa7809c240613c) + +Signed-off-by: Marius Vlad <marius.vlad@collabora.com> +(cherry picked from commit 39e9ea1419beb22ab7f4913b6d55f845f94d689a) +--- + src/gallium/drivers/virgl/virgl_resource.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/gallium/drivers/virgl/virgl_resource.c b/src/gallium/drivers/virgl/virgl_resource.c +index 7185c9a90ff..257b790d437 100644 +--- a/src/gallium/drivers/virgl/virgl_resource.c ++++ b/src/gallium/drivers/virgl/virgl_resource.c +@@ -100,6 +100,7 @@ static bool virgl_can_copy_transfer_from_host(struct virgl_screen *vs, + { + return virgl_can_use_staging(vs, res) && + !is_stencil_array(res) && ++ !(bind & VIRGL_BIND_SHARED) && + virgl_has_readback_format(&vs->base, pipe_to_virgl_format(res->b.format), false) && + ((!(vs->caps.caps.v2.capability_bits & VIRGL_CAP_FAKE_FP64)) || + virgl_can_readback_from_rendertarget(vs, res) || +-- +2.35.1 + diff --git a/meta-agl-bsp/meta-core/recipes-graphics/mesa/mesa_%.bbappend b/meta-agl-bsp/meta-core/recipes-graphics/mesa/mesa_%.bbappend index 3d5903d85..27dd78371 100644 --- a/meta-agl-bsp/meta-core/recipes-graphics/mesa/mesa_%.bbappend +++ b/meta-agl-bsp/meta-core/recipes-graphics/mesa/mesa_%.bbappend @@ -1 +1,5 @@ +FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:" + +SRC_URI += "file://0001-virgl-don-t-a-use-staging-when-a-resources-created-w.patch" + require ${@bb.utils.contains('AGL_FEATURES', 'aglcore', '${BPN}_agl.inc', '', d)} |