From e83aea5e959075ac6c324e77752cb1b48709eab0 Mon Sep 17 00:00:00 2001 From: Rye Date: Sun, 2 Feb 2025 19:05:59 -0500 Subject: Introduce SSE2NEON package for handling sse to neon intrinsic compatibility --- .gitignore | 1 - autobuild.xml | 34 ++++++++++++++++++++++++++++++++++ indra/cmake/CMakeLists.txt | 1 + indra/cmake/SSE2NEON.cmake | 12 ++++++++++++ indra/llcommon/CMakeLists.txt | 3 ++- indra/llmath/CMakeLists.txt | 4 +++- 6 files changed, 52 insertions(+), 3 deletions(-) create mode 100644 indra/cmake/SSE2NEON.cmake diff --git a/.gitignore b/.gitignore index 3b3666af84..c4accf37b5 100755 --- a/.gitignore +++ b/.gitignore @@ -26,7 +26,6 @@ debian/files debian/secondlife-appearance-utility* debian/secondlife-viewer* indra/.distcc -indra/cmake/* indra/out/* indra/packages/* diff --git a/autobuild.xml b/autobuild.xml index f298b21d27..ad563eccc6 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -2318,6 +2318,40 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors description Vivox SDK components + sse2neon + + platforms + + common + + archive + + hash + c578c2a7f4355197d0ce8544310bc5e785531018 + hash_algorithm + sha1 + url + https://github.com/secondlife/3p-sse2neon/releases/download/v1.7.0-r2/sse2neon-1.7.0-dev0.gc8ad5f1.d20241212-common-12287325635.tar.zst + + name + common + + + license + MIT + license_file + LICENSES/sse2neon.txt + copyright + Copyright (c) 2015-2024 SSE2NEON Contributors. + version + 1.7.0-dev0.gc8ad5f1.d20241212 + name + sse2neon + canonical_repo + https://github.com/secondlife/3p-sse2neon + description + A translator from Intel SSE intrinsics to Arm/Aarch64 NEON implementation + threejs platforms diff --git a/indra/cmake/CMakeLists.txt b/indra/cmake/CMakeLists.txt index 8d55cc4bbe..6c1b1f4d1d 100644 --- a/indra/cmake/CMakeLists.txt +++ b/indra/cmake/CMakeLists.txt @@ -52,6 +52,7 @@ set(cmake_SOURCE_FILES Prebuilt.cmake PulseAudio.cmake Python.cmake + SSE2NEON.cmake TemplateCheck.cmake TinyEXR.cmake TinyGLTF.cmake diff --git a/indra/cmake/SSE2NEON.cmake b/indra/cmake/SSE2NEON.cmake new file mode 100644 index 0000000000..797f2af80e --- /dev/null +++ b/indra/cmake/SSE2NEON.cmake @@ -0,0 +1,12 @@ +# -*- cmake -*- + +include(Prebuilt) + +add_library(ll::sse2neon INTERFACE IMPORTED) + +if (DARWIN) + use_system_binary(sse2neon) + use_prebuilt_binary(sse2neon) + + target_include_directories( ll::sse2neon SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/sse2neon) +endif() diff --git a/indra/llcommon/CMakeLists.txt b/indra/llcommon/CMakeLists.txt index a504e71340..2de9deea70 100644 --- a/indra/llcommon/CMakeLists.txt +++ b/indra/llcommon/CMakeLists.txt @@ -11,7 +11,7 @@ include(LLSharedLibs) include(Copy3rdPartyLibs) include(ZLIBNG) include(Tracy) - +include(SSE2NEON) set(llcommon_SOURCE_FILES apply.cpp @@ -277,6 +277,7 @@ target_link_libraries( ll::boost ll::oslibraries ll::tracy + ll::sse2neon ) target_include_directories(llcommon INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}) diff --git a/indra/llmath/CMakeLists.txt b/indra/llmath/CMakeLists.txt index eb29df245a..bd860adc31 100644 --- a/indra/llmath/CMakeLists.txt +++ b/indra/llmath/CMakeLists.txt @@ -6,6 +6,7 @@ include(00-Common) include(LLCommon) include(bugsplat) include(Boost) +include(SSE2NEON) set(llmath_SOURCE_FILES llbbox.cpp @@ -59,6 +60,7 @@ set(llmath_HEADER_FILES llmath.h llmatrix3a.h llmatrix3a.inl + llmatrix4a.h llmodularmath.h lloctree.h llperlin.h @@ -99,7 +101,7 @@ list(APPEND llmath_SOURCE_FILES ${llmath_HEADER_FILES}) add_library (llmath ${llmath_SOURCE_FILES}) -target_link_libraries(llmath llcommon llmeshoptimizer) +target_link_libraries(llmath llcommon llmeshoptimizer ll::sse2neon) target_include_directories( llmath INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}) # Add tests -- cgit v1.2.3