Changes between Initial Version and Version 1 of Ticket #1923, comment 8


Ignore:
Timestamp:
May 11, 2013, 10:19:52 AM (11 years ago)
Author:
tuan kuranes

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #1923, comment 8

    initial v1  
    11Here's all the patches:
    22
    3 - pathfind: huge patch, but very huge perf boost, mostly cycles saving reusing results, and using more appropriate structures, minimizing allocation and object copies. (20% to 400% perf, depending on path requests)
     3 * pathfind.patch: huge patch, but very huge perf boost, mostly cycles saving reusing results, and using more appropriate structures, minimizing allocation and object copies. (20% to 400% perf, depending on path requests)
    44
    5 - size_empty: using empty() instead of size(), because size does iterate and check content size. (0.1 perf...)
     5 * size_empty.patch: using empty() instead of size(), because size does iterate and check content size. (0.1 perf...)
    66
    7 - skinning: specific RVO not kicking code for CPU model skinning, avoiding lots of temp objects,and loop unrolling as 4 bones is a static number. (3-7%perf)
     7 * skinning.patch: specific RVO not kicking code for CPU model skinning, avoiding lots of temp objects,and loop unrolling as 4 bones is a static number. (3-7%perf)
    88
    9 - const_only: const param& , const param, const method, const simple variable (making compiler avoiding object copies whenever possible) some rvo no kicks in there as well.(5-10%perf)
     9 * const_only.2.patch: const param& , const param, const method, const simple variable (making compiler avoiding object copies whenever possible) some rvo no kicks in there as well.(5-10%perf)
    1010
    11 - minimap: add VBO support for unit drawing when supported, huge perf boost per frame, as opengl driver doesn't have to sync anymore. (20%perf with a good gpu, invisible with slow gpu)
     11 * minimap.patch: add VBO support for unit drawing when supported, huge perf boost per frame, as opengl driver doesn't have to sync anymore. (20%perf with a good gpu, invisible with slow gpu)
    1212
    1313-branch: remove branches whenever possible in loops: here CLOSTexture::GenerateBitmap getting huge boost, removing lots of code and adding cache prefetching benefits with the single memset at start (5%perf)
    1414
    15 - all in one patch updated with all changes in perf.patch
     15 * all in one patch updated with all changes in perf.patch
    1616
    17 
    18 Perf is in the main thread only, relative to 100%. Here it makes 0ad very playable on all non naval maps, including huge maps.
    19 The real perf stopper now here is a IA economy script "drop sites searching" that kicks in regularly and gives perfs stuttering.
    20 Huge pathfind request, (200 units moves at once), still goes up, but gives "reasonable stuttering".
     17Perf is in the main thread only, relative to 100%. Here it makes 0ad very playable on all non naval maps, including huge maps.  The real perf stopper now here is a IA economy script "drop sites searching" that kicks in regularly and gives perfs stuttering. Huge pathfind request, (200 units moves at once), still goes up, but gives "reasonable stuttering".
    2118
    2219Tested on linux (old cpu), and windows x64 with 32bits exe (good cpu).