45°38'N-13°47'E
Deity
That is the pipeline multithreading Koshling added. Each pipeline work item gets its own rand seed so it does not matter if the order between different work items is swapped.
The names of the pipeline work items in this case are Cahokia and Poverty Point. If a log entry is not from a pipeline, you get Global at that point.
All log entries that have the same name at that point have to be in fixed order but different names can be swapped without problem (and you will see that frequently).
Sorry AIAndy but I'm not sure I get it: are you saying that this was not an OOS, so maybe the OOS root was further down in differences found in the log? Is it correct that I see this kind of difference in the logs and the OOS is somewhere else?
One suspicious thing I found was that AI_TechValueCached, which is on the way to "AI Research" can be called both sync and async, given by the bool bAsync that is passed to it. But it caches values in the same cache in both cases. So if for the same player that function is called in both sync and async context, it will likely go OOS.
So I would highly suggest changing
toCode:{ MEMORY_TRACK_EXEMPT() m_cachedTechValues[eTech] = iValue; }
Code:if (!bAsync) { MEMORY_TRACK_EXEMPT() m_cachedTechValues[eTech] = iValue; }
Great, I can try this one;
