[Scummvm-git-logs] scummvm master -> 0c98d170ca24e59a9686bc3ab80129778b1f490a

sev- noreply at scummvm.org
Sun Sep 3 20:26:42 UTC 2023


This automated email contains information about 5 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
e60db69c41 GRAPHICS: Add SCUMMVM_NEON prepreocessor flag to blit-neon.cpp
db192eed39 AGS: Add SCUMMVM_NEON prepreocessor flag to surface_neon.cpp
76af53dc7f CREATE_PROJECT: Define SCUMMVM_NEON for iphoneos and tvos
f943fba3d0 IOS7: Enable kFeatureCpuNEON in IOS7 backend
0c98d170ca CONFIGURE: Enable NEON for all IOS7 targets


Commit: e60db69c41a132e1c0e3e211d6a5178177d85e02
    https://github.com/scummvm/scummvm/commit/e60db69c41a132e1c0e3e211d6a5178177d85e02
Author: Lars Sundström (l.sundstrom at gmail.com)
Date: 2023-09-03T22:26:37+02:00

Commit Message:
GRAPHICS: Add SCUMMVM_NEON prepreocessor flag to blit-neon.cpp

The blit-neon.cpp file is only added to the project if the flag
SCUMMVM_NEON is defined. However some backends, e.g. iOS, adds the
definition of SCUMMVM_NEON in create_project so the file can be
added to the project during configuration.
The same backend can then unset the definition due to changing
build target, the iOS simulator in this example, which runs can
run on x86_64 hosts which doesn't support NEON.

Since the project still include the source file it will be compiled.
Make sure to not build the file if not SCUMMVM_NEON is defined at
compile time.

Changed paths:
    graphics/blit/blit-neon.cpp


diff --git a/graphics/blit/blit-neon.cpp b/graphics/blit/blit-neon.cpp
index 4a9afb8c134..60a65c59fde 100644
--- a/graphics/blit/blit-neon.cpp
+++ b/graphics/blit/blit-neon.cpp
@@ -19,6 +19,7 @@
  *
  */
 
+#ifdef SCUMMVM_NEON
 #include "common/scummsys.h"
 #include <arm_neon.h>
 
@@ -463,3 +464,4 @@ void BlendBlit::blitNEON(Args &args, const TSpriteBlendMode &blendMode, const Al
 }
 
 } // end of namespace Graphics
+#endif // SCUMMVM_NEON


Commit: db192eed398b1aa527f5b3265e3e45c78c98be75
    https://github.com/scummvm/scummvm/commit/db192eed398b1aa527f5b3265e3e45c78c98be75
Author: Lars Sundström (l.sundstrom at gmail.com)
Date: 2023-09-03T22:26:37+02:00

Commit Message:
AGS: Add SCUMMVM_NEON prepreocessor flag to surface_neon.cpp

The surface_neon.cpp file is only added to the project if the flag
SCUMMVM_NEON is defined. However some backends, e.g. iOS, adds the
definition of SCUMMVM_NEON in create_project so the file can be
added to the project during configuration.
The same backend can then unset the definition due to changing
build target, the iOS simulator in this example, which runs can
run on x86_64 hosts which doesn't support NEON.

Since the project still include the source file it will be compiled.
Make sure to not build the file if not SCUMMVM_NEON is defined at
compile time.

Changed paths:
    engines/ags/lib/allegro/surface_neon.cpp


diff --git a/engines/ags/lib/allegro/surface_neon.cpp b/engines/ags/lib/allegro/surface_neon.cpp
index 35c8669e657..831efea7456 100644
--- a/engines/ags/lib/allegro/surface_neon.cpp
+++ b/engines/ags/lib/allegro/surface_neon.cpp
@@ -19,6 +19,7 @@
  *
  */
 
+#ifdef SCUMMVM_NEON
 #include <arm_neon.h>
 #include "ags/ags.h"
 #include "ags/globals.h"
@@ -925,3 +926,4 @@ template void BITMAP::drawNEON<false>(DrawInnerArgs &);
 template void BITMAP::drawNEON<true>(DrawInnerArgs &);
 
 } // namespace AGS3
+#endif // SCUMMVM_NEON


Commit: 76af53dc7fdb78139bd68597540d9729f756f3cb
    https://github.com/scummvm/scummvm/commit/76af53dc7fdb78139bd68597540d9729f756f3cb
Author: Lars Sundström (l.sundstrom at gmail.com)
Date: 2023-09-03T22:26:37+02:00

Commit Message:
CREATE_PROJECT: Define SCUMMVM_NEON for iphoneos and tvos

Add the definition of SCUMMVM_NEON in create_project for the iOS
and tvOS targets. Do not add the same definition to corresponding
simulators since they can run on x86_64 hosts, which for obvious
reasons lacks support for NEON.

Changed paths:
    devtools/create_project/create_project.cpp
    devtools/create_project/xcode.cpp


diff --git a/devtools/create_project/create_project.cpp b/devtools/create_project/create_project.cpp
index 8e81a339ba1..6aca7d730b7 100644
--- a/devtools/create_project/create_project.cpp
+++ b/devtools/create_project/create_project.cpp
@@ -413,6 +413,7 @@ int main(int argc, char *argv[]) {
 		// the files, according to the target.
 		setup.defines.push_back("MACOSX");
 		setup.defines.push_back("IPHONE");
+		setup.defines.push_back("SCUMMVM_NEON");
 	} else if (projectType == kProjectMSVC || projectType == kProjectCodeBlocks) {
 		setup.defines.push_back("WIN32");
 		backendWin32 = true;
diff --git a/devtools/create_project/xcode.cpp b/devtools/create_project/xcode.cpp
index 783f035a584..989bf1ab8de 100644
--- a/devtools/create_project/xcode.cpp
+++ b/devtools/create_project/xcode.cpp
@@ -1396,13 +1396,18 @@ void XcodeProvider::setupBuildConfiguration(const BuildSetup &setup) {
 	ADD_SETTING_QUOTE_VAR(iPhone_Debug, "PROVISIONING_PROFILE[sdk=iphoneos*]", "");
 	ADD_SETTING(iPhone_Debug, "SDKROOT", "iphoneos");
 	ADD_SETTING_QUOTE(iPhone_Debug, "TARGETED_DEVICE_FAMILY", "1,2");
-	ValueList scummvmIOS_defines;
-	ADD_DEFINE(scummvmIOS_defines, "\"$(inherited)\"");
-	ADD_DEFINE(scummvmIOS_defines, "IPHONE");
-	ADD_DEFINE(scummvmIOS_defines, "IPHONE_IOS7");
+	ValueList scummvmIOSsimulator_defines;
+	ADD_DEFINE(scummvmIOSsimulator_defines, "\"$(inherited)\"");
+	ADD_DEFINE(scummvmIOSsimulator_defines, "IPHONE");
+	ADD_DEFINE(scummvmIOSsimulator_defines, "IPHONE_IOS7");
 	if (CONTAINS_DEFINE(setup.defines, "USE_SDL_NET"))
-		ADD_DEFINE(scummvmIOS_defines, "WITHOUT_SDL");
-	ADD_SETTING_LIST(iPhone_Debug, "GCC_PREPROCESSOR_DEFINITIONS", scummvmIOS_defines, kSettingsNoQuote | kSettingsAsList, 5);
+		ADD_DEFINE(scummvmIOSsimulator_defines, "WITHOUT_SDL");
+	ADD_SETTING_LIST(iPhone_Debug, "\"GCC_PREPROCESSOR_DEFINITIONS[sdk=iphonesimulator*]\"", scummvmIOSsimulator_defines, kSettingsNoQuote | kSettingsAsList, 5);
+	// Separate iphoneos and iphonesimulator definitions since simulator running on x86_64
+	// hosts doesn't support NEON
+	ValueList scummvmIOS_defines = scummvmIOSsimulator_defines;
+	ADD_DEFINE(scummvmIOS_defines, "SCUMMVM_NEON");
+	ADD_SETTING_LIST(iPhone_Debug, "\"GCC_PREPROCESSOR_DEFINITIONS[sdk=iphoneos*]\"", scummvmIOS_defines, kSettingsNoQuote | kSettingsAsList, 5);
 	ADD_SETTING(iPhone_Debug, "ASSETCATALOG_COMPILER_APPICON_NAME", "AppIcon");
 	ADD_SETTING(iPhone_Debug, "ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME", "LaunchImage");
 
@@ -1554,13 +1559,18 @@ void XcodeProvider::setupBuildConfiguration(const BuildSetup &setup) {
 	ADD_SETTING_QUOTE_VAR(tvOS_Debug, "PROVISIONING_PROFILE[sdk=appletvos*]", "");
 	ADD_SETTING(tvOS_Debug, "SDKROOT", "appletvos");
 	ADD_SETTING_QUOTE(tvOS_Debug, "TARGETED_DEVICE_FAMILY", "3");
-	ValueList scummvmTVOS_defines;
-	ADD_DEFINE(scummvmTVOS_defines, "\"$(inherited)\"");
-	ADD_DEFINE(scummvmTVOS_defines, "IPHONE");
-	ADD_DEFINE(scummvmTVOS_defines, "IPHONE_IOS7");
+	ValueList scummvmTVOSsimulator_defines;
+	ADD_DEFINE(scummvmTVOSsimulator_defines, "\"$(inherited)\"");
+	ADD_DEFINE(scummvmTVOSsimulator_defines, "IPHONE");
+	ADD_DEFINE(scummvmTVOSsimulator_defines, "IPHONE_IOS7");
 	if (CONTAINS_DEFINE(setup.defines, "USE_SDL_NET"))
-		ADD_DEFINE(scummvmTVOS_defines, "WITHOUT_SDL");
-	ADD_SETTING_LIST(tvOS_Debug, "GCC_PREPROCESSOR_DEFINITIONS", scummvmTVOS_defines, kSettingsNoQuote | kSettingsAsList, 5);
+		ADD_DEFINE(scummvmTVOSsimulator_defines, "WITHOUT_SDL");
+	ADD_SETTING_LIST(tvOS_Debug, "\"GCC_PREPROCESSOR_DEFINITIONS[sdk=appletvsimulator*]\"", scummvmTVOSsimulator_defines, kSettingsNoQuote | kSettingsAsList, 5);
+	// Separate appletvos and appletvsimulator definitions since simulator running on x86_64
+	// hosts doesn't support NEON
+	ValueList scummvmTVOS_defines = scummvmTVOSsimulator_defines;
+	ADD_DEFINE(scummvmTVOS_defines, "SCUMMVM_NEON");
+	ADD_SETTING_LIST(tvOS_Debug, "\"GCC_PREPROCESSOR_DEFINITIONS[sdk=appletvos*]\"", scummvmTVOS_defines, kSettingsNoQuote | kSettingsAsList, 5);
 	ADD_SETTING(tvOS_Debug, "ASSETCATALOG_COMPILER_APPICON_NAME", "AppIcon");
 	ADD_SETTING(tvOS_Debug, "ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME", "LaunchImage");
 	tvOS_Debug_Object->addProperty("name", "Debug", "", kSettingsNoValue);
@@ -1644,6 +1654,7 @@ void XcodeProvider::setupDefines(const BuildSetup &setup) {
 	REMOVE_DEFINE(_defines, "IPHONE");
 	REMOVE_DEFINE(_defines, "IPHONE_IOS7");
 	REMOVE_DEFINE(_defines, "SDL_BACKEND");
+	REMOVE_DEFINE(_defines, "SCUMMVM_NEON");
 	ADD_DEFINE(_defines, "CONFIG_H");
 	ADD_DEFINE(_defines, "UNIX");
 	ADD_DEFINE(_defines, "HAS_FSEEKO_OFFT_64");


Commit: f943fba3d07533c268a2e210651ea0d6b8ade51a
    https://github.com/scummvm/scummvm/commit/f943fba3d07533c268a2e210651ea0d6b8ade51a
Author: Lars Sundström (l.sundstrom at gmail.com)
Date: 2023-09-03T22:26:37+02:00

Commit Message:
IOS7: Enable kFeatureCpuNEON in IOS7 backend

Make use of the NEON optimisations in iOS and tvOS.

Changed paths:
    backends/platform/ios7/ios7_osys_main.cpp


diff --git a/backends/platform/ios7/ios7_osys_main.cpp b/backends/platform/ios7/ios7_osys_main.cpp
index 16d4ed6dd4e..3a72ef87609 100644
--- a/backends/platform/ios7/ios7_osys_main.cpp
+++ b/backends/platform/ios7/ios7_osys_main.cpp
@@ -160,6 +160,9 @@ bool OSystem_iOS7::hasFeature(Feature f) {
 	case kFeatureOpenGLForGame:
 	case kFeatureShadersForGame:
 	case kFeatureTouchscreen:
+#ifdef SCUMMVM_NEON
+	case kFeatureCpuNEON:
+#endif
 		return true;
 
 	default:


Commit: 0c98d170ca24e59a9686bc3ab80129778b1f490a
    https://github.com/scummvm/scummvm/commit/0c98d170ca24e59a9686bc3ab80129778b1f490a
Author: Cameron Cawley (ccawley2011 at gmail.com)
Date: 2023-09-03T22:26:37+02:00

Commit Message:
CONFIGURE: Enable NEON for all IOS7 targets

The SCUMMVM_NEON definition is alredy added by default for aarch64
host cpus. NEON is also supported on iOS devices running on armv7
cpus. Make sure to enable NEON for all ios7 devices.

Changed paths:
    configure


diff --git a/configure b/configure
index 751fd141c59..3a2f8996240 100755
--- a/configure
+++ b/configure
@@ -3665,6 +3665,7 @@ if test -n "$_host"; then
 			_backend="ios7"
 			_seq_midi=no
 			_timidity=no
+			_ext_neon=yes
 			;;
 		kos32)
 			# neither pkg-config nor *-config work, so we setup everything manually




More information about the Scummvm-git-logs mailing list