From 6e86a2472f10cb08e2a9a74d3e4b04181835dac6 Mon Sep 17 00:00:00 2001 From: Thomas Jentzsch Date: Fri, 2 Dec 2022 10:42:21 +0100 Subject: [PATCH] added Release PGO x64 build configuration for VS --- src/emucore/Thumbulator.hxx | 2 +- src/os/windows/Stella.sln | 10 +- src/os/windows/Stella.vcxproj | 241 ++++++++++++++++++++++++++++++++++ 3 files changed, 250 insertions(+), 3 deletions(-) diff --git a/src/emucore/Thumbulator.hxx b/src/emucore/Thumbulator.hxx index a37849ba3..dc9952098 100644 --- a/src/emucore/Thumbulator.hxx +++ b/src/emucore/Thumbulator.hxx @@ -36,7 +36,7 @@ class Cartridge; #ifdef DEBUGGER_SUPPORT #define THUMB_CYCLE_COUNT - #define COUNT_OPS + //#define COUNT_OPS //#define THUMB_STATS #endif diff --git a/src/os/windows/Stella.sln b/src/os/windows/Stella.sln index 0bcd5ccc1..816d49e37 100755 --- a/src/os/windows/Stella.sln +++ b/src/os/windows/Stella.sln @@ -1,6 +1,6 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29613.14 +# Visual Studio Version 17 +VisualStudioVersion = 17.4.33110.190 MinimumVisualStudioVersion = 10.0.40219.1 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Stella", "Stella.vcxproj", "{D7FCEC7F-33E1-49DD-A4B0-D5FC222250AD}" EndProject @@ -12,6 +12,8 @@ Global Debug-NoDebugger|x64 = Debug-NoDebugger|x64 Profile|Win32 = Profile|Win32 Profile|x64 = Profile|x64 + Release PGO|Win32 = Release PGO|Win32 + Release PGO|x64 = Release PGO|x64 Release|Win32 = Release|Win32 Release|x64 = Release|x64 Release-Sanitize|Win32 = Release-Sanitize|Win32 @@ -30,6 +32,10 @@ Global {D7FCEC7F-33E1-49DD-A4B0-D5FC222250AD}.Profile|Win32.Build.0 = Profile|Win32 {D7FCEC7F-33E1-49DD-A4B0-D5FC222250AD}.Profile|x64.ActiveCfg = Profile|x64 {D7FCEC7F-33E1-49DD-A4B0-D5FC222250AD}.Profile|x64.Build.0 = Profile|x64 + {D7FCEC7F-33E1-49DD-A4B0-D5FC222250AD}.Release PGO|Win32.ActiveCfg = Release PGO|Win32 + {D7FCEC7F-33E1-49DD-A4B0-D5FC222250AD}.Release PGO|Win32.Build.0 = Release PGO|Win32 + {D7FCEC7F-33E1-49DD-A4B0-D5FC222250AD}.Release PGO|x64.ActiveCfg = Release PGO|x64 + {D7FCEC7F-33E1-49DD-A4B0-D5FC222250AD}.Release PGO|x64.Build.0 = Release PGO|x64 {D7FCEC7F-33E1-49DD-A4B0-D5FC222250AD}.Release|Win32.ActiveCfg = Release|Win32 {D7FCEC7F-33E1-49DD-A4B0-D5FC222250AD}.Release|Win32.Build.0 = Release|Win32 {D7FCEC7F-33E1-49DD-A4B0-D5FC222250AD}.Release|x64.ActiveCfg = Release|x64 diff --git a/src/os/windows/Stella.vcxproj b/src/os/windows/Stella.vcxproj index b5492efa3..1b88ac41f 100755 --- a/src/os/windows/Stella.vcxproj +++ b/src/os/windows/Stella.vcxproj @@ -25,6 +25,14 @@ Profile x64 + + Release PGO + Win32 + + + Release PGO + x64 + Release-Sanitize Win32 @@ -54,6 +62,11 @@ MultiByte v143 + + Application + MultiByte + v143 + Application MultiByte @@ -80,6 +93,12 @@ v143 false + + Application + MultiByte + v143 + false + Application MultiByte @@ -111,6 +130,10 @@ + + + + @@ -131,6 +154,10 @@ + + + + @@ -163,15 +190,19 @@ true true $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ Release\ $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ Release\ $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ $(Platform)\$(Configuration)\ AllRules.ruleset @@ -187,21 +218,27 @@ AllRules.ruleset + AllRules.ruleset AllRules.ruleset AllRules.ruleset + + AllRules.ruleset + AllRules.ruleset AllRules.ruleset AllRules.ruleset + + @@ -217,6 +254,10 @@ $(ProjectDir)\SDL\lib\x86;$(LibraryPath) $(ProjectDir)\SDL\include;$(IncludePath) + + $(ProjectDir)\SDL\lib\x86;$(LibraryPath) + $(ProjectDir)\SDL\include;$(IncludePath) + $(ProjectDir)\SDL\lib\x86;$(LibraryPath) $(ProjectDir)\SDL\include;$(IncludePath) @@ -238,6 +279,10 @@ $(ProjectDir)\SDL\lib\x64;$(LibraryPath) $(ProjectDir)\SDL\include;$(IncludePath) + + $(ProjectDir)\SDL\lib\x64;$(LibraryPath) + $(ProjectDir)\SDL\include;$(IncludePath) + $(ProjectDir)\SDL\lib\x64;$(LibraryPath) $(ProjectDir)\SDL\include;$(IncludePath) @@ -421,6 +466,41 @@ UseFastLinkTimeCodeGeneration + + + true + true + ..\..\debugger\yacc;..\..\emucore;..\..\emucore\tia;..\..\emucore\tia\frame-manager;..\..\common;..\..\common\tv_filters;..\..\gui;..\..\debugger\gui;..\..\debugger;..\..\os\windows;..\..\cheat;..\..\lib\zlib;..\..\lib\libpng;..\..\lib\json;..\..\common\repository\sqlite;..\..\lib\sqlite;..\..\lib\nanojpeg;..\..\lib\tinyexif;..\..\lib\httplib;%(AdditionalIncludeDirectories) + BSPF_WINDOWS;WIN32;NOMINMAX;NDEBUG;SDL_SUPPORT;GUI_SUPPORT;IMAGE_SUPPORT;ZIP_SUPPORT;JOYSTICK_SUPPORT;DEBUGGER_SUPPORT;WINDOWED_SUPPORT;SOUND_SUPPORT;CHEATCODE_SUPPORT;HTTP_LIB_SUPPORT;%(PreprocessorDefinitions) + MultiThreadedDLL + false + + + Level4 + ProgramDatabase + $(IntDir)obj\\windows\%(RelativeDir) + StreamingSIMDExtensions + stdcpp17 + true + 4100;4127;4146;4244;26400;26409;26410;26415;26429;26438;26440;26446;26451;26455;26459;26467;26472;26481;26482;26485;26492;%(DisableSpecificWarnings) + CompileAsCpp + NoListing + $(IntDir)asm\windows\%(RelativeDir) + + + SDL2.lib;SDL2main.lib;SDL2main.lib;%(AdditionalDependencies) + $(OutDir)Stella.exe + true + Windows + true + true + false + + + MachineX86 + UseFastLinkTimeCodeGeneration + + true @@ -530,6 +610,45 @@ UseFastLinkTimeCodeGeneration + + + X64 + + + MaxSpeed + AnySuitable + true + ..\..\debugger\yacc;..\..\emucore;..\..\emucore\tia;..\..\emucore\tia\frame-manager;..\..\common;..\..\common\tv_filters;..\..\gui;..\..\debugger\gui;..\..\debugger;..\..\os\windows;..\..\cheat;..\..\lib\zlib;..\..\lib\libpng;..\..\lib\json;..\..\common\repository\sqlite;..\..\lib\sqlite;..\..\lib\nanojpeg;..\..\lib\tinyexif;..\..\lib\httplib;%(AdditionalIncludeDirectories) + BSPF_WINDOWS;WIN32;NOMINMAX;NDEBUG;SDL_SUPPORT;GUI_SUPPORT;IMAGE_SUPPORT;ZIP_SUPPORT;JOYSTICK_SUPPORT;DEBUGGER_SUPPORT;WINDOWED_SUPPORT;SOUND_SUPPORT;CHEATCODE_SUPPORT;HTTP_LIB_SUPPORT;%(PreprocessorDefinitions) + MultiThreadedDLL + false + + + Level4 + None + $(IntDir)obj\\windows\%(RelativeDir) + stdcpp17 + true + 4100;4127;4146;4244;26400;26409;26410;26415;26429;26438;26440;26446;26451;26455;26459;26467;26472;26481;26482;26485;26492;%(DisableSpecificWarnings) + CompileAsCpp + NoListing + $(IntDir)asm\windows\%(RelativeDir) + true + + + SDL2.lib;SDL2main.lib;%(AdditionalDependencies) + $(OutDir)Stella.exe + false + Windows + true + true + false + + + MachineX64 + PGUpdate + + X64 @@ -944,11 +1063,13 @@ CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC @@ -1125,21 +1246,25 @@ CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC Level2 Level2 Level2 + Level2 Level2 Level2 Level2 Level2 Level2 + Level2 Level2 Level2 @@ -1147,21 +1272,25 @@ CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC Level2 Level2 Level2 + Level2 Level2 Level2 Level2 Level2 Level2 + Level2 Level2 Level2 @@ -1169,21 +1298,25 @@ CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC Level2 Level2 Level2 + Level2 Level2 Level2 Level2 Level2 Level2 + Level2 Level2 Level2 @@ -1191,21 +1324,25 @@ CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC Level2 Level2 Level2 + Level2 Level2 Level2 Level2 Level2 Level2 + Level2 Level2 Level2 @@ -1213,21 +1350,25 @@ CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC Level2 Level2 Level2 + Level2 Level2 Level2 Level2 Level2 Level2 + Level2 Level2 Level2 @@ -1235,21 +1376,25 @@ CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC Level2 Level2 Level2 + Level2 Level2 Level2 Level2 Level2 Level2 + Level2 Level2 Level2 @@ -1257,21 +1402,25 @@ CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC Level2 Level2 Level2 + Level2 Level2 Level2 Level2 Level2 Level2 + Level2 Level2 Level2 @@ -1279,21 +1428,25 @@ CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC Level2 Level2 Level2 + Level2 Level2 Level2 Level2 Level2 Level2 + Level2 Level2 Level2 @@ -1301,21 +1454,25 @@ CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC Level2 Level2 Level2 + Level2 Level2 Level2 Level2 Level2 Level2 + Level2 Level2 Level2 @@ -1323,21 +1480,25 @@ CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC Level2 Level2 Level2 + Level2 Level2 Level2 Level2 Level2 Level2 + Level2 Level2 Level2 @@ -1345,21 +1506,25 @@ CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC Level2 Level2 Level2 + Level2 Level2 Level2 Level2 Level2 Level2 + Level2 Level2 Level2 @@ -1367,21 +1532,25 @@ CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC Level2 Level2 Level2 + Level2 Level2 Level2 Level2 Level2 Level2 + Level2 Level2 Level2 @@ -1389,21 +1558,25 @@ CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC Level2 Level2 Level2 + Level2 Level2 Level2 Level2 Level2 Level2 + Level2 Level2 Level2 @@ -1411,21 +1584,25 @@ CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC Level2 Level2 Level2 + Level2 Level2 Level2 Level2 Level2 Level2 + Level2 Level2 Level2 @@ -1433,21 +1610,25 @@ CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC Level2 Level2 Level2 + Level2 Level2 Level2 Level2 Level2 Level2 + Level2 Level2 Level2 @@ -1455,21 +1636,25 @@ Level2 Level2 Level2 + Level2 Level2 Level2 Level2 Level2 Level2 + Level2 Level2 Level2 CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC @@ -1477,21 +1662,25 @@ Level2 Level2 Level2 + Level2 Level2 Level2 Level2 Level2 Level2 + Level2 Level2 Level2 CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC @@ -1499,21 +1688,25 @@ Level2 Level2 Level2 + Level2 Level2 Level2 Level2 Level2 Level2 + Level2 Level2 Level2 CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC @@ -1521,21 +1714,25 @@ Level2 Level2 Level2 + Level2 Level2 Level2 Level2 Level2 Level2 + Level2 Level2 Level2 CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC @@ -1543,21 +1740,25 @@ Level2 Level2 Level2 + Level2 Level2 Level2 Level2 Level2 Level2 + Level2 Level2 Level2 CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC @@ -1565,21 +1766,25 @@ Level2 Level2 Level2 + Level2 Level2 Level2 Level2 Level2 Level2 + Level2 Level2 Level2 CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC @@ -1587,21 +1792,25 @@ Level2 Level2 Level2 + Level2 Level2 Level2 Level2 Level2 Level2 + Level2 Level2 Level2 CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC @@ -1609,21 +1818,25 @@ Level2 Level2 Level2 + Level2 Level2 Level2 Level2 Level2 Level2 + Level2 Level2 Level2 CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC @@ -1631,21 +1844,25 @@ Level2 Level2 Level2 + Level2 Level2 Level2 Level2 Level2 Level2 + Level2 Level2 Level2 CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC @@ -1653,21 +1870,25 @@ Level2 Level2 Level2 + Level2 Level2 Level2 Level2 Level2 Level2 + Level2 Level2 Level2 CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC @@ -1675,21 +1896,25 @@ Level2 Level2 Level2 + Level2 Level2 Level2 Level2 Level2 Level2 + Level2 Level2 Level2 CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC @@ -1697,21 +1922,25 @@ Level2 Level2 Level2 + Level2 Level2 Level2 Level2 Level2 Level2 + Level2 Level2 Level2 CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC @@ -1719,21 +1948,25 @@ Level2 Level2 Level2 + Level2 Level2 Level2 Level2 Level2 Level2 + Level2 Level2 Level2 CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC @@ -1741,21 +1974,25 @@ Level2 Level2 Level2 + Level2 Level2 Level2 Level2 Level2 Level2 + Level2 Level2 Level2 CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC @@ -1763,21 +2000,25 @@ Level2 Level2 Level2 + Level2 Level2 Level2 Level2 Level2 Level2 + Level2 Level2 Level2 CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC CompileAsC + CompileAsC CompileAsC CompileAsC