From 81e0c298433fefa4af5999db24f899ac0edd8adf Mon Sep 17 00:00:00 2001 From: classabbyamp Date: Sat, 3 Dec 2022 14:30:58 -0500 Subject: [PATCH] mesa: restore erroneously-removed patches removed in #39722 --- ...ch64-force-persistent-buffers-to-GTT.patch | 39 +++++++++++++++++++ .../mesa/patches/megadriver-symlinks.patch | 25 ++++++++++++ srcpkgs/mesa/template | 2 +- 3 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 srcpkgs/mesa/patches/0001-radeonsi-On-Aarch64-force-persistent-buffers-to-GTT.patch create mode 100644 srcpkgs/mesa/patches/megadriver-symlinks.patch diff --git a/srcpkgs/mesa/patches/0001-radeonsi-On-Aarch64-force-persistent-buffers-to-GTT.patch b/srcpkgs/mesa/patches/0001-radeonsi-On-Aarch64-force-persistent-buffers-to-GTT.patch new file mode 100644 index 000000000000..0890a795306b --- /dev/null +++ b/srcpkgs/mesa/patches/0001-radeonsi-On-Aarch64-force-persistent-buffers-to-GTT.patch @@ -0,0 +1,39 @@ +https://gist.github.com/jnettlet/4dd6e43bcd5a551df29b12d3212e6edd + +From d72aa8ae74ffb7329003f9f23ffa05833af951ab Mon Sep 17 00:00:00 2001 +From: Jon Nettleton +Date: Fri, 14 Aug 2020 13:36:08 +0200 +Subject: [PATCH] radeonsi: On Aarch64 force persistent buffers to GTT + +This fixes a glamore corruption issue on the HoneyComb and by +internet reports should also fix problems seen on Huaweii +Kunpeng hardware. + +The root cause of the corruption needs to be worked out, but +this patch also adds a noticable performance improvement. The +aquarium webgl demo under chromium increases from 39-49 FPS +when 5000 fish being rendered is selected. Glmark scores also +improve by ~200 with no specific tests showing any regression. + +Signed-off-by: Jon Nettleton +--- + src/gallium/drivers/radeonsi/si_buffer.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/src/gallium/drivers/radeonsi/si_buffer.c b/src/gallium/drivers/radeonsi/si_buffer.c +index 6b58aebee2d..c9e983367a0 100644 +--- a/src/gallium/drivers/radeonsi/si_buffer.c ++++ b/src/gallium/drivers/radeonsi/si_buffer.c +@@ -91,6 +91,10 @@ void si_init_resource_fields(struct si_screen *sscreen, struct si_resource *res, + */ + if (!sscreen->info.is_amdgpu) + res->domains = RADEON_DOMAIN_GTT; ++ ++#if defined(PIPE_ARCH_AARCH64) ++ res->domains = RADEON_DOMAIN_GTT; ++#endif + } + + /* Tiled textures are unmappable. Always put them in VRAM. */ +-- +2.26.2 diff --git a/srcpkgs/mesa/patches/megadriver-symlinks.patch b/srcpkgs/mesa/patches/megadriver-symlinks.patch new file mode 100644 index 000000000000..c19c42719422 --- /dev/null +++ b/srcpkgs/mesa/patches/megadriver-symlinks.patch @@ -0,0 +1,25 @@ +This converts megadriver installation to use symlinks so that we do +not have to deal with skipping the strip stage for some files, as +a result simplifying our template greatly. + +--- a/bin/install_megadrivers.py ++++ b/bin/install_megadrivers.py +@@ -56,7 +56,7 @@ def main(): + if os.path.lexists(abs_driver): + os.unlink(abs_driver) + print('installing {} to {}'.format(args.megadriver, abs_driver)) +- os.link(master, abs_driver) ++ os.symlink(os.path.basename(master), abs_driver) + + try: + ret = os.getcwd() +@@ -71,8 +71,7 @@ def main(): + finally: + os.chdir(ret) + +- # Remove meson-created master .so and symlinks +- os.unlink(master) ++ # Remove meson-created symlinks + name, ext = os.path.splitext(master) + while ext != '.so': + if os.path.lexists(name): diff --git a/srcpkgs/mesa/template b/srcpkgs/mesa/template index 2fef72b292dc..4c3c9ec6039e 100644 --- a/srcpkgs/mesa/template +++ b/srcpkgs/mesa/template @@ -1,7 +1,7 @@ # Template file for 'mesa' pkgname=mesa version=22.2.4 -revision=1 +revision=2 build_style=meson configure_args="-Dglvnd=true -Dshared-glapi=enabled -Dgbm=enabled -Degl=enabled -Dosmesa=true -Dgles1=enabled -Dgles2=enabled -Dglx=dri -Ddri3=enabled