Cool VL Viewer forum

View unanswered posts | View active topics It is currently 2021-10-20 15:31:16



Reply to topic  [ 34 posts ]  Go to page Previous  1, 2, 3, 4
ARM64 port (was: Porting Difficulties) 
Author Message

Joined: 2021-08-18 09:56:48
Posts: 22
Reply with quote
On another note... I've recently tried to rebuild against the latest version, with the proper SSE2 enable for ARM64. I've already uncovered a number of issues causing the build to fail:

parallel_hashmap - has to have include guards to use sse2neon.h. maybe there is a better solution than doing the include guards in every dependency?

boost simd.h - "Multiple SIMD architectures detected, this cannot happen!" because it detects SSE being enabled however boost actually has native support for NEON.

Before I try to rectify all the build issues, would like to know if there's a good resolution for dependencies that include the intrinsics headers.


2021-09-19 01:42:05
Profile

Joined: 2009-03-17 18:42:51
Posts: 4751
Reply with quote
Try this patch against v1.28.2.41 sources, it should solve all issues:
Attachment:
sse2neon-patch.txt [2.04 KiB]
Downloaded 4 times

Note that if you want to update the pre-built libraries like what was done for the x86_64 Linux version, and compile zlib-ng and boost v1.77.0 libraries for arm64, you will also have to edit the following cmake files:
  • indra/cmake/ZLIB.cmake: remove the 'if (ARCH STREQUAL "arm64")', so that 'set(ZLIB_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/zlib-ng)' is always used.
  • indra/cmake/Boost.cmake: remove the 'if (ARCH STREQUAL "x86_64")' around 'set(BOOST_ATOMIC_LIBRARY ...' so that the atomic library is properly linked against the binaries.


2021-09-19 08:01:59
Profile WWW

Joined: 2021-08-18 09:56:48
Posts: 22
Reply with quote
Awesome, will test this and let you know how it works!

On another note, I've started to think "SIMD Everywhere" might have been a better choice... it handles choosing the correct platform implementation on its own, is also a header library, and has various platform implementations - including software fallbacks. However, it would indeed be more work as it would require testing on *all* supported platforms, as you're essentially supposed to replace the *mmintrin.h with a header like #include <simde/x86/sse2.h> or #include <simde/x86/sse4.1.h>. If the "native" is available, it'll inline the native intrinsic.


2021-09-19 19:53:45
Profile

Joined: 2021-08-18 09:56:48
Posts: 22
Reply with quote
Thanks, the patch you provided works.

Other notes, it appear that at least on the Pi 4, the Mesh upload dialog causes the viewer to totally hang up. I'm looking into this.


2021-09-20 08:51:18
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 34 posts ]  Go to page Previous  1, 2, 3, 4

Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.