From 1e713e88707fee1266a01a101e6bc5d16e9b2a56 Mon Sep 17 00:00:00 2001 From: Gin <> Date: Sat, 5 Sep 2026 07:39:02 -0700 Subject: [PATCH 1/6] build on arm linux --- .gitignore | 1 + 3rdParty/sdbus-cpp/lib/libsdbus-c++-aarch64.a | Bin 0 -> 743492 bytes .../{libsdbus-c++.a => libsdbus-c++-x86_64.a} | Bin Common/Cpp/CpuId/CpuId.h | 2 +- Common/Cpp/CpuId/CpuId_arm64.tpp | 10 +- Common/Cpp/Hardware/Hardware_arm64_Linux.tpp | 157 ++++++++++++------ SerialPrograms/CMakeLists.txt | 77 ++++++--- .../CommonTools/OCR/OCR_RawTesseractOCR.cpp | 2 +- ...nels_BinaryImage_BasicFilters_arm64_NEON.h | 4 + ...Kernels_BinaryMatrixTile_64x8_arm64_NEON.h | 8 +- .../Kernels_BinaryMatrix_Tests.cpp | 2 +- ...ls_ImageFilter_Basic_Routines_ARM64_NEON.h | 1 + ...ImageFilter_RGB32_Euclidean_ARM64_NEON.cpp | 1 + ...els_ImageFilter_RGB32_Range_ARM64_NEON.cpp | 4 +- ...ernels_ImageScaleBrightness_arm64_NEON.cpp | 2 +- .../Source/Kernels/Kernels_arm64_NEON.h | 8 +- .../Kernels_Waterfill_Core_64x8_arm64_NEON.h | 2 +- 17 files changed, 189 insertions(+), 92 deletions(-) create mode 100644 3rdParty/sdbus-cpp/lib/libsdbus-c++-aarch64.a rename 3rdParty/sdbus-cpp/lib/{libsdbus-c++.a => libsdbus-c++-x86_64.a} (100%) diff --git a/.gitignore b/.gitignore index f5a66a76bd..1b8b69d245 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,7 @@ SerialPrograms/bin/ discord_social_sdk_win/ discord_partner_sdk.dll 3rdPartyBinaries/discord_social_sdk_mac/ +3rdPartyBinaries/discord_social_sdk_linux/ 3rdPartyBinaries/onnxruntime-osx-arm64-*/ 3rdPartyBinaries/onnxruntime-osx-x86_64-*/ diff --git a/3rdParty/sdbus-cpp/lib/libsdbus-c++-aarch64.a b/3rdParty/sdbus-cpp/lib/libsdbus-c++-aarch64.a new file mode 100644 index 0000000000000000000000000000000000000000..88c2de56f342f6ebbea58e3fc1b7662cefc1855d GIT binary patch literal 743492 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 +#ifdef __APPLE__ #include +#endif #include #include "CpuId.h" @@ -18,9 +20,10 @@ const char* PA_ARCH_STRING = "arm64"; uint64_t detect_NEON() { +#ifdef __APPLE__ // https://developer.apple.com/documentation/kernel/1387446-sysctlbyname/determining_instruction_set_characteristics // But this developer webpage may be out of date. - + uint64_t available = 0; size_t size = sizeof(available); @@ -35,6 +38,11 @@ uint64_t detect_NEON() } } return available; +#else + // On Linux aarch64, AdvSIMD (NEON) is part of the mandatory ARMv8-A baseline, + // so it is always available. + return 1; +#endif } CPU_Features& CPU_Features::set_to_current(){ diff --git a/Common/Cpp/Hardware/Hardware_arm64_Linux.tpp b/Common/Cpp/Hardware/Hardware_arm64_Linux.tpp index 62c8101c28..d0bb647814 100644 --- a/Common/Cpp/Hardware/Hardware_arm64_Linux.tpp +++ b/Common/Cpp/Hardware/Hardware_arm64_Linux.tpp @@ -1,51 +1,106 @@ -/* Environment (arm64 Linux) - * - * From: https://github.com/PokemonAutomation/Arduino-Source - * - * Currently only used for M-series Apple environment - */ - - -#include -#include -#include -#include -#include "Hardware.h" - -namespace PokemonAutomation{ - - -uint64_t get_cpu_freq() -{ - uint64_t freq = 0; - size_t size = sizeof(freq); - - if (sysctlbyname("hw.cpufrequency", &freq, &size, NULL, 0) < 0) - { - perror("sysctl"); - } - return freq; -} - -std::string get_processor_name(){ - char name_buffer[100] = ""; - size_t size = 100; - if (sysctlbyname("machdep.cpu.brand_string", name_buffer, &size, NULL, 0) < 0) - { - perror("sysctl"); - } - return name_buffer; -} - - -ProcessorSpecs get_processor_specs(){ - ProcessorSpecs specs; - specs.name = get_processor_name(); - specs.base_frequency = get_cpu_freq(); - specs.threads = std::thread::hardware_concurrency(); - - return specs; -} - - -} +/* Hardware (arm64) + * + * From: https://github.com/PokemonAutomation/Arduino-Source + * + * Used for Apple M-series (macOS) and Linux aarch64 environments. + */ + + +#include +#include +#include +#include +#include +#include +#ifdef __APPLE__ +#include +#endif +#include "Hardware.h" + +namespace PokemonAutomation{ + + +#ifdef __APPLE__ + +uint64_t get_cpu_freq() +{ + uint64_t freq = 0; + size_t size = sizeof(freq); + + if (sysctlbyname("hw.cpufrequency", &freq, &size, NULL, 0) < 0) + { + perror("sysctl"); + } + return freq; +} + +std::string get_processor_name(){ + char name_buffer[100] = ""; + size_t size = 100; + if (sysctlbyname("machdep.cpu.brand_string", name_buffer, &size, NULL, 0) < 0) + { + perror("sysctl"); + } + return name_buffer; +} + +#else +// Linux: /proc/cpuinfo does not have a "Model name" line on ARM kernels, +// so fall back to the SoC "Hardware" line, and finally the kernel name. + +static std::string cpuinfo_value(const std::string& file_path, const std::string& key){ + std::ifstream file(file_path); + std::string line; + while (std::getline(file, line)){ + if (line.rfind(key, 0) == 0){ + size_t pos = line.find(": "); + if (pos == std::string::npos){ + return ""; + } + return line.substr(pos + 2); + } + } + return ""; +} + +uint64_t get_cpu_freq(){ + // /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq is in kHz. + std::string max_freq = cpuinfo_value("/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq", ""); + if (!max_freq.empty()){ + return (uint64_t)atoll(max_freq.c_str()) * 1000ULL; + } + + // Fallback: "cpu MHz" in /proc/cpuinfo. + std::string mhz = cpuinfo_value("/proc/cpuinfo", "cpu MHz"); + if (!mhz.empty()){ + return (uint64_t)(atof(mhz.c_str()) * 1000000.); + } + + return 0; +} + +std::string get_processor_name(){ + std::string name = cpuinfo_value("/proc/cpuinfo", "Model name"); + if (name.empty()){ + name = cpuinfo_value("/proc/cpuinfo", "Hardware"); + } + if (name.empty()){ + name = "aarch64"; + } + return name; +} +#endif + + +ProcessorSpecs get_processor_specs(){ + ProcessorSpecs specs; + specs.name = get_processor_name(); + specs.base_frequency = get_cpu_freq(); + specs.threads = std::thread::hardware_concurrency(); + + return specs; +} + + + +} diff --git a/SerialPrograms/CMakeLists.txt b/SerialPrograms/CMakeLists.txt index 26031d441f..c4d656b103 100644 --- a/SerialPrograms/CMakeLists.txt +++ b/SerialPrograms/CMakeLists.txt @@ -448,9 +448,13 @@ else() # macOS and Linux target_include_directories(SerialProgramsLib PUBLIC ${ONNXRUNTIME_INCLUDE_DIRS}) target_link_libraries(SerialProgramsLib PUBLIC ${ONNXRUNTIME_LIBRARIES}) - else() + else() # linux, download onnxruntime set(ONNXRUNTIME_VERSION "1.23.0") - set(ONNXRUNTIME_ARCH "x64") + if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "^(arm|arm64|aarch64)") + set(ONNXRUNTIME_ARCH "aarch64") + else() + set(ONNXRUNTIME_ARCH "x64") + endif() set(ONNXRUNTIME_DIR_NAME "onnxruntime-linux-${ONNXRUNTIME_ARCH}-${ONNXRUNTIME_VERSION}") set(ONNXRUNTIME_TGZ_NAME "${ONNXRUNTIME_DIR_NAME}.tgz") # build up the URL based on the version and name @@ -517,15 +521,24 @@ else() # macOS and Linux else() message(FATAL_ERROR "Could not find ONNX Runtime headers or library.") endif() - endif () + endif () # end searching or downloading onnx runtime # Systemd DBus Library - message(STATUS "Using bundled sdbus-c++ library.") + # Used for different programs on the same coomputer to communicate with each other. + # The bundled archive is prebuilt native object code, so it must be picked per-arch + # (a single .a cannot serve both x86_64 and aarch64 Linux). + if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "^(arm|arm64|aarch64)") + set(SDBUS_CPP_LIB "${REPO_ROOT_DIR}/3rdParty/sdbus-cpp/lib/libsdbus-c++-aarch64.a") + else() + set(SDBUS_CPP_LIB "${REPO_ROOT_DIR}/3rdParty/sdbus-cpp/lib/libsdbus-c++-x86_64.a") + endif() + message(STATUS "Using bundled sdbus-c++ library: ${SDBUS_CPP_LIB}") + target_include_directories(SerialProgramsLib PRIVATE ${REPO_ROOT_DIR}/3rdParty/sdbus-cpp/include ) target_link_libraries(SerialProgramsLib PRIVATE - ${REPO_ROOT_DIR}/3rdParty/sdbus-cpp/lib/libsdbus-c++.a + ${SDBUS_CPP_LIB} systemd #sdbus-c++ relies on libsystemd, almost all distros should have this ) @@ -533,7 +546,7 @@ else() # macOS and Linux ${REPO_ROOT_DIR}/3rdParty/sdbus-cpp/include ) target_link_libraries(CoreLib PRIVATE - ${REPO_ROOT_DIR}/3rdParty/sdbus-cpp/lib/libsdbus-c++.a + ${SDBUS_CPP_LIB} systemd #sdbus-c++ relies on libsystemd, almost all distros should have this ) endif() # end Linux @@ -571,27 +584,41 @@ else() # macOS and Linux message(NOTICE "Compiling with DPP integration disabled") endif() - if (APPLE) - set(DISCORD_ZIP "${REPO_ROOT_DIR}/3rdPartyBinaries/discord_social_sdk_mac.zip") - set(DISCORD_DIR "${REPO_ROOT_DIR}/3rdPartyBinaries/discord_social_sdk_mac") - set(DISCORD_LIB_RELEASE "${REPO_ROOT_DIR}/3rdPartyBinaries/discord_social_sdk_mac/lib/release/libdiscord_partner_sdk.dylib") + # Discord's Social SDK does not offer a Linux ARM64 build as of 2026 Sep 5, so we set + # CMake option PA_SOCIAL_SDK_DEFAULT to off on ARM64 Linux and on on all other platforms. + # For future development, you can still force on/off explicitly on any platform via + # -DPA_SOCIAL_SDK=ON/OFF. + if (NOT APPLE AND CMAKE_SYSTEM_PROCESSOR MATCHES "^(arm|arm64|aarch64)") + set(PA_SOCIAL_SDK_DEFAULT OFF) else() - set(DISCORD_ZIP "${REPO_ROOT_DIR}/3rdPartyBinaries/discord_social_sdk_linux.zip") - set(DISCORD_DIR "${REPO_ROOT_DIR}/3rdPartyBinaries/discord_social_sdk_linux") - set(DISCORD_LIB_RELEASE "${REPO_ROOT_DIR}/3rdPartyBinaries/discord_social_sdk_linux/lib/release/libdiscord_partner_sdk.so") + set(PA_SOCIAL_SDK_DEFAULT ON) endif() + option(PA_SOCIAL_SDK "Enable Discord social SDK integration" ${PA_SOCIAL_SDK_DEFAULT}) + if (PA_SOCIAL_SDK) + if (APPLE) + set(DISCORD_ZIP "${REPO_ROOT_DIR}/3rdPartyBinaries/discord_social_sdk_mac.zip") + set(DISCORD_DIR "${REPO_ROOT_DIR}/3rdPartyBinaries/discord_social_sdk_mac") + set(DISCORD_LIB_RELEASE "${REPO_ROOT_DIR}/3rdPartyBinaries/discord_social_sdk_mac/lib/release/libdiscord_partner_sdk.dylib") + else() + set(DISCORD_ZIP "${REPO_ROOT_DIR}/3rdPartyBinaries/discord_social_sdk_linux.zip") + set(DISCORD_DIR "${REPO_ROOT_DIR}/3rdPartyBinaries/discord_social_sdk_linux") + set(DISCORD_LIB_RELEASE "${REPO_ROOT_DIR}/3rdPartyBinaries/discord_social_sdk_linux/lib/release/libdiscord_partner_sdk.so") + endif() - if (NOT EXISTS "${DISCORD_DIR}") - message(STATUS "Discord SDK not found, extracting from zip...") - execute_process( - COMMAND ${CMAKE_COMMAND} -E tar xf "${DISCORD_ZIP}" - WORKING_DIRECTORY "${REPO_ROOT_DIR}/3rdPartyBinaries" - ) - endif() + if (NOT EXISTS "${DISCORD_DIR}") + message(STATUS "Discord SDK not found, extracting from zip...") + execute_process( + COMMAND ${CMAKE_COMMAND} -E tar xf "${DISCORD_ZIP}" + WORKING_DIRECTORY "${REPO_ROOT_DIR}/3rdPartyBinaries" + ) + endif() - target_compile_definitions(SerialProgramsLib PUBLIC PA_SOCIAL_SDK) - target_include_directories(SerialProgramsLib SYSTEM PRIVATE ../3rdParty/discord_social_sdk/) - target_link_libraries(SerialProgramsLib PRIVATE ${DISCORD_LIB_RELEASE}) + target_compile_definitions(SerialProgramsLib PUBLIC PA_SOCIAL_SDK) + target_include_directories(SerialProgramsLib SYSTEM PRIVATE ../3rdParty/discord_social_sdk/) + target_link_libraries(SerialProgramsLib PRIVATE ${DISCORD_LIB_RELEASE}) + else() + message(NOTICE "Compiling with Discord social SDK integration disabled") + endif() if(APPLE) target_compile_options(SerialProgramsLib PRIVATE -Wall -Wextra -Wpedantic -Werror -Wshorten-64-to-32) @@ -606,8 +633,8 @@ else() # macOS and Linux target_compile_options(CoreLib PRIVATE -Wall -Wextra -Wpedantic -Werror -fno-strict-aliasing) endif() - if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm") - # Arm CPU + if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "^(arm|arm64|aarch64)") + # Arm CPU (arm64 on macOS, aarch64 on Linux) # Run-time ISA dispatching target_compile_definitions(SerialProgramsLib PRIVATE PA_AutoDispatch_arm64_20_M1) else() diff --git a/SerialPrograms/Source/CommonTools/OCR/OCR_RawTesseractOCR.cpp b/SerialPrograms/Source/CommonTools/OCR/OCR_RawTesseractOCR.cpp index 2c8b341ff4..5b64f08c8b 100644 --- a/SerialPrograms/Source/CommonTools/OCR/OCR_RawTesseractOCR.cpp +++ b/SerialPrograms/Source/CommonTools/OCR/OCR_RawTesseractOCR.cpp @@ -96,7 +96,7 @@ class TesseractPool{ void add_instance(){ // Check for non-ascii characters in path. for (char ch : m_training_data_path){ - if (ch < 0){ + if ((unsigned char)ch > 127){ throw InternalSystemError( nullptr, PA_CURRENT_FUNCTION, "Detected non-ASCII character in Tesseract path. Please move the program to a path with only ASCII characters." diff --git a/SerialPrograms/Source/Kernels/BinaryImageFilters/Kernels_BinaryImage_BasicFilters_arm64_NEON.h b/SerialPrograms/Source/Kernels/BinaryImageFilters/Kernels_BinaryImage_BasicFilters_arm64_NEON.h index 3edf9f815a..2a5a1c89f7 100644 --- a/SerialPrograms/Source/Kernels/BinaryImageFilters/Kernels_BinaryImage_BasicFilters_arm64_NEON.h +++ b/SerialPrograms/Source/Kernels/BinaryImageFilters/Kernels_BinaryImage_BasicFilters_arm64_NEON.h @@ -7,6 +7,7 @@ #ifndef PokemonAutomation_Kernels_BinaryImage_BasicFilters_arm64_NEON_H #define PokemonAutomation_Kernels_BinaryImage_BasicFilters_arm64_NEON_H +#include #include "Kernels/PartialWordAccess/Kernels_PartialWordAccess_arm64_NEON.h" // #include @@ -287,6 +288,9 @@ class Compressor_RgbEuclidean_arm64_NEON{ uint32x4_t in_u32 = vld1q_u32(pixel); return convert4(vreinterpretq_u8_u32(in_u32)); } + PA_FORCE_INLINE uint64_t convert4(const uint8x16_t& in_u8) const{ + return convert4(vreinterpretq_u32_u8(in_u8)); + } PA_FORCE_INLINE uint64_t convert4(const uint32x4_t& in_u32) const{ // subtract the expected values uint32x4_t in_dif_u32 = vreinterpretq_u32_u8(vabdq_u8(vreinterpretq_u8_u32(in_u32), m_expected_color_rgb_u8)); diff --git a/SerialPrograms/Source/Kernels/BinaryMatrix/Kernels_BinaryMatrixTile_64x8_arm64_NEON.h b/SerialPrograms/Source/Kernels/BinaryMatrix/Kernels_BinaryMatrixTile_64x8_arm64_NEON.h index 3bb1fb50a1..23068d1f43 100644 --- a/SerialPrograms/Source/Kernels/BinaryMatrix/Kernels_BinaryMatrixTile_64x8_arm64_NEON.h +++ b/SerialPrograms/Source/Kernels/BinaryMatrix/Kernels_BinaryMatrixTile_64x8_arm64_NEON.h @@ -222,13 +222,13 @@ struct BinaryTile_64x8_arm64_NEON{ // The shifted values are first performend a logical OR with the values in `tile` before assigned to `tile`. // In this way it the operation does not damage other un-assigned regions on `tile`. void copy_to_shift_np(BinaryTile_64x8_arm64_NEON& tile, size_t shift_x, size_t shift_y) const{ - uint64x2_t shift_x_u64x2 = vdupq_n_u64(shift_x); + int64x2_t shift_x_s64x2 = vreinterpretq_s64_u64(vdupq_n_u64(shift_x)); const uint64_t* src = (const uint64_t*)&vec; uint64_t* dest = (uint64_t*)&tile.vec; while (shift_y < 7){ uint64x2_t row_64x2 = vld1q_u64(src + shift_y); // left shift - row_64x2 = vshlq_u64(row_64x2, shift_x_u64x2); + row_64x2 = vshlq_u64(row_64x2, shift_x_s64x2); row_64x2 = vorrq_u64(row_64x2, vld1q_u64(dest)); vst1q_u64(dest, row_64x2); dest += 2; @@ -275,7 +275,7 @@ struct BinaryTile_64x8_arm64_NEON{ // The shifted values are first performend a logical OR with the values in `tile` before assigned to `tile`. // In this way it the operation does not damage other un-assigned regions on `tile`. void copy_to_shift_nn(BinaryTile_64x8_arm64_NEON& tile, size_t shift_x, size_t shift_y) const{ - uint64x2_t shift_x_u64x2 = vdupq_n_u64(shift_x); + int64x2_t shift_x_s64x2 = vreinterpretq_s64_u64(vdupq_n_u64(shift_x)); const uint64_t* src = (const uint64_t*)&vec; uint64_t* dest = (uint64_t*)&tile.vec; if (shift_y & 1){ @@ -286,7 +286,7 @@ struct BinaryTile_64x8_arm64_NEON{ while (shift_y < 8){ uint64x2_t row_64x2 = vld1q_u64(src); // left shift - row_64x2 = vshlq_u64(row_64x2, shift_x_u64x2); + row_64x2 = vshlq_u64(row_64x2, shift_x_s64x2); row_64x2 = vorrq_u64(row_64x2, vld1q_u64(dest + shift_y)); vst1q_u64((dest + shift_y), row_64x2); src += 2; diff --git a/SerialPrograms/Source/Kernels/BinaryMatrix/Kernels_BinaryMatrix_Tests.cpp b/SerialPrograms/Source/Kernels/BinaryMatrix/Kernels_BinaryMatrix_Tests.cpp index 6a6f516bac..798f614f56 100644 --- a/SerialPrograms/Source/Kernels/BinaryMatrix/Kernels_BinaryMatrix_Tests.cpp +++ b/SerialPrograms/Source/Kernels/BinaryMatrix/Kernels_BinaryMatrix_Tests.cpp @@ -328,7 +328,7 @@ int test_binary_matrix_tile(){ for (size_t i = 0; i < num_bytes; ++i){ if (x[i] != buffer[i + 16]){ cout << "Error: PartialWordAccess_arm64_NEON(" << num_bytes << ")::store_int_no_past_end(), i = " << i << " is " << int(buffer[i + 16]) - << ", but should be " << int(x[i + 16]) << endl; + << ", but should be " << int(x[i]) << endl; return 1; } } diff --git a/SerialPrograms/Source/Kernels/ImageFilters/Kernels_ImageFilter_Basic_Routines_ARM64_NEON.h b/SerialPrograms/Source/Kernels/ImageFilters/Kernels_ImageFilter_Basic_Routines_ARM64_NEON.h index f8176efa62..652c4899fd 100644 --- a/SerialPrograms/Source/Kernels/ImageFilters/Kernels_ImageFilter_Basic_Routines_ARM64_NEON.h +++ b/SerialPrograms/Source/Kernels/ImageFilters/Kernels_ImageFilter_Basic_Routines_ARM64_NEON.h @@ -5,6 +5,7 @@ */ #include +#include #include "Common/Compiler.h" #include "Kernels/PartialWordAccess/Kernels_PartialWordAccess_arm64_NEON.h" #include "Kernels/Kernels_arm64_NEON.h" diff --git a/SerialPrograms/Source/Kernels/ImageFilters/RGB32_EuclideanDistance/Kernels_ImageFilter_RGB32_Euclidean_ARM64_NEON.cpp b/SerialPrograms/Source/Kernels/ImageFilters/RGB32_EuclideanDistance/Kernels_ImageFilter_RGB32_Euclidean_ARM64_NEON.cpp index c8761c17d7..6917c7553f 100644 --- a/SerialPrograms/Source/Kernels/ImageFilters/RGB32_EuclideanDistance/Kernels_ImageFilter_RGB32_Euclidean_ARM64_NEON.cpp +++ b/SerialPrograms/Source/Kernels/ImageFilters/RGB32_EuclideanDistance/Kernels_ImageFilter_RGB32_Euclidean_ARM64_NEON.cpp @@ -6,6 +6,7 @@ #ifdef PA_AutoDispatch_arm64_20_M1 +#include #include "Kernels/Kernels_arm64_NEON.h" #include "Kernels_ImageFilter_RGB32_Euclidean.h" #include "Kernels/ImageFilters/Kernels_ImageFilter_Basic_Routines.h" diff --git a/SerialPrograms/Source/Kernels/ImageFilters/RGB32_Range/Kernels_ImageFilter_RGB32_Range_ARM64_NEON.cpp b/SerialPrograms/Source/Kernels/ImageFilters/RGB32_Range/Kernels_ImageFilter_RGB32_Range_ARM64_NEON.cpp index 97c070c8d9..89103c7657 100644 --- a/SerialPrograms/Source/Kernels/ImageFilters/RGB32_Range/Kernels_ImageFilter_RGB32_Range_ARM64_NEON.cpp +++ b/SerialPrograms/Source/Kernels/ImageFilters/RGB32_Range/Kernels_ImageFilter_RGB32_Range_ARM64_NEON.cpp @@ -32,14 +32,14 @@ class PixelTest_Rgb32Range_ARM64_NEON{ ) : m_mins_u8(vreinterpretq_u8_u32(vdupq_n_u32(mins))) , m_maxs_u8(vreinterpretq_u8_u32(vdupq_n_u32(maxs))) - , m_zeros_u8(vreinterpretq_u32_u8(vdupq_n_u8(0))) + , m_zeros_u8(vdupq_n_u8(0)) {} PA_FORCE_INLINE PixelTest_Rgb32Range_ARM64_NEON( const ToBlackWhiteRgb32RangeFilter& filter ) : m_mins_u8(vreinterpretq_u8_u32(vdupq_n_u32(filter.mins))) , m_maxs_u8(vreinterpretq_u8_u32(vdupq_n_u32(filter.maxs))) - , m_zeros_u8(vreinterpretq_u32_u8(vdupq_n_u8(0))) + , m_zeros_u8(vdupq_n_u8(0)) {} // Return a mask indicating which lanes are in range. diff --git a/SerialPrograms/Source/Kernels/ImageScaleBrightness/Kernels_ImageScaleBrightness_arm64_NEON.cpp b/SerialPrograms/Source/Kernels/ImageScaleBrightness/Kernels_ImageScaleBrightness_arm64_NEON.cpp index 96c9549299..c15619b87f 100644 --- a/SerialPrograms/Source/Kernels/ImageScaleBrightness/Kernels_ImageScaleBrightness_arm64_NEON.cpp +++ b/SerialPrograms/Source/Kernels/ImageScaleBrightness/Kernels_ImageScaleBrightness_arm64_NEON.cpp @@ -75,7 +75,7 @@ PA_FORCE_INLINE void scale_brightness_arm64_NEON_four_pixels_per_channel_scale( uint32x4_t gb_u32x4 = vsliq_n_u32(b_u32x4, g_u32x4, 8); // shift r channels left by 16, then combine with gb channels uint32x4_t rgb_u32x4 = vsliq_n_u32(gb_u32x4, r_u32x4, 16); - vec_u32x4 = vorrq_s32(a_u32x4, rgb_u32x4); + vec_u32x4 = vorrq_u32(a_u32x4, rgb_u32x4); vst1q_u32(&image[c], vec_u32x4); } diff --git a/SerialPrograms/Source/Kernels/Kernels_arm64_NEON.h b/SerialPrograms/Source/Kernels/Kernels_arm64_NEON.h index ba4d97c963..3bcc63224c 100644 --- a/SerialPrograms/Source/Kernels/Kernels_arm64_NEON.h +++ b/SerialPrograms/Source/Kernels/Kernels_arm64_NEON.h @@ -90,10 +90,10 @@ PA_FORCE_INLINE uint64_t reduce32_arm64_NEON(uint32x4_t x){ // and one new uint64x2_t vector from the upper half of them. // Assign r0 to the former, r1 to the letter. PA_FORCE_INLINE void transpose_u64_2x2_NEON(uint64x2_t& r0, uint64x2_t& r1){ - int64x1_t r0_l = vget_low_u64(r0); - int64x1_t r1_l = vget_low_u64(r1); - int64x1_t r0_h = vget_high_u64(r0); - int64x1_t r1_h = vget_high_u64(r1); + uint64x1_t r0_l = vget_low_u64(r0); + uint64x1_t r1_l = vget_low_u64(r1); + uint64x1_t r0_h = vget_high_u64(r0); + uint64x1_t r1_h = vget_high_u64(r1); r0 = vcombine_u64(r0_l, r1_l); r1 = vcombine_u64(r0_h, r1_h); diff --git a/SerialPrograms/Source/Kernels/Waterfill/Kernels_Waterfill_Core_64x8_arm64_NEON.h b/SerialPrograms/Source/Kernels/Waterfill/Kernels_Waterfill_Core_64x8_arm64_NEON.h index 97749af917..34c6b4d17d 100644 --- a/SerialPrograms/Source/Kernels/Waterfill/Kernels_Waterfill_Core_64x8_arm64_NEON.h +++ b/SerialPrograms/Source/Kernels/Waterfill/Kernels_Waterfill_Core_64x8_arm64_NEON.h @@ -50,7 +50,7 @@ PA_FORCE_INLINE uint64x2_t bit_reverse(uint64x2_t x){ r1 = vandq_u8(r1, vdupq_n_u8(0xaa)); r1 = vorrq_u8(r0, r1); // a, b, c, d, e, f, g, h - return r1; + return vreinterpretq_u64_u8(r1); } From 6536d91c767ccb63f8df982d955f96de56c276ce Mon Sep 17 00:00:00 2001 From: Gin <> Date: Sat, 5 Sep 2026 08:37:54 -0700 Subject: [PATCH 2/6] add build instruction by Claude --- .../Build-Ubuntu-ARM64-Qt6.8.3.md | 112 ++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 SerialPrograms/BuildInstructions/Build-Ubuntu-ARM64-Qt6.8.3.md diff --git a/SerialPrograms/BuildInstructions/Build-Ubuntu-ARM64-Qt6.8.3.md b/SerialPrograms/BuildInstructions/Build-Ubuntu-ARM64-Qt6.8.3.md new file mode 100644 index 0000000000..98a2e46ea3 --- /dev/null +++ b/SerialPrograms/BuildInstructions/Build-Ubuntu-ARM64-Qt6.8.3.md @@ -0,0 +1,112 @@ +# How to Build (Qt 6.8.3) - Ubuntu 24.04 aarch64 (ARM64) + +This covers building on **Linux ARM64/aarch64**, as opposed to x86\_64 Ubuntu (see `Build-Ubuntu-Qt6.8.2.md`) or macOS (see `CompilingForMac.md`). + +Ubuntu's own Qt6 packages are far too old (Qt 6.4 on 24.04), and Qt does not publish prebuilt Linux ARM64 packages through its online installer, so Qt has to be built from source. Everything else (OpenCV, Tesseract, D-Bus) is available through `apt` on Ubuntu 24.04. + +This was verified with: +- Ubuntu 24.04.4 LTS, kernel 6.17, aarch64 +- Qt 6.8.3 (built from source) +- CMake 3.28, Ninja, GCC (system default) + +## 1. Install build tools and dependencies + +```bash +sudo apt update +sudo apt install build-essential cmake ninja-build git pkg-config + +# Libraries this project links against directly +sudo apt install libopencv-dev libtesseract-dev libleptonica-dev \ + libdbus-1-dev libsdbus-c++-dev libopenexr-dev \ + libgl1-mesa-dev libglx-dev libglu1-mesa-dev + +# Dependencies needed to build Qt itself (xcb platform plugin, fonts, etc.) +sudo apt install libxkbcommon-dev libxkbcommon-x11-dev libxcb-cursor-dev \ + libxcb-icccm4-dev libxcb-image0-dev libxcb-keysyms1-dev libxcb-randr0-dev \ + libxcb-render-util0-dev libxcb-shape0-dev libxcb-sync-dev libxcb-xfixes0-dev \ + libxcb-xinerama0-dev libxcb-xkb-dev libxcb1-dev libx11-dev libx11-xcb-dev \ + libxext-dev libxfixes-dev libxi-dev libxrender-dev libfontconfig1-dev \ + libfreetype-dev libssl-dev + +# FFmpeg dev libs so Qt Multimedia gets a working webcam/video backend +sudo apt install libavcodec-dev libavformat-dev libavutil-dev libswscale-dev \ + libswresample-dev +``` + +Note: `libopencv-dev` on 24.04 provides OpenCV 4.6, and `libtesseract-dev` provides Tesseract 5.3.4. Both are picked up via `pkg-config` (`opencv4`, `tesseract`) by `SerialPrograms/CMakeLists.txt` — no manual OpenCV build is required on Linux (unlike Windows/Mac, which use prebuilt binaries from the `Packages` repo). + +## 2. Build Qt 6.8.3 from source + +```bash +mkdir -p ~/src && cd ~/src +wget https://download.qt.io/official_releases/qt/6.8/6.8.3/single/qt-everywhere-src-6.8.3.tar.xz +tar xf qt-everywhere-src-6.8.3.tar.xz +cd qt-everywhere-src-6.8.3 + +mkdir build && cd build +../configure -prefix "$HOME/qt/6.8.3" -release -opensource -confirm-license \ + -nomake examples -nomake tests \ + -skip qtwebengine -skip qt3d -skip qtwayland + +cmake --build . --parallel "$(nproc)" +cmake --install . +``` + +This builds the full "everywhere" module set (qtbase, qtdeclarative, qtmultimedia, qtserialport, qtsvg, qttools, qtwebsockets, etc.), which is what this project needs (`Widgets`, `SerialPort`, `Multimedia`, `MultimediaWidgets`, `OpenGLWidgets`, `Qml`, `Quick`, `QuickWidgets`). Expect this step to take a long time (well over an hour on most ARM64 boards) and to need ~20-30 GB of free disk space during the build. + +If you already have a Qt 6.8.x install (e.g. built previously, or via `aqtinstall`/a distro package new enough to include the above modules), you can skip this step — you just need its install prefix for step 4. + +## 3. Get the `Resources` folder (Packages repo) + +`SerialPrograms/CMakeLists.txt` expects a sibling `Packages` checkout next to this repo (i.e. `Arduino-Source/Packages`, not a `Resources` folder copied inside `SerialPrograms/`): + +```bash +cd /path/to/Arduino-Source # the repo root, containing SerialPrograms/, Common/, etc. +git clone https://github.com/PokemonAutomation/Packages +``` + +CMake copies `Packages/Resources` into the build output automatically on first configure/build. + +## 4. Configure and build + +From the repo root: + +```bash +cmake -S SerialPrograms -B build/RelWithDebInfo -G Ninja \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DCMAKE_PREFIX_PATH="$HOME/qt/6.8.3" + +cmake --build build/RelWithDebInfo --parallel "$(nproc)" +``` + +Notes: +- **Discord Social SDK is auto-disabled on Linux ARM64.** Discord doesn't offer a Linux ARM64 build of the Social SDK (per their platform-compatibility docs, Linux support is x86_64-only; Windows ARM64 and macOS ARM64 are both fully supported). `CMakeLists.txt` defaults the `PA_SOCIAL_SDK` option to `OFF` automatically when it detects a non-Apple ARM/aarch64 target, so you don't need to pass anything for this — it's mentioned here only so you know why `Compiling with Discord social SDK integration disabled` shows up during configure. You can still force it on/off explicitly with `-DPA_SOCIAL_SDK=ON` or `=OFF` on any platform. +- **ONNX Runtime** is downloaded automatically for you (aarch64 build, from the official `microsoft/onnxruntime` GitHub releases) if you don't already have one. If you want to point at a pre-downloaded copy instead, pass `-DONNX_ROOT_PATH=/path/to/onnxruntime-linux-aarch64-1.23.0`. +- **sdbus-c++**: the project links a bundled static library rather than the system `libsdbus-c++-dev` package. Since a static archive is native object code, it's arch-specific — `CMakeLists.txt` now picks `3rdParty/sdbus-cpp/lib/libsdbus-c++-aarch64.a` or `...-x86_64.a` based on `CMAKE_SYSTEM_PROCESSOR` (previously there was a single `libsdbus-c++.a` that only shipped x86_64 objects, which failed to link on ARM64 with `wrong ELF class` errors). It links against your system's `libsystemd`, so `libdbus-1-dev` above is enough; a separate `libsdbus-c++-dev` install isn't used by the build even though it's harmless to have. +- `DPP` (D++ / Discord bot library) is optional and auto-detected via `pkg-config`; it isn't installed by the apt commands above, so you'll see `Compiling with DPP integration disabled`, which is expected and fine. + +The two binaries are produced at `build/RelWithDebInfo/SerialPrograms` (GUI) and `build/RelWithDebInfo/SerialProgramsCommandLine`. + +## 5. Run + +```bash +./build/RelWithDebInfo/SerialPrograms +``` + +Only the command-line tool and a headless (`QT_QPA_PLATFORM=offscreen`) launch of the GUI binary were exercised while verifying this build — both start up and resolve all shared libraries correctly (checked with `ldd`). Actual on-screen GUI behavior (e.g. the video-preview flicker noted for x86_64 Ubuntu in `Build-Ubuntu-Qt6.8.2.md`) has not been separately verified on ARM64. + +## Known ARM64-specific code changes + +For context, the following portability fixes (already applied in this checkout) were needed to get this platform building; they matter if you're diffing against an older `main`: + +- `Common/Cpp/CpuId` and `Common/Cpp/Hardware`: the `arm64`/`Hardware_arm64_Linux.tpp` code previously only handled Apple Silicon (`sysctlbyname`). It now branches on `__APPLE__` vs. Linux, reading `/proc/cpuinfo` and `/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq` on Linux. +- Several NEON kernel files (`SerialPrograms/Source/Kernels/**/*_arm64_NEON.*`) had signed/unsigned NEON intrinsic type mismatches that GCC's aarch64 target is stricter about than Apple Clang; these were fixed with the correct `vreinterpretq_*` casts. +- `SerialPrograms/CMakeLists.txt`: `CMAKE_SYSTEM_PROCESSOR` matching was widened from `arm` to `arm|arm64|aarch64` (Linux reports `aarch64`, not `arm64`); a `PA_SOCIAL_SDK` option was added to make the Discord SDK optional, defaulting to `OFF` automatically on non-Apple ARM/aarch64 targets since Discord has no Linux ARM64 build (still overridable with `-DPA_SOCIAL_SDK=ON/OFF`); and both the Linux ONNX Runtime auto-download and the bundled sdbus-c++ static library are now selected per-architecture (`aarch64` vs `x86_64`) instead of assuming x86_64. +- `3rdParty/sdbus-cpp/lib/`: split into `libsdbus-c++-x86_64.a` and `libsdbus-c++-aarch64.a` (previously a single `libsdbus-c++.a` that only contained x86_64 object code — prebuilt static archives are native code, so one file can't serve both architectures). `CMakeLists.txt` picks the right one automatically. +- `OCR_RawTesseractOCR.cpp`: fixed a signed-`char` bug in the ASCII-path check (`char` is unsigned by default on aarch64 GCC, so `ch < 0` never matched non-ASCII bytes there). + +


+ +**Discord Server:** + +[](https://discord.gg/cQ4gWxN) From 2bba3a73702785e9dd84499883a7e4fe41171b0c Mon Sep 17 00:00:00 2001 From: Gin <> Date: Sat, 5 Sep 2026 08:53:46 -0700 Subject: [PATCH 3/6] cleaning up arm64 linux build guide --- .../Build-Ubuntu-ARM64-Qt6.8.3.md | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/SerialPrograms/BuildInstructions/Build-Ubuntu-ARM64-Qt6.8.3.md b/SerialPrograms/BuildInstructions/Build-Ubuntu-ARM64-Qt6.8.3.md index 98a2e46ea3..5220e07de8 100644 --- a/SerialPrograms/BuildInstructions/Build-Ubuntu-ARM64-Qt6.8.3.md +++ b/SerialPrograms/BuildInstructions/Build-Ubuntu-ARM64-Qt6.8.3.md @@ -1,6 +1,11 @@ # How to Build (Qt 6.8.3) - Ubuntu 24.04 aarch64 (ARM64) -This covers building on **Linux ARM64/aarch64**, as opposed to x86\_64 Ubuntu (see `Build-Ubuntu-Qt6.8.2.md`) or macOS (see `CompilingForMac.md`). +This covers building on **Linux ARM64/aarch64**, as opposed to x86\_64 Ubuntu (see `Build-Ubuntu-Qt6.8.2.md` for limited x86\_64 guidance) or macOS (see `CompilingForMac.md`). + +NOTE: This is only for ARM Linux server build testing. There is no GUI testing to guarantee the GUI of the built application works. + +NOTE: The content below in this document is generated by a local AI agent and Claude on Sep 5, 2026 as a build reference. +No humans have followed through the guide to ensure its correctness yet. Ubuntu's own Qt6 packages are far too old (Qt 6.4 on 24.04), and Qt does not publish prebuilt Linux ARM64 packages through its online installer, so Qt has to be built from source. Everything else (OpenCV, Tesseract, D-Bus) is available through `apt` on Ubuntu 24.04. @@ -82,7 +87,6 @@ cmake --build build/RelWithDebInfo --parallel "$(nproc)" Notes: - **Discord Social SDK is auto-disabled on Linux ARM64.** Discord doesn't offer a Linux ARM64 build of the Social SDK (per their platform-compatibility docs, Linux support is x86_64-only; Windows ARM64 and macOS ARM64 are both fully supported). `CMakeLists.txt` defaults the `PA_SOCIAL_SDK` option to `OFF` automatically when it detects a non-Apple ARM/aarch64 target, so you don't need to pass anything for this — it's mentioned here only so you know why `Compiling with Discord social SDK integration disabled` shows up during configure. You can still force it on/off explicitly with `-DPA_SOCIAL_SDK=ON` or `=OFF` on any platform. - **ONNX Runtime** is downloaded automatically for you (aarch64 build, from the official `microsoft/onnxruntime` GitHub releases) if you don't already have one. If you want to point at a pre-downloaded copy instead, pass `-DONNX_ROOT_PATH=/path/to/onnxruntime-linux-aarch64-1.23.0`. -- **sdbus-c++**: the project links a bundled static library rather than the system `libsdbus-c++-dev` package. Since a static archive is native object code, it's arch-specific — `CMakeLists.txt` now picks `3rdParty/sdbus-cpp/lib/libsdbus-c++-aarch64.a` or `...-x86_64.a` based on `CMAKE_SYSTEM_PROCESSOR` (previously there was a single `libsdbus-c++.a` that only shipped x86_64 objects, which failed to link on ARM64 with `wrong ELF class` errors). It links against your system's `libsystemd`, so `libdbus-1-dev` above is enough; a separate `libsdbus-c++-dev` install isn't used by the build even though it's harmless to have. - `DPP` (D++ / Discord bot library) is optional and auto-detected via `pkg-config`; it isn't installed by the apt commands above, so you'll see `Compiling with DPP integration disabled`, which is expected and fine. The two binaries are produced at `build/RelWithDebInfo/SerialPrograms` (GUI) and `build/RelWithDebInfo/SerialProgramsCommandLine`. @@ -95,16 +99,6 @@ The two binaries are produced at `build/RelWithDebInfo/SerialPrograms` (GUI) and Only the command-line tool and a headless (`QT_QPA_PLATFORM=offscreen`) launch of the GUI binary were exercised while verifying this build — both start up and resolve all shared libraries correctly (checked with `ldd`). Actual on-screen GUI behavior (e.g. the video-preview flicker noted for x86_64 Ubuntu in `Build-Ubuntu-Qt6.8.2.md`) has not been separately verified on ARM64. -## Known ARM64-specific code changes - -For context, the following portability fixes (already applied in this checkout) were needed to get this platform building; they matter if you're diffing against an older `main`: - -- `Common/Cpp/CpuId` and `Common/Cpp/Hardware`: the `arm64`/`Hardware_arm64_Linux.tpp` code previously only handled Apple Silicon (`sysctlbyname`). It now branches on `__APPLE__` vs. Linux, reading `/proc/cpuinfo` and `/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq` on Linux. -- Several NEON kernel files (`SerialPrograms/Source/Kernels/**/*_arm64_NEON.*`) had signed/unsigned NEON intrinsic type mismatches that GCC's aarch64 target is stricter about than Apple Clang; these were fixed with the correct `vreinterpretq_*` casts. -- `SerialPrograms/CMakeLists.txt`: `CMAKE_SYSTEM_PROCESSOR` matching was widened from `arm` to `arm|arm64|aarch64` (Linux reports `aarch64`, not `arm64`); a `PA_SOCIAL_SDK` option was added to make the Discord SDK optional, defaulting to `OFF` automatically on non-Apple ARM/aarch64 targets since Discord has no Linux ARM64 build (still overridable with `-DPA_SOCIAL_SDK=ON/OFF`); and both the Linux ONNX Runtime auto-download and the bundled sdbus-c++ static library are now selected per-architecture (`aarch64` vs `x86_64`) instead of assuming x86_64. -- `3rdParty/sdbus-cpp/lib/`: split into `libsdbus-c++-x86_64.a` and `libsdbus-c++-aarch64.a` (previously a single `libsdbus-c++.a` that only contained x86_64 object code — prebuilt static archives are native code, so one file can't serve both architectures). `CMakeLists.txt` picks the right one automatically. -- `OCR_RawTesseractOCR.cpp`: fixed a signed-`char` bug in the ASCII-path check (`char` is unsigned by default on aarch64 GCC, so `ch < 0` never matched non-ASCII bytes there). -
**Discord Server:** From 609c3bd6cf700a8be53a915d7992105dbfad59ea Mon Sep 17 00:00:00 2001 From: Gin <> Date: Sat, 5 Sep 2026 08:59:24 -0700 Subject: [PATCH 4/6] m --- .../BuildInstructions/Build-Ubuntu-ARM64-Qt6.8.3.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SerialPrograms/BuildInstructions/Build-Ubuntu-ARM64-Qt6.8.3.md b/SerialPrograms/BuildInstructions/Build-Ubuntu-ARM64-Qt6.8.3.md index 5220e07de8..7b2f481b45 100644 --- a/SerialPrograms/BuildInstructions/Build-Ubuntu-ARM64-Qt6.8.3.md +++ b/SerialPrograms/BuildInstructions/Build-Ubuntu-ARM64-Qt6.8.3.md @@ -22,8 +22,8 @@ sudo apt install build-essential cmake ninja-build git pkg-config # Libraries this project links against directly sudo apt install libopencv-dev libtesseract-dev libleptonica-dev \ - libdbus-1-dev libsdbus-c++-dev libopenexr-dev \ - libgl1-mesa-dev libglx-dev libglu1-mesa-dev + libsystemd-dev libopenexr-dev libgl1-mesa-dev libglx-dev \ + libglu1-mesa-dev # Dependencies needed to build Qt itself (xcb platform plugin, fonts, etc.) sudo apt install libxkbcommon-dev libxkbcommon-x11-dev libxcb-cursor-dev \ From e76de4bb32e778852df47003ed286818c31ccd5e Mon Sep 17 00:00:00 2001 From: Gin <> Date: Sat, 5 Sep 2026 09:05:45 -0700 Subject: [PATCH 5/6] m --- SerialPrograms/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SerialPrograms/CMakeLists.txt b/SerialPrograms/CMakeLists.txt index c4d656b103..012b75b394 100644 --- a/SerialPrograms/CMakeLists.txt +++ b/SerialPrograms/CMakeLists.txt @@ -524,7 +524,7 @@ else() # macOS and Linux endif () # end searching or downloading onnx runtime # Systemd DBus Library - # Used for different programs on the same coomputer to communicate with each other. + # Used for different programs on the same computer to communicate with each other. # The bundled archive is prebuilt native object code, so it must be picked per-arch # (a single .a cannot serve both x86_64 and aarch64 Linux). if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "^(arm|arm64|aarch64)") @@ -585,7 +585,7 @@ else() # macOS and Linux endif() # Discord's Social SDK does not offer a Linux ARM64 build as of 2026 Sep 5, so we set - # CMake option PA_SOCIAL_SDK_DEFAULT to off on ARM64 Linux and on on all other platforms. + # CMake option PA_SOCIAL_SDK_DEFAULT to off on ARM64 Linux and on for all other platforms. # For future development, you can still force on/off explicitly on any platform via # -DPA_SOCIAL_SDK=ON/OFF. if (NOT APPLE AND CMAKE_SYSTEM_PROCESSOR MATCHES "^(arm|arm64|aarch64)") From 3a31aa3bdb7e58cd8e788699411f1043964d31d8 Mon Sep 17 00:00:00 2001 From: Gin <> Date: Sat, 5 Sep 2026 22:44:06 -0700 Subject: [PATCH 6/6] Split Hardware_arm64_Linux.tpp into separate Mac/Linux files Address PR review comment: instead of #ifdef __APPLE__ inside one file, split into Hardware_arm64_Mac.tpp and Hardware_arm64_Linux.tpp, matching the existing per-OS-per-arch file convention already used for x86 (Hardware_x86_Linux.tpp, Hardware_x86_Windows.tpp). Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_01Loxd4ayr1HzfrAaxxrBeTD --- Common/Cpp/Hardware/Hardware.cpp | 4 ++ Common/Cpp/Hardware/Hardware_arm64_Linux.tpp | 34 +------------ Common/Cpp/Hardware/Hardware_arm64_Mac.tpp | 51 ++++++++++++++++++++ 3 files changed, 57 insertions(+), 32 deletions(-) create mode 100644 Common/Cpp/Hardware/Hardware_arm64_Mac.tpp diff --git a/Common/Cpp/Hardware/Hardware.cpp b/Common/Cpp/Hardware/Hardware.cpp index c37ee19ecf..2079ae7d62 100644 --- a/Common/Cpp/Hardware/Hardware.cpp +++ b/Common/Cpp/Hardware/Hardware.cpp @@ -22,9 +22,13 @@ #ifdef PA_ARCH_x86 #include "Hardware_x86_Linux.tpp" #elif PA_ARCH_arm64 +#ifdef __APPLE__ +#include "Hardware_arm64_Mac.tpp" +#else #include "Hardware_arm64_Linux.tpp" #endif #endif +#endif namespace PokemonAutomation{ diff --git a/Common/Cpp/Hardware/Hardware_arm64_Linux.tpp b/Common/Cpp/Hardware/Hardware_arm64_Linux.tpp index d0bb647814..15fd41a4c9 100644 --- a/Common/Cpp/Hardware/Hardware_arm64_Linux.tpp +++ b/Common/Cpp/Hardware/Hardware_arm64_Linux.tpp @@ -1,8 +1,8 @@ -/* Hardware (arm64) +/* Hardware (arm64 Linux) * * From: https://github.com/PokemonAutomation/Arduino-Source * - * Used for Apple M-series (macOS) and Linux aarch64 environments. + * Used for Linux aarch64 environment. */ @@ -12,39 +12,11 @@ #include #include #include -#ifdef __APPLE__ -#include -#endif #include "Hardware.h" namespace PokemonAutomation{ -#ifdef __APPLE__ - -uint64_t get_cpu_freq() -{ - uint64_t freq = 0; - size_t size = sizeof(freq); - - if (sysctlbyname("hw.cpufrequency", &freq, &size, NULL, 0) < 0) - { - perror("sysctl"); - } - return freq; -} - -std::string get_processor_name(){ - char name_buffer[100] = ""; - size_t size = 100; - if (sysctlbyname("machdep.cpu.brand_string", name_buffer, &size, NULL, 0) < 0) - { - perror("sysctl"); - } - return name_buffer; -} - -#else // Linux: /proc/cpuinfo does not have a "Model name" line on ARM kernels, // so fall back to the SoC "Hardware" line, and finally the kernel name. @@ -89,7 +61,6 @@ std::string get_processor_name(){ } return name; } -#endif ProcessorSpecs get_processor_specs(){ @@ -102,5 +73,4 @@ ProcessorSpecs get_processor_specs(){ } - } diff --git a/Common/Cpp/Hardware/Hardware_arm64_Mac.tpp b/Common/Cpp/Hardware/Hardware_arm64_Mac.tpp new file mode 100644 index 0000000000..96e99463aa --- /dev/null +++ b/Common/Cpp/Hardware/Hardware_arm64_Mac.tpp @@ -0,0 +1,51 @@ +/* Hardware (arm64 Mac) + * + * From: https://github.com/PokemonAutomation/Arduino-Source + * + * Used for Apple M-series (macOS) environment. + */ + + +#include +#include +#include +#include +#include "Hardware.h" + +namespace PokemonAutomation{ + + +uint64_t get_cpu_freq() +{ + uint64_t freq = 0; + size_t size = sizeof(freq); + + if (sysctlbyname("hw.cpufrequency", &freq, &size, NULL, 0) < 0) + { + perror("sysctl"); + } + return freq; +} + +std::string get_processor_name(){ + char name_buffer[100] = ""; + size_t size = 100; + if (sysctlbyname("machdep.cpu.brand_string", name_buffer, &size, NULL, 0) < 0) + { + perror("sysctl"); + } + return name_buffer; +} + + +ProcessorSpecs get_processor_specs(){ + ProcessorSpecs specs; + specs.name = get_processor_name(); + specs.base_frequency = get_cpu_freq(); + specs.threads = std::thread::hardware_concurrency(); + + return specs; +} + + +}