#15096 closed defect (fixed)
BUILD: compilation issue: no more ARM64 cpu optimisations (NEON)
Reported by: | ArminiusTux | Owned by: | sev- |
---|---|---|---|
Priority: | normal | Component: | Port: Win64 |
Version: | Keywords: | configure compilation msys2 mingw aarch64 arm64 neon WindowsonARM WoA64 WinARM64 | |
Cc: | ArminiusTux | Game: |
Description
Hello,
the compiling-configuration of the current ScummVM git master for Windows on ARM64 via MSYS2 offers no longer any cpu optimisations (NEON). The autodetect as well as the forced switch yields the same result.
The issue is not caused by the --enable-all-engines switch or the preference of OpenMPT over MikMod. It could be limited to Windows 11 on ARM64 but any tests on Linux for AArch64 would be appreciated.
The NEON feature is working in the lastest release branch v2.8.1.
ScummVM 2.9.0git (Apr 27 2024 17:37:04) Using SDL backend with SDL 2.30.2 Features compiled in: TAINTED Vorbis FLAC MP3 RGB zLib MPEG2 FluidSynth OpenMPT Theora VPX AAC A/52 FreeType2 FriBiDi JPEG PNG GIF taskbar TTS cloud (ENet SDL2 TinyGL OpenGL (with shaders)
$ ./configure --host=aarch64-w64-mingw32 --enable-all-engines --enable-release --disable-ext-sse2 --disable-ext-avx2 --enable-ext-neon Running ScummVM configure... Looking for C++ compiler... aarch64-w64-mingw32-g++ Checking if compiler supports C++11... yes Checking for compiler version... clang 18.1.4, ok Checking if C++11 initializer list is available... yes Checking if C++11 std::nullptr_t is available... yes Checking if C++11 alignas and alignof keywords are available... yes Using LLD linker... no Using Mold linker... no Checking for whether C++ compiler accepts -Wglobal-constructors... yes Checking for whether C++ compiler accepts -Wno-undefined-var-template... yes Checking for whether C++ compiler accepts -Wno-pragma-pack... yes Checking for whether C++ compiler accepts -Wno-address-of-packed-member... yes Checking endianness... little Checking 64-bitness... yes Type with 1 byte... char Type with 2 bytes... short Type with 4 bytes... int Type with 8 bytes... long long Alignment required... yes Checking host CPU architecture... aarch64 Checking hosttype... mingw32 Cross-compiling to aarch64-w64-mingw32 Checking for pkg-config... yes Looking for sdl-config... /clangarm64/bin/sdl2-config Checking for SDL... yes Checking for SDL_Net... yes Checking if host is POSIX compliant... no Checking whether to have a verbose build... no Checking whether building plugins was requested... no Checking if detection features building statically... yes Checking if building detection features for all engines... yes Checking for Ogg... yes Checking for TTS libraries... yes Checking for Vorbis... yes Checking for Tremor... no (Vorbis/Tremor support is mutually exclusive) Checking for OPL2LPT... no Checking for RetroWave OPL3... no Checking for FLAC >= 1.0.1... yes Checking for MAD... yes Checking for ALSA >= 0.9... no Checking for libjpeg >= v6b... yes Checking for PNG >= 1.2.8... yes Checking for GIF >= 5.0.0... yes Checking for libtheoradec >= 1.0... yes Checking for libvpx >= 1.6... yes Checking for libfaad... yes Checking for SEQ MIDI... no Checking for sndio... no Checking for TiMidity... no Checking for zlib... yes Checking for libmpeg2 >= 0.4.0... yes Checking for liba52... yes Checking for Sparkle... yes Looking for curl-config... none found! Checking for libcurl... no Checking for libopenmpt... yes Checking for libmikmod... no (OpenMPT/MikMod support is mutually exclusive) Cloud integration... local Checking for FluidSynth... yes Checking for FluidLite... no (FluidSynth/FluidLite support is mutually exclusive) Checking for Sonivox... no Checking for readline... skipping (text console disabled) Checking for libunity... no Checking for gtk... no Checking for FreeType2... yes Checking for OpenGL... yes (runtime detection) Checking for OpenGL for game... yes (shaders enabled) Checking for curl... yes Checking for FriBidi... yes Test C++11 compatibility during compilation... no Checking for Discord RPC... no Checking for ImGui... yes Building translation support... yes (with runtime language detection) Building taskbar integration support... win32 Building system dialogs support... win32 Building text-to-speech support... win32 Building TinyGL support... yes Building Bink video support... yes Building updates support... Sparkle Enabling Address Sanitizer... no Enabling Thread Sanitizer... no Enabling Undefined Behavior Sanitizer... no Enabling x86/amd64 SSE2... no Enabling x86/amd64 AVX2... no Enabling ARM NEON... no Backend... sdl (2.30.2), 16bit color, high resolution, TinyGL, savegame timestamp, HQ and Edge scalers, aspect ratio correction, MT-32 emulator, Lua, Nuked OPL emulator, Windows console, cloud, ENet Engines (builtin): SCUMM [all games] Access ADL AGI AGOS [all games] Adventure Game Studio Sanitarium Lord Avalot d'Argent Beavis and Butthead in Virtual Stupidity Blade Runner The Journeyman Project 2: Buried in Time CGE CGE2 Chamber Chewy: Esc from F5 Cinematique evo 1 Magic Composer Crab Cinematique evo 2 Lost Eden Cryo Omni3D games [all games] Macromedia Director Dungeon Master Dragon History Blazing Dragons Drascula: The Vampire Strikes Back Dreamweb Escape From Hell Freescape Glk Interactive Fiction games UFOs Gobli*ns The Griffon Legend Grim [all games] Groovie [all games] Hades Challenge Hyperspace Delivery Boy! Hopkins FBI Hpl1 Hugo Trilogy Hypnotix Inc. In Cold Blood Illusions Engine The Immortal Kingdom: The Far Reaches Kyra [all games] Labyrinth of Time The Last Express Lilliput Lure of the Temptress M4 MacVenture MADE MADS [all games] Might and Magic [all games] Mohawk [all games] Mortevielle mTropolis Mutation of JB Myst 3 Nancy Drew Neverhood Nikita Game Interface Parallaction The Journeyman Project: Pegasus Prime Red Comrades Pink Panther Playground 3d: the testing and playground environment for 3d renderers Plumbers Don't Wear Ties The Prince and The Coward Private Eye Flight of the Amazon Queen SAGA [all games] SAGA2 SCI [all games] The Lost Files of Sherlock Holmes Beneath a Steel Sky Sludge The Longest Journey Star Trek 25th Anniversary/Judgment Rites Mission Supernova Broken Sword Broken Sword II Broken Sword 2.5 Teen Agent TestBed: the Testing framework Tetraedge Tinsel Starship Titanic 3 Skulls of the Toltecs Tony Tough and the Night of Roasted Moths Toonstruck Touche: The Adventures of the Fifth Musketeer Trecision Adventure Module TsAGE Bud Tucker in Double Trouble Little Big Adventure Thimbleweed Park Ultima [all games] V-Cruise Voyeur WAGE The Watchmaker Wintermute [all games] Z-Vision WARNING: This ScummVM build contains the following UNSTABLE engines: Lord Avalot d'Argent Chamber Crab Lost Eden Dungeon Master Grim [Escape from Monkey Island] Hpl1 In Cold Blood The Immortal The Last Express Lilliput MacVenture MADS [MADS V2] Mohawk [Where in Time is Carmen Sandiego?] Mutation of JB Playground 3d: the testing and playground environment for 3d renderers Sludge Star Trek 25th Anniversary/Judgment Rites TestBed: the Testing framework Ultima [Ultima I - The First Age of Darkness] WAGE The Watchmaker Wintermute [Wintermute3D] Creating engines/engines.mk Creating engines/detection_table.h Creating engines/plugins_table.h Creating config.h Creating config.mk
ScummVM 2.8.1 (Apr 21 2024 15:29:34) Using SDL backend with SDL 2.30.2 Features compiled in: Vorbis FLAC MP3 RGB zLib MPEG2 FluidSynth MikMod Theora VPX AAC A/52 FreeType2 FriBiDi JPEG PNG GIF taskbar TTS cloud (ENet SDL2 TinyGL OpenGL (with shaders)
$ ./configure --host=aarch64-w64-mingw32 --enable-release --disable-ext-sse2 --disable-ext-avx2 --enable-ext-neon Running ScummVM configure... Looking for C++ compiler... aarch64-w64-mingw32-g++ Checking if compiler supports C++11... yes Checking for compiler version... clang 18.1.4, ok Checking if C++11 initializer list is available... yes Checking if C++11 std::nullptr_t is available... yes Checking if C++11 alignas and alignof keywords are available... yes Using LLD linker... no Using Mold linker... no Checking for whether C++ compiler accepts -Wglobal-constructors... yes Checking for whether C++ compiler accepts -Wno-undefined-var-template... yes Checking for whether C++ compiler accepts -Wno-pragma-pack... yes Checking for whether C++ compiler accepts -Wno-address-of-packed-member... yes Checking endianness... little Checking 64-bitness... yes Type with 1 byte... char Type with 2 bytes... short Type with 4 bytes... int Type with 8 bytes... long long Alignment required... yes Checking host CPU architecture... aarch64 Checking hosttype... mingw32 Cross-compiling to aarch64-w64-mingw32 Checking for pkg-config... yes Looking for sdl-config... /clangarm64/bin/sdl2-config Checking for SDL... yes Checking for SDL_Net... yes Checking if host is POSIX compliant... no Checking whether to have a verbose build... no Checking whether building plugins was requested... no Checking if detection features building statically... yes Checking if building detection features for all engines... yes Checking for Ogg... yes Checking for TTS libraries... yes Checking for Vorbis... yes Checking for Tremor... no (Vorbis/Tremor support is mutually exclusive) Checking for OPL2LPT... no Checking for RetroWave OPL3... no Checking for FLAC >= 1.0.1... yes Checking for MAD... yes Checking for ALSA >= 0.9... no Checking for libjpeg >= v6b... yes Checking for PNG >= 1.2.8... yes Checking for GIF >= 5.0.0... yes Checking for libtheoradec >= 1.0... yes Checking for libvpx >= 1.6... yes Checking for libfaad... yes Checking for SEQ MIDI... no Checking for sndio... no Checking for TiMidity... no Checking for zlib... yes Checking for libmpeg2 >= 0.4.0... yes Checking for liba52... yes Checking for Sparkle... yes Looking for curl-config... none found! Checking for libcurl... no Looking for mikmod-config... /clangarm64/bin/libmikmod-config Checking for libmikmod... yes Cloud integration... local Checking for FluidSynth... yes Checking for FluidLite... no (FluidSynth/FluidLite support is mutually exclusive) Checking for Sonivox... no Checking for readline... skipping (text console disabled) Checking for libunity... no Checking for gtk... no Checking for FreeType2... yes Checking for OpenGL... yes (runtime detection) Checking for OpenGL for game... yes (shaders enabled) Checking for curl... yes Checking for FriBidi... yes Test C++11 compatibility during compilation... no Checking for Discord RPC... no Building translation support... yes (with runtime language detection) Building taskbar integration support... win32 Building system dialogs support... win32 Building text-to-speech support... win32 Building TinyGL support... yes Building Bink video support... yes Building updates support... Sparkle Enabling Address Sanitizer... no Enabling Thread Sanitizer... no Enabling Undefined Behavior Sanitizer... no Enabling x86/amd64 SSE2... no Enabling x86/amd64 AVX2... no Enabling ARM NEON... yes Backend... sdl (2.30.2), 16bit color, high resolution, TinyGL, savegame timestamp, HQ and Edge scalers, aspect ratio correction, MT-32 emulator, Lua, Nuked OPL emulator, Windows console, cloud, ENet Engines (builtin): SCUMM [all games] Access ADL AGI AGOS [all games] Adventure Game Studio Sanitarium Beavis and Butthead in Virtual Stupidity Blade Runner The Journeyman Project 2: Buried in Time CGE CGE2 Chewy: Esc from F5 Cinematique evo 1 Magic Composer Cinematique evo 2 Cryo Omni3D games [all games] Macromedia Director Dragon History Blazing Dragons Drascula: The Vampire Strikes Back Dreamweb Escape From Hell Freescape Glk Interactive Fiction games UFOs Gobli*ns The Griffon Legend Grim [Grim Fandango] Groovie [all games] Hades Challenge Hyperspace Delivery Boy! Hopkins FBI Hugo Trilogy Hypnotix Inc. Illusions Engine Kingdom: The Far Reaches Kyra [all games] Labyrinth of Time Lure of the Temptress MADE MADS [Rex Nebular] Might and Magic [all games] Mohawk [Living Books] [Myst] [Myst ME] [Riven: The Sequel to Myst] Mortevielle mTropolis Myst 3 Nancy Drew Neverhood Nikita Game Interface Parallaction The Journeyman Project: Pegasus Prime Red Comrades Pink Panther Plumbers Don't Wear Ties The Prince and The Coward Private Eye Flight of the Amazon Queen SAGA [all games] SAGA2 SCI [all games] The Lost Files of Sherlock Holmes Beneath a Steel Sky The Longest Journey Mission Supernova Broken Sword Broken Sword II Broken Sword 2.5 Teen Agent Tetraedge Tinsel Starship Titanic 3 Skulls of the Toltecs Tony Tough and the Night of Roasted Moths Toonstruck Touche: The Adventures of the Fifth Musketeer Trecision Adventure Module TsAGE Bud Tucker in Double Trouble Little Big Adventure Ultima [] [Ultima IV - Quest of the Avatar] [Ultima VI = The False Prophet] [Ultima VIII - Pagan] V-Cruise Voyeur Wintermute [] [FoxTail] [HeroCraft] Z-Vision Engines Skipped: Lord Avalot d'Argent Chamber Crab Lost Eden Dungeon Master Grim [Escape from Monkey Island] Hpl1 In Cold Blood The Immortal The Last Express Lilliput MacVenture MADS [MADS V2] Mohawk [Where in Time is Carmen Sandiego?] Mutation of JB Playground 3d: the testing and playground environment for 3d renderers Sludge Star Trek 25th Anniversary/Judgment Rites TestBed: the Testing framework Ultima [Ultima I - The First Age of Darkness] WAGE The Watchmaker Wintermute [Wintermute3D] Creating engines/engines.mk Creating engines/detection_table.h Creating engines/plugins_table.h Creating config.h Creating config.mk
Change History (5)
comment:1 by , 4 weeks ago
comment:2 by , 4 weeks ago
Priority: | low → normal |
---|---|
Summary: | compilation issue: no more ARM64 cpu optimisations (NEON) → CONFIGURE: compilation issue: no more ARM64 cpu optimisations (NEON) |
comment:3 by , 4 weeks ago
Summary: | CONFIGURE: compilation issue: no more ARM64 cpu optimisations (NEON) → BUILD: compilation issue: no more ARM64 cpu optimisations (NEON) |
---|
comment:4 by , 3 weeks ago
Owner: | set to |
---|---|
Resolution: | → fixed |
Status: | new → closed |
The detection code has been rewritten. It should be fixed now.
comment:5 by , 3 weeks ago
Dear sev-, indeed the matter is fixed:
$ ./configure --host=aarch64-w64-mingw32 --enable-all-engines --enable-release --disable-ext-sse2 --disable-ext-avx2 --enable-ext-neon Running ScummVM configure... Looking for C++ compiler... aarch64-w64-mingw32-g++ Checking if compiler supports C++11... yes Checking for compiler version... clang 19.1.3, ok Checking if C++11 initializer list is available... yes Checking if C++11 std::nullptr_t is available... yes Checking if C++11 alignas and alignof keywords are available... yes Using LLD linker... no Using Mold linker... no Checking for whether C++ compiler accepts -Wglobal-constructors... yes Checking for whether C++ compiler accepts -Wno-undefined-var-template... yes Checking for whether C++ compiler accepts -Wno-pragma-pack... yes Checking for whether C++ compiler accepts -Wno-address-of-packed-member... yes Checking endianness... little Alignment required... yes Checking host CPU architecture... aarch64 Checking hosttype... mingw32 Cross-compiling to aarch64-w64-mingw32 Checking for pkg-config... yes Looking for sdl-config... /clangarm64/bin/sdl2-config Checking for SDL... yes Checking for SDL_Net... yes Checking if host is POSIX compliant... no Checking whether to have a verbose build... no Checking whether building plugins was requested... no Checking if detection features building statically... yes Checking if building detection features for all engines... yes Checking for Ogg... yes Checking for TTS libraries... yes Checking for Vorbis... yes Checking for Tremor... no (Vorbis/Tremor support is mutually exclusive) Checking for OPL2LPT... no Checking for RetroWave OPL3... no Checking for FLAC >= 1.1.3... yes Checking for MAD... yes Checking for ALSA >= 0.9... no Checking for libjpeg >= v6b... yes Checking for PNG >= 1.2.8... yes Checking for GIF >= 5.0.0... yes Checking for libtheoradec >= 1.0... yes Checking for libvpx >= 1.6... yes Checking for libfaad... yes Checking for SEQ MIDI... no Checking for sndio... no Checking for TiMidity... no Checking for zlib... yes Checking for libmpeg2 >= 0.4.0... yes Checking for liba52... yes Checking for Sparkle... yes Looking for curl-config... none found! Checking for libcurl... no Checking for libopenmpt... yes Checking for libmikmod... no (OpenMPT/MikMod support is mutually exclusive) Checking for libmpcdec... yes Cloud integration... local Checking for FluidSynth... yes Checking for FluidLite... no (FluidSynth/FluidLite support is mutually exclusive) Checking for Sonivox >= 3.6.12... no Checking for readline... skipping (text console disabled) Checking for libunity... no Checking for gtk... no Checking for FreeType2... yes Checking for OpenGL... yes (runtime detection) Checking for OpenGL for game... yes (shaders enabled) Checking for curl... yes Checking for FriBidi... yes Test C++11 compatibility during compilation... no Checking for Discord RPC... no Checking for ImGui... yes Building translation support... yes (with runtime language detection) Building taskbar integration support... win32 Building system dialogs support... win32 Building text-to-speech support... win32 Building TinyGL support... yes Building Bink video support... yes Building updates support... Sparkle Enabling Address Sanitizer... no Enabling Thread Sanitizer... no Enabling Undefined Behavior Sanitizer... no Enabling x86/amd64 SSE2... no Enabling x86/amd64 AVX2... no Enabling ARM NEON... yes Backend... sdl (2.30.9), 16bit color, high resolution, TinyGL, savegame timestamp, HQ and Edge scalers, aspect ratio correction, MT-32 emulator, Lua, Nuked OPL emulator, Windows console, cloud, ENet Engines (builtin): SCUMM [all games] Access ADL AGI AGOS [all games] Adventure Game Studio Sanitarium Lord Avalot d'Argent BAGEL Beavis and Butthead in Virtual Stupidity Blade Runner The Journeyman Project 2: Buried in Time CGE CGE2 Chamber Chewy: Esc from F5 Cinematique evo 1 Magic Composer CRAB Cinematique evo 2 Lost Eden Cryo Omni3D games [all games] Darkseed Dynamix Game Development System Macromedia Director Dungeon Master Dragon History Blazing Dragons Drascula: The Vampire Strikes Back Dreamweb Escape From Hell Freescape Glk Interactive Fiction games UFOs Gobli*ns The Griffon Legend Grim [all games] Groovie [all games] Hades Challenge Hyperspace Delivery Boy! Hopkins FBI Hpl1 Hugo Trilogy Hypnotix Inc. In Cold Blood Illusions Engine The Immortal Kingdom: The Far Reaches Kyra [all games] Labyrinth of Time The Last Express Lilliput Lure of the Temptress M4 MacVenture MADE MADS [all games] Might and Magic [all games] Mohawk [all games] Mortevielle mTropolis Mutation of JB Myst 3 Nancy Drew Neverhood Nikita Game Interface Parallaction The Journeyman Project: Pegasus Prime Red Comrades Pink Panther Playground 3d: the testing and playground environment for 3d renderers Plumbers Don't Wear Ties The Prince and The Coward Private Eye QD Engine Flight of the Amazon Queen SAGA [all games] SAGA2 SCI [all games] The Lost Files of Sherlock Holmes Beneath a Steel Sky Sludge The Longest Journey Star Trek 25th Anniversary/Judgment Rites Mission Supernova Broken Sword Broken Sword II Broken Sword 2.5 Teen Agent TestBed: the Testing framework Tetraedge Tinsel Starship Titanic 3 Skulls of the Toltecs Tony Tough and the Night of Roasted Moths Toonstruck Touche: The Adventures of the Fifth Musketeer Trecision Adventure Module TsAGE Bud Tucker in Double Trouble Little Big Adventure Thimbleweed Park Ultima [all games] V-Cruise Voyeur WAGE The Watchmaker Wintermute [all games] Z-Vision WARNING: This ScummVM build contains the following UNSTABLE engines: Lord Avalot d'Argent Chamber Lost Eden Darkseed Dungeon Master Grim [Escape from Monkey Island] Hpl1 In Cold Blood The Immortal The Last Express Lilliput MacVenture MADS [MADS V2] Mohawk [Where in Time is Carmen Sandiego?] Mutation of JB Playground 3d: the testing and playground environment for 3d renderers Sludge Star Trek 25th Anniversary/Judgment Rites TestBed: the Testing framework Ultima [Ultima I - The First Age of Darkness] WAGE The Watchmaker Wintermute [Wintermute3D] Creating engines/engines.mk Creating engines/detection_table.h Creating engines/plugins_table.h Creating config.h Creating config.mk
Please consider offering official releases for Windows on ARM. I would gladly help, if any is needed.
Hello, could you please test again with the latest master?