#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 , 14 months ago
comment:2 by , 14 months 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 , 14 months ago
| Summary: | CONFIGURE: compilation issue: no more ARM64 cpu optimisations (NEON) → BUILD: compilation issue: no more ARM64 cpu optimisations (NEON) |
|---|
comment:4 by , 14 months ago
| Owner: | set to |
|---|---|
| Resolution: | → fixed |
| Status: | new → closed |
The detection code has been rewritten. It should be fixed now.
comment:5 by , 14 months 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?