void-linux / void-packages

The Void source packages collection
https://voidlinux.org
Other
2.59k stars 2.16k forks source link

Reason for deletion of srcpkgs/mesa/patches/0001-radeonsi-On-Aarch64-force-persistent-buffers-to-GTT.patch ? #37579

Closed ghost closed 2 years ago

ghost commented 2 years ago

System

motherboard: SolidRun HoneyComb LX2K CPU: NXP LayerScape LX2160A Graphicscard: AMD Radeon RX580 XFX

affects mesa versions: all

Expected behavior

mesa doesn't cause graphics corruption like normal

Actual behavior

mesa causes graphics corruption

Steps to reproduce the behavior

have mesa instlalled on a HoneyComb LX2K for instance, running Void Linux, use Xorg, use mesa dependent programs.

#############################

What is the reason for the deletion of srcpkgs/mesa/patches/0001-radeonsi-On-Aarch64-force-persistent-buffers-to-GTT.patch ?

As a user of the SolidRun HoneyComb LX2K, I get graphics corruption.

This said patch is needed to the fix of the graphics corruption.

kind regards, HanoJing

abenson commented 2 years ago

I'm not quite sure why it was removed.

ghost commented 2 years ago

Thanks for the PR, I am able to build mesa with the patch but cannot install it even when specifying --repository like so:

sudo xbps-install --repository=/home/user/Projekte/void-packages/hostdir/binpkgs/ mesa-22.1.1_1

It just installs the mesa from the void repos, not the one I built with the patch.

paper42 commented 2 years ago

sudo xbps-install --repository=/home/user/Projekte/void-packages/hostdir/binpkgs/ mesa-22.1.1_1

Don't specify the version, the one in your local repository is _2. Or you could just run xi -u mesa

ghost commented 2 years ago

sudo xbps-install --repository=/home/user/Projekte/void-packages/hostdir/binpkgs/ mesa-22.1.1_1

Don't specify the version, the one in your local repository is _2. Or you could just run xi -u mesa

Thanks for the quick reply! I tried the xi -u mesa method but It sttill pulls the mesa out the normal void repos.

I have made sure that The needed patch is in /home/user/Projekte/void-packages/srcpkgs/mesa/patches/

Also, the files in my local repository have _1 not _2 like so: mesa-22.1.1_1.aarch64.xbps

I have also tried specifying a local repository using /etc/xbps.d/ like so: echo 'repository=/home/user/Projekte/void-packages/hostdir/binpkgs/' >> /etc/xbps.d/my-local-repo.conf

Then I have also put the mesa-22.1.1_1.aarch64.xbps file into /var/cache/xbps, to see if xbps would then install the right file upon reinstallation of mesa.

I have also tried to install the built mesa using: sudo xbps-install --repository /home/user/Projekte/void-packages/hostdir/binpkgs/ mesa (with the = left out)

I fear that the patch doesn't affect mesa.

abenson commented 2 years ago

Also, the files in my local repository have _1 not _2 like so: mesa-22.1.1_1.aarch64.xbps

Did you build based off the PR then?

Even if you didn't, you should see it applying the patches.

=> mesa-22.1.1_2: running do_patch ...
=> mesa-22.1.1_2: running do-patch hook: 00-patches ...
=> mesa-22.1.1_2: patching: 0001-radeonsi-On-Aarch64-force-persistent-buffers-to-GTT.patch.
=> mesa-22.1.1_2: patching: add-use-elf-tls.patch.
=> mesa-22.1.1_2: patching: megadriver-symlinks.patch.
=> mesa-22.1.1_2: patching: musl-endian.patch.
=> mesa-22.1.1_2: patching: musl-stacksize.patch.
=> mesa-22.1.1_2: patching: musl.patch.

Thanks for the quick reply! I tried the xi -u mesa method but It sttill pulls the mesa out the normal void repos.

Are you sure? Run it with -v.

Found MesaLib-devel-22.1.1_2 in repository /home/andrewb/Projects/void-packages/hostdir/binpkgs/fix_37579
Found mesa-dri-22.1.1_2 in repository /home/andrewb/Projects/void-packages/hostdir/binpkgs/fix_37579
Found mesa-22.1.1_2 in repository /home/andrewb/Projects/void-packages/hostdir/binpkgs/fix_37579
Found libglapi-22.1.1_2 in repository /home/andrewb/Projects/void-packages/hostdir/binpkgs/fix_37579
Found libOSMesa-22.1.1_2 in repository /home/andrewb/Projects/void-packages/hostdir/binpkgs/fix_37579
Found libgbm-22.1.1_2 in repository /home/andrewb/Projects/void-packages/hostdir/binpkgs/fix_37579
Found libgbm-devel-22.1.1_2 in repository /home/andrewb/Projects/void-packages/hostdir/binpkgs/fix_37579
Found libxatracker-22.1.1_2 in repository /home/andrewb/Projects/void-packages/hostdir/binpkgs/fix_37579
Found mesa-opencl-22.1.1_2 in repository /home/andrewb/Projects/void-packages/hostdir/binpkgs/fix_37579
ghost commented 2 years ago

Also, the files in my local repository have _1 not _2 like so: mesa-22.1.1_1.aarch64.xbps

Did you build based off the PR then?

Even if you didn't, you should see it applying the patches.

=> mesa-22.1.1_2: running do_patch ...
=> mesa-22.1.1_2: running do-patch hook: 00-patches ...
=> mesa-22.1.1_2: patching: 0001-radeonsi-On-Aarch64-force-persistent-buffers-to-GTT.patch.
=> mesa-22.1.1_2: patching: add-use-elf-tls.patch.
=> mesa-22.1.1_2: patching: megadriver-symlinks.patch.
=> mesa-22.1.1_2: patching: musl-endian.patch.
=> mesa-22.1.1_2: patching: musl-stacksize.patch.
=> mesa-22.1.1_2: patching: musl.patch.

Thanks for the quick reply! I tried the xi -u mesa method but It sttill pulls the mesa out the normal void repos.

Are you sure? Run it with -v.

Found MesaLib-devel-22.1.1_2 in repository /home/andrewb/Projects/void-packages/hostdir/binpkgs/fix_37579
Found mesa-dri-22.1.1_2 in repository /home/andrewb/Projects/void-packages/hostdir/binpkgs/fix_37579
Found mesa-22.1.1_2 in repository /home/andrewb/Projects/void-packages/hostdir/binpkgs/fix_37579
Found libglapi-22.1.1_2 in repository /home/andrewb/Projects/void-packages/hostdir/binpkgs/fix_37579
Found libOSMesa-22.1.1_2 in repository /home/andrewb/Projects/void-packages/hostdir/binpkgs/fix_37579
Found libgbm-22.1.1_2 in repository /home/andrewb/Projects/void-packages/hostdir/binpkgs/fix_37579
Found libgbm-devel-22.1.1_2 in repository /home/andrewb/Projects/void-packages/hostdir/binpkgs/fix_37579
Found libxatracker-22.1.1_2 in repository /home/andrewb/Projects/void-packages/hostdir/binpkgs/fix_37579
Found mesa-opencl-22.1.1_2 in repository /home/andrewb/Projects/void-packages/hostdir/binpkgs/fix_37579

Yes, thanks for the hint! I ran xi -uv mesa and it found the binpkg: Found mesa-22.1.1_1 in repository /home/user/Projekte/void-packages/hostdir/binpkgs

I also see that the patch is getting applied:

=> mesa-22.1.1_1: patching: 0001-radeonsi-On-Aarch64-force-persistent-buffers-to-GTT.patch.

This patch is only getting applied on the mesa library itself, not on any of it's subpackages (like mesa-dri for example), right? I'd have to rip my system apart in order to install the built mesa subpackages (because of it would break dependencies and shlibs and stuff).

abenson commented 2 years ago

The patch gets applied to mesa. The subpackages are just pieces split off from mesa.

I'd have to rip my system apart in order to install the built mesa subpackages

No, had you used the PR with the revision bump, you could just xu -u and it would update. Since you didn't, you'll need to force reinstall the packages. I don't know which you have installed, but for example:

xi -f mesa libOSMesa libglapi ...

ghost commented 2 years ago

The patch gets applied to mesa. The subpackages are just pieces split off from mesa.

I'd have to rip my system apart in order to install the built mesa subpackages

No, had you used the PR with the revision bump, you could just xu -u and it would update. Since you didn't, you'll need to force reinstall the packages. I don't know which you have installed, but for example:

xi -f mesa libOSMesa libglapi ...

No I didn't use the PR.

ghost commented 2 years ago

I did it. I figured it out

I just applied sudo xdowngrade * on every .aarch64.xbps mesa package, it installed everything and mesa works fine now.

I think the removal of the aarch64 patch must have some reason behind it, how can something like this happen otherwise?

I will just upgrade mesa by rebuilding it and reinstalling it via xdowngrade

#!/bin/bash

cd /home/$(whoami)/Projekte/ void-packages has to be repulled to bump mesa version: sudo rm -r void-packages git clone --depth=1 https://github.com/void-linux/void-packages cd /home/$(whoami)/Projekte/void-packages/

if [[ /home/$(whoami)/Projekte/verfiles/mesa-ver) != $(grep version= srcpkgs/mesa/template | tr -d 'version=') || $(cat /home/$(whoami)/verfiles/mesa-rev) != $(grep revision= srcpkgs/mesa/template | tr -d 'revision=') ]]

then

MESA_VER=$(grep version= srcpkgs/mesa/template | tr -d 'version=') MESA_REV=$(grep revision= srcpkgs/mesa/template | tr -d 'revision=')

cp -r /home/$(whoami)/Downloads/0001-radeonsi-On-Aarch64-force-persistent-buffers-to-GTT.patch /home/$(whoami)/Projekte/void-packages/srcpkgs/mesa/patches/

./xbps-src binary-bootstrap ./xbps-src pkg mesa -j$(nproc)

cd hostdir/binpkgs

sudo xdowngrade *

for filename in *-${MESA_VER}_${MESA_REV}.aarch64.xbps; do [ -f "$filename" ] || continue; mv "$filename" "${filename//-${MESA_VER}_${MESA_REV}.aarch64.xbps/}"; done

sudo xbps-pkgdb -m hold *

rm -r *

rm -r /home/$(whoami)/Projekte/verfiles/mesa-ver rm -r /home/$(whoami)/Projekte/verfiles/mesa-rev echo ${MESA_VER} >> ${XDG_PROJECTS_DIR}/verfiles/mesa-ver echo ${MESA_REV} >> ${XDG_PROJECTS_DIR}/verfiles/mesa-rev

fi

Thank you all for your help!

abenson commented 2 years ago

The patch is going to be added back as soon as the builders are done with the large build.