[Buildroot] RFC: Patch "Gallium VC4 driver depends on NEON"?
Arnout Vandecappelle
arnout at mind.be
Thu Mar 17 20:53:24 UTC 2022
On 17/03/2022 20:23, Thomas Ruschival wrote:
> Hi Arnout,
>
> the Patch "package/mesa3d: Gallium VC4 driver depends on NEON"
> commit a5cdb54ed78b136c83dd44aebfa27f715cda5ea3 prevents using VC4 and
> hence OpenGL on Raspberry Pi Zero.
>
> From the referenced autobuild logs I gathered that the build that failed
> used the bootlin-armv5-uclibc toolchain.
>
> Since I wanted to use OpenGL for Qt on a Raspberry Pi Zero I reverted
> the commit. The package compiled without errors and the system works as
> expected. Since my build is using a buildroot toolchain
> arm-buildroot-linux-gnueabihf (gcc 10, glibc) I guess the assembler
> errors are due to the toolchain.
>
> I am not sure how to proceed in this case.
>
> Should I investigate further on a more elaborate dependency logic to
> allow for usage of VC4 on Raspberry Pi Zero that doesn't break
> autobuild with bootlin-armv5-uclibc?
The easiest is to test if it still fails with the bootlin toolchain (you can
select it from the external toolchains list). If it doesn't, then it's probably
something that got fixed by a mesa3d bump. Ideally you should investigate what
changed exactly to fix this - I had a quick look, nothing changed in the files
using NEON instructions themselves, so it must be that the V3D_BUILD_NEON or
PIPE_ARCH_ARM macros are defined differently (they determine whether or not the
NEON instructions are used).
If it builds now for the bootlin toolchain, please send a revert patch with an
explanation why it works - ideally referring to the upstream commit that fixed
it. And a reference to the version in which it was fixed, so we know if the
revert can be backported to the stable branches.
If the build still fails with the bootlin toolchain, then yes ideally find out
why it behaves differently with the two toolchains. Again, the NEON instructions
are still there in the code, so the difference must be with the V3D_BUILD_NEON
or PIPE_ARCH_ARM macros.
The only other explanation (I can think of) is a difference in binutils, where
your binutils accepts the NEON instructions even on an architecture that doesn't
support NEON. Seems pretty unlikely.
Regards,
Arnout
More information about the buildroot
mailing list