Using vector extensions SSE to improve performance.
The idea is, to have some general performance improvements here, and do some special optimizations later, in part of the code, where these functions are excessive used.
Details
- Reviewers
- None
Use profiler2, to compare the old implementation to the new one. The more units, the better the accuracy of the comparison, I think.
Diff Detail
- Repository
- rP 0 A.D. Public Repository
- Lint
Lint Skipped - Unit
Unit Tests Skipped - Build Status
Buildable 11958 Build 22437: Vulcan Build Jenkins Build 22436: Vulcan Build (Windows) Jenkins
Event Timeline
Build failure - The Moirai have given mortals hearts that can endure.
Link to build: https://jenkins.wildfiregames.com/job/docker-differential/2331/display/redirect
Build failure - The Moirai have given mortals hearts that can endure.
Link to build: https://jenkins.wildfiregames.com/job/vs2015-differential/1800/display/redirect
The current version is not profiled yet, so I do not know, which of these functions will improve performance.
"-" and "+" seems to have grate impact to the game, when many units are in the field of view. Until yet I didn't get it profiled, when many units are used.
Build failure - The Moirai have given mortals hearts that can endure.
Link to build: https://jenkins.wildfiregames.com/job/docker-differential/2417/display/redirect
Build failure - The Moirai have given mortals hearts that can endure.
Link to build: https://jenkins.wildfiregames.com/job/vs2015-differential/1886/display/redirect
Build failure - The Moirai have given mortals hearts that can endure.
Link to build: https://jenkins.wildfiregames.com/job/vs2015-differential/1887/display/redirect
Using intrinsic functions highly depends on a context. I'd like to see a comparison test for each method of CVector3D (without the game, one might just use tests).
Build failure - The Moirai have given mortals hearts that can endure.
Link to build: https://jenkins.wildfiregames.com/job/docker-differential/2418/display/redirect