Created attachment 187176 [details]
libvc4_neon_la is built on armv6 and armv7 but not actually used due to lack of runtime detection. powerpc* can avoid relying on SIGILL by using hw.altivec, similar to OS X.
Build tested on 11.1 armv6/aarch64, 12.0 armv6/aarch64.
Is VC4 usable on FreeBSD somehow? I don't see the vc4 KMS module anywhere…
Created attachment 187177 [details]
> Is VC4 usable on FreeBSD somehow?
I guess, not yet. Bug 214580 enabled it to be future-proof. ;)
Is this patch valid for mesa 17.3? I just updated our mesa ports to that version.
I want to let the mesa update simmer for a little while, before I commit this as well.
(In reply to Niclas Zeising from comment #4)
> Is this patch valid for mesa 17.3?
Should be. src/gallium/auxiliary/util/u_cpu_detect.c didn't change since Mesa 17.2.3. NEON detection here maybe incorrect style-wise but I can't agree with arm@ folks about non-sysctl API.
Added this to the branch tracking mesa 18.1.0.
Comment on attachment 187176 [details]
On FreeBSD NEON and AltiVec can be detected via elf_aux_info(3) which is more simple/efficient. Unfortunately, on /stable/11 the old sysctl code have to be used.
Is this PR still valid, or are we still waiting to land these changes to the mesa port/pkg?
I've submitted upstream an improved version.
Created attachment 207539 [details]
- Don't bother detecting NEON on FreeBSD 11
- Switch to hw.cpu_features on powerpc* for VSX
Piotr, can you check build on powerpc64? If possible also run glxgears using gallium driver (e.g., llvmpipe).
(In reply to Jan Beich from comment #11)
Just tested it with llvmpipe without your patch and with it.
On both configurations, glxgears segfaults. X11 may be a little faster with this patch, but this is only subjective.
Note that in order to start X11, acceleration needs to be disabled by putting:
Option "Accel" "off"
This disables 3D acceleration, otherwise Xorg doesn't start at all. My GPU is HD 7790 and I use radeonkms from drm-current-kmod (amdgpu doesn't work on ppc64).
Is this still relevant ?
Yep. To pick up upstream fix you need Mesa >= 19.3.0. No clue whether pkubaj@ managed to fix 3D acceleration with either mesa-dri or mesa-devel.
(In reply to Jan Beich from comment #14)
I didn't get it to work. It fails because of broken tests from drm-kmod, which disable acceleration. To make it work, kernel needs to be fixed first, only then Mesa will work.
There is talk on #powerpc64 that mmacy@ got it to work about a year ago, using his fork of FreeBSD (POWER9BSD), on older Radeon GPU. I also use POWER9 (but on vanilla FreeBSD) and can report that it doesn't work currently.
jhibbits said he got it to work using his Amiga X5000, but it uses a very different chip. It uses NXP's embedded ppc64 chips (very nonstandard and seldom used), while POWER9 is the mainstream one (designed by IBM). NXP chips use other code in FreeBSD's kernel, so this may be why it worked.
Nevertheless, NXP chips don't have AltiVec support so this patch won't help it.