-
-
Notifications
You must be signed in to change notification settings - Fork 41
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ProcessRGB.cpp
only supports AArch64 NEON intrinsics, fails on ARMv7 on Android
#25
Comments
The issue you see should be limited to changes made in commits f11aaa3 and/or ae0e7eb. Code paths should be properly guarded in the remaining cases (which are the majority both code- and performance-wise). You may check if this is indeed the case and just fix these few #ifdefs, falling back to scalar code. |
akien-mga
added a commit
to akien-mga/etcpak
that referenced
this issue
May 10, 2022
akien-mga
added a commit
to akien-mga/etcpak
that referenced
this issue
May 10, 2022
akien-mga
added a commit
to akien-mga/etcpak
that referenced
this issue
May 11, 2022
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
We use etcpak in the Godot editor, and the Godot editor can be compiled for ARMv7 with NEON for Linux, Windows and Android.
For the Android build at least, using NDK 21.4, we're running into a build issue in etcpak due to the use of AArch64 NEON intrinsics in
ProcessRGB.cpp
, which are not guarded with#if defined(__aarch64__)
:You have such guards in
ProcessDxtc.cpp
with versions for both AArch64 and ARMv7, but not inProcessRGB.cpp
:etcpak/ProcessDxtc.cpp
Lines 277 to 281 in 14dfc2b
etcpak/ProcessRGB.cpp
Lines 2592 to 2596 in 14dfc2b
Would it be possible to add checks to
ProcessRGB.cpp
so that it only uses AArch64 specific intrinsics when__aarch64__
is defined?AFAICT I'm fine if it falls back to a slow path on ARMv7+NEON, I don't expect it to be a very relevant use case for using etcpak in production, but it would be good if it could compile nevertheless (otherwise that means we can't ship the Godot editor on ARMv7 platforms, unless we disable VRAM compression which is pretty important for our use case).
BTW, the fallback path doesn't seem to be functional, as this hack:
Leads to these errors:
The text was updated successfully, but these errors were encountered: