Affinity
Any idea why the engine is so sensitive to affinity? (I haven't seen a problem on my E8500, though.) It's my understanding that the engine is single-threaded, so there shouldn't be any issues with improper locking between threads that presume a single core. Is this a problem with threads being spawned behind the scenes by Windows APIs?
Comments
I'm sure Thyth will have a much more enlightened answer, if/when he gets to this post.
So the fact that it's working for me is perhaps credit to the game sticking to one core strongly in spite of no explicit affinity setting. Perhaps Vista 64 with lots of memory is good at keeping the thread on the same core across task switches.
Jitter is a result of a programming defect in Tribes 2, where it used the RDTSC instruction to count CPU ticks as a form of high precision timer. Problem is... each CPU and core on a system has its own tick counter, and they aren't designed to be kept in sync (or to be used as a timer). If your cores do not have the same tick count, as the game is scheduled by the OS between the separate cores, the game thinks it is moving forward and backwards in time.
Is there a Windows API that will return a comparable high-resolution time value? I'm looking for something to measure communications protocol times to profile/debug communications timing issues.
http://msdn.microsoft.com/en-us/library/bb173458(VS.85).aspx
But I know I've seen raw assembly language in the Torque engine reading the RDTSC.