SPECTRE attacks mitigations were added to SpiderMonkey's JIT output in
version 57. Turning these off is a very large speedup, around 10-20%
wall time (on my computer) depending on the map and the situation.
For the most part, from profiling on my machine, this is from memory
fences after JIT -> C++ calls. 0 A.D. does a lot of these.
The SPECTRE class of attack is a timing attack based on speculative
execution to leak sensitive information, and it seems extraordinarily
unlikely that something like this could be successfully mounted using 0
A.D.
Differential Revision: https://code.wildfiregames.com/D5014
This was SVN commit r27699.
Following the AI unthreading in 4df03ed2d2 / D3769, structured clones
are no longer needed to pass the gamestate around.
This is much faster, about 10-15% wall time on an AI 1v1 profile.
This also potentially reduces memory fragmentation and GC needs, as
writing clones allocated a lot of data.
Differential Revision: https://code.wildfiregames.com/D5019
This was SVN commit r27698.
This is unused and makes the function twice as slow as it needs to be.
Differential Revision: https://code.wildfiregames.com/D5015
This was SVN commit r27697.
FaceTowardsTarget is called quite often by UnitAI, and we can skip some
un-necessary messages as an optimisation.
Differential Revision: https://code.wildfiregames.com/D5005
This was SVN commit r27695.
CmpPosition::TurnStart checks whether the territory changed underneath
each entityevery turn. The only user of this is TerritoryDecay
(structures, for the most part). It is rather inefficient to have this
done for all entities.
The simplest solution is to listen to position-changed messages in
TerritoryDecay instead. This should hardly ever happen in vanilla 0
A.D., except in Atlas, so it's basically free.
This sort of reverts 19965ce37a (original implementation) and
c44b48bd59.
Accepted By: Freagarach (concept only)
Differential Revision: https://code.wildfiregames.com/D5009
This was SVN commit r27673.
gcc-13 less often includes cstdint so one might need to include it
manually if needed.
The headers already included in Message.h are included within namespace
AtlasMessage which didn't break by chance, move them out and add
cstdint.
Patch by: @sera
Reviewed by: @phosit
Fixes: #6800
Differential Revision: https://code.wildfiregames.com/D4997
This was SVN commit r27644.
- Fix Jenkins warnings about leaked credentials.
- Fix one script not loading utf-8 on windows.
- Fix command line arguments not working when inlined on Linux.
This was SVN commit r27621.
Print a warning in the debug output for now, as the logger is not
available at this point.
Tested By: Langbart
Differential Revision: https://code.wildfiregames.com/D4743
This was SVN commit r27612.
This fixes packet loss issues on some VPN solutions.
Patch By: sera
Differential Revision: https://code.wildfiregames.com/D4967
This was SVN commit r27599.
Use tokens for required technologies, allowing `-tech` and easier
replacements.
Fixes requiring `replace=""` when replacing techs.
Also a minor fix in the TemplateParser.js for upgrade requirements.
Refs. 9bb9ff8b16.
Differential revision: https://code.wildfiregames.com/D4912
Comments by: @Stan
This was SVN commit r27505.