- Changed Windows to use the performance counter instead of rdtsc.

SVN r1143 (trunk)
This commit is contained in:
Randy Heit 2008-08-10 03:56:53 +00:00
parent ad96225213
commit 9ad93639c5
12 changed files with 454 additions and 393 deletions

View file

@ -1,8 +1,9 @@
August 10, 2008 August 10, 2008
- Changed Linux to use clock_gettime for profiling instead of rdtsc. This - Changed Windows to use the performance counter instead of rdtsc.
avoids potential erroneous results on multicore and variable speed - Changed Linux to use clock_gettime for profiling instead of rdtsc. This
processors. avoids potential erroneous results on multicore and variable speed
processors.
August 9, 2008 (Changes by Graf Zahl) August 9, 2008 (Changes by Graf Zahl)
- Converted the last of Hexen's inventory items to DECORATE so that I could - Converted the last of Hexen's inventory items to DECORATE so that I could
export AInventory. export AInventory.

View file

@ -479,8 +479,8 @@ void D_Display ()
if (nodrawers) if (nodrawers)
return; // for comparative timing / profiling return; // for comparative timing / profiling
cycle_t cycles; cycle_t cycles;
cycles.Reset(); cycles.Reset();
cycles.Clock(); cycles.Clock();
@ -2653,7 +2653,7 @@ static double bestwallcycles = HUGE_VAL;
ADD_STAT (wallcycles) ADD_STAT (wallcycles)
{ {
FString out; FString out;
double cycles = WallCycles.Time(); double cycles = WallCycles.Time();
if (cycles && cycles < bestwallcycles) if (cycles && cycles < bestwallcycles)
bestwallcycles = cycles; bestwallcycles = cycles;
@ -2680,7 +2680,7 @@ static double bestscancycles = HUGE_VAL;
ADD_STAT (scancycles) ADD_STAT (scancycles)
{ {
FString out; FString out;
double scancycles = WallScanCycles.Time(); double scancycles = WallScanCycles.Time();
if (scancycles && scancycles < bestscancycles) if (scancycles && scancycles < bestscancycles)
bestscancycles = scancycles; bestscancycles = scancycles;

View file

@ -525,4 +525,4 @@ void DObject::CheckIfSerialized () const
StaticType()->TypeName.GetChars()); StaticType()->TypeName.GetChars());
} }
} }

View file

@ -42,7 +42,7 @@
static cycle_t ThinkCycles; static cycle_t ThinkCycles;
extern cycle_t BotSupportCycles; extern cycle_t BotSupportCycles;
extern cycle_t BotWTG; extern int BotWTG;
IMPLEMENT_CLASS (DThinker) IMPLEMENT_CLASS (DThinker)
@ -406,9 +406,9 @@ void DThinker::RunThinkers ()
{ {
int i, count; int i, count;
ThinkCycles.Reset(); ThinkCycles.Reset();
BotSupportCycles.Reset(); BotSupportCycles.Reset();
BotWTG.Reset(); BotWTG = 0;
ThinkCycles.Clock(); ThinkCycles.Clock();

View file

@ -41,6 +41,7 @@
#include "gi.h" #include "gi.h"
#include "stats.h" #include "stats.h"
#include "x86.h"
#undef RANGECHECK #undef RANGECHECK

View file

@ -35,74 +35,120 @@
#define __STATS_H__ #define __STATS_H__
#include "zstring.h" #include "zstring.h"
#ifdef unix #ifdef unix
#ifdef NO_CLOCK_GETTIME #ifdef NO_CLOCK_GETTIME
class cycle_t class cycle_t
{ {
public: public:
cycle_t &operator= (const cycle_t &o) { return *this; } cycle_t &operator= (const cycle_t &o) { return *this; }
void Reset() {} void Reset() {}
void Clock() {} void Clock() {}
void Unclock() {} void Unclock() {}
double Time() { return 0; } double Time() { return 0; }
double TimeMS() { return 0; } double TimeMS() { return 0; }
}; };
#else #else
#include <time.h> #include <time.h>
class cycle_t class cycle_t
{ {
public: public:
cycle_t &operator= (const cycle_t &o) cycle_t &operator= (const cycle_t &o)
{ {
Sec = o.Sec; Sec = o.Sec;
return *this; return *this;
} }
void Reset() void Reset()
{ {
Sec = 0; Sec = 0;
} }
void Clock() void Clock()
{ {
timespec ts; timespec ts;
clock_gettime(CLOCK_MONOTONIC, &ts); clock_gettime(CLOCK_MONOTONIC, &ts);
Sec -= ts.tv_sec + ts.tv_nsec * 1e-9; Sec -= ts.tv_sec + ts.tv_nsec * 1e-9;
} }
void Unclock() void Unclock()
{ {
timespec ts; timespec ts;
clock_gettime(CLOCK_MONOTONIC, &ts); clock_gettime(CLOCK_MONOTONIC, &ts);
Sec += ts.tv_sec + ts.tv_nsec * 1e-9; Sec += ts.tv_sec + ts.tv_nsec * 1e-9;
} }
double Time() double Time()
{ {
return Sec; return Sec;
} }
double TimeMS() double TimeMS()
{ {
return Sec * 1e3; return Sec * 1e3;
} }
private: private:
double Sec; double Sec;
}; };
#endif #endif
#else #else
// Windows // Windows
extern double PerfToSec, PerfToMillisec;
long long QueryPerfCounter();
class cycle_t
{
public:
cycle_t &operator= (const cycle_t &o)
{
Counter = o.Counter;
return *this;
}
void Reset()
{
Counter = 0;
}
void Clock()
{
// Not using QueryPerformanceCounter directly, so we don't need
// to pull in the Windows headers for every single file that
// wants to do some profiling.
long long time = QueryPerfCounter();
Counter -= time;
}
void Unclock()
{
long long time = QueryPerfCounter();
Counter += time;
}
double Time()
{
return Counter * PerfToSec;
}
double TimeMS()
{
return Counter * PerfToMillisec;
}
private:
long long Counter;
};
#endif #endif
class FStat class FStat

View file

@ -54,6 +54,7 @@
#include "g_level.h" #include "g_level.h"
#include "st_stuff.h" #include "st_stuff.h"
#include "gi.h" #include "gi.h"
#include "x86.h"
extern "C" { extern "C" {
FDynamicColormap NormalLight; FDynamicColormap NormalLight;

View file

@ -866,8 +866,8 @@ void D3DFB::Update ()
UploadPalette(); UploadPalette();
} }
BlitCycles = 0; BlitCycles.Reset();
clock (BlitCycles); BlitCycles.Clock();
LockCount = 0; LockCount = 0;
HRESULT hr = D3DDevice->TestCooperativeLevel(); HRESULT hr = D3DDevice->TestCooperativeLevel();
@ -885,7 +885,7 @@ void D3DFB::Update ()
InScene = false; InScene = false;
} }
unclock (BlitCycles); BlitCycles.Unclock();
//LOG1 ("cycles = %d\n", BlitCycles); //LOG1 ("cycles = %d\n", BlitCycles);
Buffer = NULL; Buffer = NULL;

View file

@ -1095,8 +1095,8 @@ void DDrawFB::Update ()
} }
} }
BlitCycles = 0; BlitCycles.Reset();
clock (BlitCycles); BlitCycles.Clock();
if (BufferingNow) if (BufferingNow)
{ {
@ -1163,8 +1163,8 @@ void DDrawFB::Update ()
} }
} }
unclock (BlitCycles); BlitCycles.Unclock();
LOG1 ("cycles = %llu\n", BlitCycles); LOG1 ("cycles = %.1 ms\n", BlitCycles.TimeMS());
Buffer = NULL; Buffer = NULL;
LockCount = 0; LockCount = 0;
@ -1299,9 +1299,6 @@ void DDrawFB::Blank ()
ADD_STAT (blit) ADD_STAT (blit)
{ {
FString out; FString out;
out.Format ( out.Format ("blit=%04.1f ms", BlitCycles.TimeMS());
"blit=%04.1f ms",
(double)BlitCycles * SecondsPerCycle * 1000
);
return out; return out;
} }

View file

@ -53,6 +53,7 @@
#include "i_music.h" #include "i_music.h"
#include "resource.h" #include "resource.h"
#include "x86.h" #include "x86.h"
#include "stats.h"
#include "d_main.h" #include "d_main.h"
#include "d_net.h" #include "d_net.h"
@ -70,15 +71,11 @@ EXTERN_CVAR (String, language)
extern void CheckCPUID(CPUInfo *cpu); extern void CheckCPUID(CPUInfo *cpu);
extern "C"
{
double SecondsPerCycle = 1e-8;
double CyclesPerSecond = 1e8; // 100 MHz
}
extern HWND Window, ConWindow, GameTitleWindow; extern HWND Window, ConWindow, GameTitleWindow;
extern HINSTANCE g_hInst; extern HINSTANCE g_hInst;
double PerfToSec, PerfToMillisec;
UINT TimerPeriod; UINT TimerPeriod;
UINT TimerEventID; UINT TimerEventID;
UINT MillisecondsPerTic; UINT MillisecondsPerTic;
@ -345,9 +342,15 @@ void SetLanguageIDs ()
void I_Init (void) void I_Init (void)
{ {
LARGE_INTEGER perf_freq;
CheckCPUID(&CPU); CheckCPUID(&CPU);
DumpCPUInfo(&CPU); DumpCPUInfo(&CPU);
QueryPerformanceFrequency(&perf_freq);
PerfToSec = 1 / double(perf_freq.QuadPart);
PerfToMillisec = 1000 / double(perf_freq.QuadPart);
// Use a timer event if possible // Use a timer event if possible
NewTicArrived = CreateEvent (NULL, FALSE, FALSE, NULL); NewTicArrived = CreateEvent (NULL, FALSE, FALSE, NULL);
if (NewTicArrived) if (NewTicArrived)
@ -737,3 +740,11 @@ FString I_GetSteamPath()
path = ""; path = "";
return path; return path;
} }
long long QueryPerfCounter()
{
LARGE_INTEGER counter;
QueryPerformanceCounter(&counter);
return counter.QuadPart;
}

View file

@ -3,15 +3,15 @@
#endif #endif
#include <mmintrin.h> #include <mmintrin.h>
#include <emmintrin.h> #include <emmintrin.h>
#include "doomtype.h" #include "doomtype.h"
#include "doomdef.h" #include "doomdef.h"
#include "x86.h" #include "x86.h"
extern "C" extern "C"
{ {
CPUInfo CPU; CPUInfo CPU;
} }
#ifdef __GNUC__ #ifdef __GNUC__
#define __cpuid(output, func) __asm__ __volatile__("cpuid" : "=a" ((output)[0]),\ #define __cpuid(output, func) __asm__ __volatile__("cpuid" : "=a" ((output)[0]),\
@ -102,9 +102,9 @@ haveid:
if (cpu->Family == 15) if (cpu->Family == 15)
{ // Add extended family. { // Add extended family.
cpu->Family += (foo[0] >> 20) & 0xFF; cpu->Family += (foo[0] >> 20) & 0xFF;
} }
if (cpu->Family == 6 || cpu->Family == 15) if (cpu->Family == 6 || cpu->Family == 15)
{ // Add extended model ID. { // Add extended model ID.
cpu->Model |= (foo[0] >> 12) & 0xF0; cpu->Model |= (foo[0] >> 12) & 0xF0;
} }
@ -144,65 +144,65 @@ haveid:
#endif #endif
} }
void DumpCPUInfo(const CPUInfo *cpu) void DumpCPUInfo(const CPUInfo *cpu)
{ {
char cpustring[4*4*3+1]; char cpustring[4*4*3+1];
// Why does Intel right-justify this string (on P4s) // Why does Intel right-justify this string (on P4s)
// or add extra spaces (on Cores)? // or add extra spaces (on Cores)?
const char *f = cpu->CPUString; const char *f = cpu->CPUString;
char *t; char *t;
// Skip extra whitespace at the beginning. // Skip extra whitespace at the beginning.
while (*f == ' ') while (*f == ' ')
{ {
++f; ++f;
} }
// Copy string to temp buffer, but condense consecutive // Copy string to temp buffer, but condense consecutive
// spaces to a single space character. // spaces to a single space character.
for (t = cpustring; *f != '\0'; ++f) for (t = cpustring; *f != '\0'; ++f)
{ {
if (*f == ' ' && *(f - 1) == ' ') if (*f == ' ' && *(f - 1) == ' ')
{ {
continue; continue;
} }
*t++ = *f; *t++ = *f;
} }
*t = '\0'; *t = '\0';
if (cpu->VendorID[0]) if (cpu->VendorID[0])
{ {
Printf("CPU Vendor ID: %s\n", cpu->VendorID); Printf("CPU Vendor ID: %s\n", cpu->VendorID);
if (cpustring[0]) if (cpustring[0])
{ {
Printf(" Name: %s\n", cpustring); Printf(" Name: %s\n", cpustring);
} }
if (cpu->bIsAMD) if (cpu->bIsAMD)
{ {
Printf(" Family %d (%d), Model %d, Stepping %d\n", Printf(" Family %d (%d), Model %d, Stepping %d\n",
cpu->Family, cpu->AMDFamily, cpu->AMDModel, cpu->AMDStepping); cpu->Family, cpu->AMDFamily, cpu->AMDModel, cpu->AMDStepping);
} }
else else
{ {
Printf(" Family %d, Model %d, Stepping %d\n", Printf(" Family %d, Model %d, Stepping %d\n",
cpu->Family, cpu->Model, cpu->Stepping); cpu->Family, cpu->Model, cpu->Stepping);
} }
Printf(" Features:"); Printf(" Features:");
if (cpu->bMMX) Printf(" MMX"); if (cpu->bMMX) Printf(" MMX");
if (cpu->bMMXPlus) Printf(" MMX+"); if (cpu->bMMXPlus) Printf(" MMX+");
if (cpu->bSSE) Printf(" SSE"); if (cpu->bSSE) Printf(" SSE");
if (cpu->bSSE2) Printf(" SSE2"); if (cpu->bSSE2) Printf(" SSE2");
if (cpu->bSSE3) Printf(" SSE3"); if (cpu->bSSE3) Printf(" SSE3");
if (cpu->bSSSE3) Printf(" SSSE3"); if (cpu->bSSSE3) Printf(" SSSE3");
if (cpu->bSSE41) Printf(" SSE4.1"); if (cpu->bSSE41) Printf(" SSE4.1");
if (cpu->bSSE42) Printf(" SSE4.2"); if (cpu->bSSE42) Printf(" SSE4.2");
if (cpu->b3DNow) Printf(" 3DNow!"); if (cpu->b3DNow) Printf(" 3DNow!");
if (cpu->b3DNowPlus) Printf(" 3DNow!+"); if (cpu->b3DNowPlus) Printf(" 3DNow!+");
Printf ("\n"); Printf ("\n");
} }
} }
#if 0 #if 0
// Compiler output for this function is crap compared to the assembly // Compiler output for this function is crap compared to the assembly

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="Windows-1252"?> <?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject <VisualStudioProject
ProjectType="Visual C++" ProjectType="Visual C++"
Version="8,00" Version="8.00"
Name="zdoom" Name="zdoom"
ProjectGUID="{8049475B-5C87-46F9-9358-635218A4EF18}" ProjectGUID="{8049475B-5C87-46F9-9358-635218A4EF18}"
RootNamespace=" zdoom" RootNamespace=" zdoom"
@ -138,112 +138,6 @@
Name="VCPostBuildEventTool" Name="VCPostBuildEventTool"
/> />
</Configuration> </Configuration>
<Configuration
Name="Debug|Win32"
OutputDirectory=".\Debug"
IntermediateDirectory=".\Debug"
ConfigurationType="1"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
>
<Tool
Name="VCPreBuildEventTool"
Description="Checking svnrevision.h..."
CommandLine="$(OutDir)\updaterevision.exe src src/svnrevision.h"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG"
MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="1"
TypeLibraryName=".\Debug/zdoom.tlb"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="src\win32;src\sound;src;zlib;src\g_shared;src\g_doom;src\g_raven;src\g_heretic;src\g_hexen;src\g_strife;jpeg-6b;snes_spc\snes_spc;gdtoa"
PreprocessorDefinitions="WIN32,_DEBUG,_WIN32,_WINDOWS,_CRTDBG_MAP_ALLOC,HAVE_STRUPR,HAVE_FILELENGTH"
MinimalRebuild="true"
RuntimeLibrary="1"
EnableFunctionLevelLinking="true"
ForceConformanceInForLoopScope="true"
PrecompiledHeaderFile=""
AssemblerOutput="0"
AssemblerListingLocation=".\Debug/"
ObjectFile=".\Debug/"
ProgramDataBaseFileName=".\Debug/"
WarningLevel="3"
SuppressStartupBanner="true"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="4"
CompileAs="0"
DisableSpecificWarnings="4996"
ForcedIncludeFiles=""
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG"
Culture="1033"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalOptions="/MACHINE:I386"
AdditionalDependencies="gdi32.lib user32.lib comctl32.lib shell32.lib advapi32.lib comdlg32.lib ole32.lib dxguid.lib dsound.lib dinput8.lib strmiids.lib wsock32.lib winmm.lib fmodex_vc.lib setupapi.lib ws2_32.lib"
OutputFile="../zdoomd.exe"
LinkIncremental="2"
SuppressStartupBanner="true"
AdditionalLibraryDirectories=""
IgnoreDefaultLibraryNames="libcmt;msvcrtd;msvcrt"
GenerateDebugInformation="true"
ProgramDatabaseFile=".\Debug/zdoomd.pdb"
SubSystem="2"
StackReserveSize="0"
TerminalServerAware="2"
SetChecksum="false"
TargetMachine="0"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration <Configuration
Name="Release|x64" Name="Release|x64"
OutputDirectory="$(PlatformName)\$(ConfigurationName)" OutputDirectory="$(PlatformName)\$(ConfigurationName)"
@ -355,6 +249,112 @@
Name="VCPostBuildEventTool" Name="VCPostBuildEventTool"
/> />
</Configuration> </Configuration>
<Configuration
Name="Debug|Win32"
OutputDirectory=".\Debug"
IntermediateDirectory=".\Debug"
ConfigurationType="1"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
>
<Tool
Name="VCPreBuildEventTool"
Description="Checking svnrevision.h..."
CommandLine="$(OutDir)\updaterevision.exe src src/svnrevision.h"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG"
MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="1"
TypeLibraryName=".\Debug/zdoom.tlb"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="src\win32;src\sound;src;zlib;src\g_shared;src\g_doom;src\g_raven;src\g_heretic;src\g_hexen;src\g_strife;jpeg-6b;snes_spc\snes_spc;gdtoa"
PreprocessorDefinitions="WIN32,_DEBUG,_WIN32,_WINDOWS,_CRTDBG_MAP_ALLOC,HAVE_STRUPR,HAVE_FILELENGTH"
MinimalRebuild="true"
RuntimeLibrary="1"
EnableFunctionLevelLinking="true"
ForceConformanceInForLoopScope="true"
PrecompiledHeaderFile=""
AssemblerOutput="0"
AssemblerListingLocation=".\Debug/"
ObjectFile=".\Debug/"
ProgramDataBaseFileName=".\Debug/"
WarningLevel="3"
SuppressStartupBanner="true"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="4"
CompileAs="0"
DisableSpecificWarnings="4996"
ForcedIncludeFiles=""
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG"
Culture="1033"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalOptions="/MACHINE:I386"
AdditionalDependencies="gdi32.lib user32.lib comctl32.lib shell32.lib advapi32.lib comdlg32.lib ole32.lib dxguid.lib dsound.lib dinput8.lib strmiids.lib wsock32.lib winmm.lib fmodex_vc.lib setupapi.lib ws2_32.lib"
OutputFile="../zdoomd.exe"
LinkIncremental="2"
SuppressStartupBanner="true"
AdditionalLibraryDirectories=""
IgnoreDefaultLibraryNames="libcmt;msvcrtd;msvcrt"
GenerateDebugInformation="true"
ProgramDatabaseFile=".\Debug/zdoomd.pdb"
SubSystem="2"
StackReserveSize="0"
TerminalServerAware="2"
SetChecksum="false"
TargetMachine="0"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration <Configuration
Name="Debug|x64" Name="Debug|x64"
OutputDirectory="$(PlatformName)\$(ConfigurationName)" OutputDirectory="$(PlatformName)\$(ConfigurationName)"
@ -933,16 +933,6 @@
Outputs="&quot;src/$(InputName).h&quot;" Outputs="&quot;src/$(InputName).h&quot;"
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Creating $(InputName).h from src/$(InputFileName)"
CommandLine="tools\re2c\re2c --no-generation-date -s -o &quot;src/$(InputName).h&quot; &quot;src/$(InputFileName)&quot;&#x0D;&#x0A;"
Outputs="&quot;src/$(InputName).h&quot;"
/>
</FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|x64" Name="Release|x64"
> >
@ -953,6 +943,16 @@
Outputs="&quot;src/$(InputName).h&quot;" Outputs="&quot;src/$(InputName).h&quot;"
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Creating $(InputName).h from src/$(InputFileName)"
CommandLine="tools\re2c\re2c --no-generation-date -s -o &quot;src/$(InputName).h&quot; &quot;src/$(InputFileName)&quot;&#x0D;&#x0A;"
Outputs="&quot;src/$(InputName).h&quot;"
/>
</FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|x64" Name="Debug|x64"
> >
@ -1529,6 +1529,10 @@
RelativePath=".\src\wi_stuff.h" RelativePath=".\src\wi_stuff.h"
> >
</File> </File>
<File
RelativePath=".\src\x86.h"
>
</File>
<File <File
RelativePath=".\src\zstring.h" RelativePath=".\src\zstring.h"
> >
@ -1554,16 +1558,6 @@
Outputs="$(IntDir)\$(InputName).obj" Outputs="$(IntDir)\$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Assembling $(InputPath)..."
CommandLine="nasm -g -o &quot;$(IntDir)\$(InputName).obj&quot; -f win32 &quot;$(InputPath)&quot; -isrc/&#x0D;&#x0A;$(OutDir)\fixrtext &quot;$(IntDir)\$(InputName).obj&quot;&#x0D;&#x0A;"
Outputs="$(IntDir)\$(InputName).obj"
/>
</FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|x64" Name="Release|x64"
ExcludedFromBuild="true" ExcludedFromBuild="true"
@ -1575,6 +1569,16 @@
Outputs="$(IntDir)/$(InputName).obj" Outputs="$(IntDir)/$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Assembling $(InputPath)..."
CommandLine="nasm -g -o &quot;$(IntDir)\$(InputName).obj&quot; -f win32 &quot;$(InputPath)&quot; -isrc/&#x0D;&#x0A;$(OutDir)\fixrtext &quot;$(IntDir)\$(InputName).obj&quot;&#x0D;&#x0A;"
Outputs="$(IntDir)\$(InputName).obj"
/>
</FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|x64" Name="Debug|x64"
ExcludedFromBuild="true" ExcludedFromBuild="true"
@ -1600,16 +1604,6 @@
Outputs="$(IntDir)\$(InputName).obj" Outputs="$(IntDir)\$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Assembling $(InputPath)..."
CommandLine="nasm -g -o &quot;$(IntDir)\$(InputName).obj&quot; -f win32 &quot;$(InputPath)&quot; -isrc/&#x0D;&#x0A;$(OutDir)\fixrtext &quot;$(IntDir)\$(InputName).obj&quot;&#x0D;&#x0A;"
Outputs="$(IntDir)\$(InputName).obj"
/>
</FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|x64" Name="Release|x64"
ExcludedFromBuild="true" ExcludedFromBuild="true"
@ -1621,6 +1615,16 @@
Outputs="$(IntDir)/$(InputName).obj" Outputs="$(IntDir)/$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Assembling $(InputPath)..."
CommandLine="nasm -g -o &quot;$(IntDir)\$(InputName).obj&quot; -f win32 &quot;$(InputPath)&quot; -isrc/&#x0D;&#x0A;$(OutDir)\fixrtext &quot;$(IntDir)\$(InputName).obj&quot;&#x0D;&#x0A;"
Outputs="$(IntDir)\$(InputName).obj"
/>
</FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|x64" Name="Debug|x64"
ExcludedFromBuild="true" ExcludedFromBuild="true"
@ -1646,16 +1650,6 @@
Outputs="$(IntDir)\$(InputName).obj" Outputs="$(IntDir)\$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Assembling $(InputPath)..."
CommandLine="nasm -g -o &quot;$(IntDir)\$(InputName).obj&quot; -f win32 &quot;$(InputPath)&quot; -isrc/&#x0D;&#x0A;$(OutDir)\fixrtext &quot;$(IntDir)\$(InputName).obj&quot;&#x0D;&#x0A;"
Outputs="$(IntDir)\$(InputName).obj"
/>
</FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|x64" Name="Release|x64"
ExcludedFromBuild="true" ExcludedFromBuild="true"
@ -1667,6 +1661,16 @@
Outputs="$(IntDir)/$(InputName).obj" Outputs="$(IntDir)/$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Assembling $(InputPath)..."
CommandLine="nasm -g -o &quot;$(IntDir)\$(InputName).obj&quot; -f win32 &quot;$(InputPath)&quot; -isrc/&#x0D;&#x0A;$(OutDir)\fixrtext &quot;$(IntDir)\$(InputName).obj&quot;&#x0D;&#x0A;"
Outputs="$(IntDir)\$(InputName).obj"
/>
</FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|x64" Name="Debug|x64"
ExcludedFromBuild="true" ExcludedFromBuild="true"
@ -1692,16 +1696,6 @@
Outputs="$(IntDir)\$(InputName).obj" Outputs="$(IntDir)\$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Assembling $(InputPath)..."
CommandLine="nasm -g -o &quot;$(IntDir)\$(InputName).obj&quot; -f win32 &quot;$(InputPath)&quot; -isrc/&#x0D;&#x0A;$(OutDir)\fixrtext &quot;$(IntDir)\$(InputName).obj&quot;&#x0D;&#x0A;"
Outputs="$(IntDir)\$(InputName).obj"
/>
</FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|x64" Name="Release|x64"
ExcludedFromBuild="true" ExcludedFromBuild="true"
@ -1713,6 +1707,16 @@
Outputs="$(IntDir)/$(InputName).obj" Outputs="$(IntDir)/$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Assembling $(InputPath)..."
CommandLine="nasm -g -o &quot;$(IntDir)\$(InputName).obj&quot; -f win32 &quot;$(InputPath)&quot; -isrc/&#x0D;&#x0A;$(OutDir)\fixrtext &quot;$(IntDir)\$(InputName).obj&quot;&#x0D;&#x0A;"
Outputs="$(IntDir)\$(InputName).obj"
/>
</FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|x64" Name="Debug|x64"
ExcludedFromBuild="true" ExcludedFromBuild="true"
@ -1738,16 +1742,6 @@
Outputs="$(IntDir)\$(InputName).obj" Outputs="$(IntDir)\$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Assembling $(InputPath)..."
CommandLine="nasm -g -o &quot;$(IntDir)\$(InputName).obj&quot; -f win32 &quot;$(InputPath)&quot; -isrc/&#x0D;&#x0A;$(OutDir)\fixrtext &quot;$(IntDir)\$(InputName).obj&quot;&#x0D;&#x0A;"
Outputs="$(IntDir)\$(InputName).obj"
/>
</FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|x64" Name="Release|x64"
ExcludedFromBuild="true" ExcludedFromBuild="true"
@ -1759,6 +1753,16 @@
Outputs="$(IntDir)/$(InputName).obj" Outputs="$(IntDir)/$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Assembling $(InputPath)..."
CommandLine="nasm -g -o &quot;$(IntDir)\$(InputName).obj&quot; -f win32 &quot;$(InputPath)&quot; -isrc/&#x0D;&#x0A;$(OutDir)\fixrtext &quot;$(IntDir)\$(InputName).obj&quot;&#x0D;&#x0A;"
Outputs="$(IntDir)\$(InputName).obj"
/>
</FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|x64" Name="Debug|x64"
ExcludedFromBuild="true" ExcludedFromBuild="true"
@ -1786,14 +1790,6 @@
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration
Name="Debug|Win32"
ExcludedFromBuild="true"
>
<Tool
Name="VCCustomBuildTool"
/>
</FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|x64" Name="Release|x64"
> >
@ -1804,6 +1800,14 @@
Outputs="$(IntDir)/$(InputName).obj" Outputs="$(IntDir)/$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration
Name="Debug|Win32"
ExcludedFromBuild="true"
>
<Tool
Name="VCCustomBuildTool"
/>
</FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|x64" Name="Debug|x64"
> >
@ -1969,6 +1973,14 @@
Outputs="$(IntDir)\$(InputName).obj" Outputs="$(IntDir)\$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration
Name="Release|x64"
ExcludedFromBuild="true"
>
<Tool
Name="VCCustomBuildTool"
/>
</FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|Win32" Name="Debug|Win32"
> >
@ -1979,14 +1991,6 @@
Outputs="$(IntDir)\$(InputName).obj" Outputs="$(IntDir)\$(InputName).obj"
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration
Name="Release|x64"
ExcludedFromBuild="true"
>
<Tool
Name="VCCustomBuildTool"
/>
</FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|x64" Name="Debug|x64"
ExcludedFromBuild="true" ExcludedFromBuild="true"
@ -2856,6 +2860,14 @@
AdditionalIncludeDirectories="src\win32;$(NoInherit)" AdditionalIncludeDirectories="src\win32;$(NoInherit)"
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration
Name="Release|x64"
>
<Tool
Name="VCResourceCompilerTool"
AdditionalIncludeDirectories="src\win32;$(NoInherit)"
/>
</FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|Win32" Name="Debug|Win32"
> >
@ -2865,14 +2877,6 @@
AdditionalIncludeDirectories="src\win32;$(NoInherit)" AdditionalIncludeDirectories="src\win32;$(NoInherit)"
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration
Name="Release|x64"
>
<Tool
Name="VCResourceCompilerTool"
AdditionalIncludeDirectories="src\win32;$(NoInherit)"
/>
</FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|x64" Name="Debug|x64"
> >
@ -3147,7 +3151,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|Win32" Name="Release|x64"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3155,7 +3159,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|x64" Name="Debug|Win32"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3187,7 +3191,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|Win32" Name="Release|x64"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3195,7 +3199,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|x64" Name="Debug|Win32"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3224,7 +3228,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|Win32" Name="Release|x64"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3233,7 +3237,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|x64" Name="Debug|Win32"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3263,7 +3267,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|Win32" Name="Release|x64"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3271,7 +3275,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|x64" Name="Debug|Win32"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3300,7 +3304,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|Win32" Name="Release|x64"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3309,7 +3313,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|x64" Name="Debug|Win32"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3340,7 +3344,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|Win32" Name="Release|x64"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3349,7 +3353,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|x64" Name="Debug|Win32"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3379,7 +3383,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|Win32" Name="Release|x64"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3387,7 +3391,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|x64" Name="Debug|Win32"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3416,7 +3420,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|Win32" Name="Release|x64"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3425,7 +3429,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|x64" Name="Debug|Win32"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3456,7 +3460,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|Win32" Name="Release|x64"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3465,7 +3469,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|x64" Name="Debug|Win32"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3496,7 +3500,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|Win32" Name="Release|x64"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3505,7 +3509,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|x64" Name="Debug|Win32"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3535,7 +3539,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|Win32" Name="Release|x64"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3543,7 +3547,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|x64" Name="Debug|Win32"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3571,7 +3575,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|Win32" Name="Release|x64"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3579,7 +3583,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|x64" Name="Debug|Win32"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3607,7 +3611,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|Win32" Name="Release|x64"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3615,7 +3619,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|x64" Name="Debug|Win32"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3643,7 +3647,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|Win32" Name="Release|x64"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3651,7 +3655,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|x64" Name="Debug|Win32"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3681,7 +3685,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|Win32" Name="Release|x64"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3691,7 +3695,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|x64" Name="Debug|Win32"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3735,7 +3739,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|Win32" Name="Release|x64"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3743,7 +3747,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|x64" Name="Debug|Win32"
ExcludedFromBuild="true" ExcludedFromBuild="true"
> >
<Tool <Tool
@ -3777,7 +3781,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Debug|Win32" Name="Release|x64"
> >
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
@ -3787,7 +3791,7 @@
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
Name="Release|x64" Name="Debug|Win32"
> >
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"