Add Windows on ARM64 with MSVC support for Tracy Profiler

Introduce Windows ARM64(native) support across ToyPathTracer,
profiler, and server code paths when building with MSVC(_M_ARM64).

Key changes:
- MathSimd.h/Maths.h:
   - Fix NEON movemask constants for MSVC/ARM64 by loading from a uint32_t[]
    via vld1q_u32() and using vdupq_n_u32() for highbit.
- enkiTS/TaskScheduler.cpp:
   - Provide Pause() implementation on _M_ARM64 using __yield().
- profiler/winmain.cpp:
   -  AVX feature checks to x86/x64 only and skip on ARM64.
- server/TracyPopcnt.hpp:
   - Implement TracyCountBits using ARM NEON intrinsics.
   - Implement TracyLzcnt using _BitScanReverse64().
This commit is contained in:
Naveen Regulla
2026-02-17 16:42:50 +05:30
parent 75320a3353
commit 9879a31fc5
5 changed files with 39 additions and 4 deletions

View File

@@ -14,6 +14,7 @@ int main( int argc, char** argv );
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmd, int nCmd )
{
#if defined(_M_IX86) || defined(_M_X64)
{
uint32_t regs[4];
__cpuidex( (int*)regs, 0, 0 );
@@ -42,7 +43,7 @@ int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmd,
return 0;
}
}
#endif // x86/x64: AVX feature checks
return main( __argc, __argv );
}
#endif