[Scummvm-tracker] [ScummVM :: Bugs] #15096: compilation issue: no more ARM64 cpu optimisations (NEON)

ScummVM :: Bugs trac at scummvm.org
Sat Apr 27 17:51:27 UTC 2024


#15096: compilation issue: no more ARM64 cpu optimisations (NEON)
-------------------------+-------------------------------------------------
Reporter:  ArminiusTux   |      Owner:  (none)
    Type:  defect        |     Status:  new
Priority:  low           |  Component:  Port: Win64
 Version:                |   Keywords:  configure compilation msys2 mingw
    Game:                |  aarch64 arm64 neon WindowsonARM WoA64 WinARM64
-------------------------+-------------------------------------------------
 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)
 }}}

 [[Image(https://i.postimg.cc/vZ3cb0Gp/scummvm-v290git.png)]]

 {{{
 $ ./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)
 }}}


 [[Image(https://i.postimg.cc/tgJ7TFT7/scummvm-v281.png)]]


 {{{
 $ ./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
 }}}
-- 
Ticket URL: <https://bugs.scummvm.org/ticket/15096>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM


More information about the Scummvm-tracker mailing list