diff options
author | Antony Riakiotakis <kalast@gmail.com> | 2015-05-28 18:01:09 +0300 |
---|---|---|
committer | Antony Riakiotakis <kalast@gmail.com> | 2015-05-28 18:01:09 +0300 |
commit | 8dc6fabc34a918ab3a82f93b56d539c4694a8c21 (patch) | |
tree | 77381520b5b0fc85dd2690c01789d225a9984707 /source/gameengine | |
parent | eb476c28163986a3158632bcc5f8579646f8607a (diff) |
Optimize render part commiting to render queue to mitigate delay in
T44869.
There are a couple of issues here:
* Code repeatedly calculated center of ready rendered parts even though
they would not change while the operation was done.
* Code would calculate distance of tiles from center multiple times
* Code would traverse all items, even the ones already sorted
* Traversal used linked lists which is quite slow.
Mitigated these by doing one pass for the center, a second to calculate
distances and a qsort at the end.
Should result in O (n * (log n + 2)) instead of O (n * (n * 2))
complexity, plus the number of repeated operations is much less as well.
Diffstat (limited to 'source/gameengine')
0 files changed, 0 insertions, 0 deletions