mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-10-01 14:58:14 +00:00
Don't default to building x64 on a machine that isn't
The MSBuild examples passed /p:Platform=x64 and the run lines pointed at Windows/x64/..., so following them on an ARM64 machine produced an x64 build - which then runs anyway under emulation, so nothing looks wrong. It is slower than the native build, it isn't the code ARM users get, and a benchmark taken from it measures the emulator: the colour conversion benchmark this was noticed on reads 200 MPix/s emulated against 300 native. The examples now say <platform> rather than either value, so there is no default to follow and the machine has to be looked up. Also note that $PROCESSOR_ARCHITECTURE describes the shell, not the host, and says AMD64 from an emulated shell. test.py searched only Windows\x64 for the headless binary, so on Windows-on-ARM it would silently test an emulated build; it now looks for the native one first. Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
This commit is contained in:
1 parent
a6996b2c3f
commit
cf1d513c9e
3 files changed
+27
-5
No files matched your search
+10
-2
@@ -16,16 +16,24 @@ An agent can drive the VS solution non-interactively with `MSBuild.exe` instead
|
||||
```powershell
|
||||
$installPath = & "C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" -latest -property installationPath
|
||||
$msbuild = "$installPath\MSBuild\Current\Bin\MSBuild.exe"
|
||||
& $msbuild "Windows\PPSSPP.sln" /t:UnitTest /p:Configuration=Debug /p:Platform=x64 /m
|
||||
& $msbuild "Windows\PPSSPP.sln" /t:UnitTest /p:Configuration=Debug /p:Platform=<platform> /m
|
||||
```
|
||||
|
||||
(swap `/t:UnitTest` for `/t:PPSSPPWindows` or another project name as needed; drop it entirely to build the whole solution).
|
||||
|
||||
`<platform>` is `ARM64` or `x64` - whichever the machine actually is, so look it up rather than
|
||||
picking a default. The output directory follows it (`Windows\<platform>\<configuration>\`), which
|
||||
makes building one and running the other an easy mistake. It is easiest to make on Windows-on-ARM,
|
||||
where an x64 build runs anyway under emulation: everything appears to work, but it is slower than
|
||||
the native build and any performance measurement from it describes the emulator rather than the
|
||||
code. `platform.machine()` in Python reports the host; `$PROCESSOR_ARCHITECTURE` reports the shell,
|
||||
which is `AMD64` in an emulated shell even on an ARM64 machine.
|
||||
|
||||
In addition to the pspautotests runner (test.py), there is a separate binary with C++ unit tests
|
||||
in the /unittest subdirectory. After substantial changes (at the end of a chunk of work, not
|
||||
necessarily after every edit), run these too:
|
||||
|
||||
- Windows: build the `UnitTest` project (unittest/UnitTests.vcxproj), then run `Windows/x64/Debug/UnitTest.exe all`
|
||||
- Windows: build the `UnitTest` project (unittest/UnitTests.vcxproj), then run `Windows/<platform>/Debug/UnitTest.exe all` (`<platform>` being `ARM64` or `x64`, whichever you built)
|
||||
- Linux/Mac: configure with `-DUNITTEST=ON`, then run `build/PPSSPPUnitTest all`
|
||||
|
||||
This runs all tests in `availableTests` in unittest/UnitTest.cpp. You can run one or more
|
||||
|
||||
Reference in new issue
Block a user