Jonathan G Rennison
d0daffe312
Linkgraph overlay: Ensure line/dot draw order is same in incremental mode
...
Ensure that sort order is maintained
2018-05-29 19:07:22 +01:00
Jonathan G Rennison
0d0d55f81d
Scrolling/perf improvements to link graph overlays on viewport and smallmap
2018-05-26 09:15:22 +01:00
Jonathan G Rennison
56be293107
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/blitter/32bpp_anim.cpp
# src/blitter/32bpp_anim.hpp
# src/blitter/32bpp_anim_sse2.cpp
# src/blitter/32bpp_base.cpp
# src/blitter/32bpp_base.hpp
# src/ground_vehicle.cpp
# src/linkgraph/linkgraph_gui.h
# src/main_gui.cpp
# src/newgrf_house.cpp
# src/newgrf_house.h
# src/town_cmd.cpp
# src/vehicle_base.h
# src/viewport_gui.cppp
2018-05-25 18:29:17 +01:00
PeterN
4cebebcf68
Change: Add CargoTypes type for cargo masks. ( #6790 )
2018-05-21 22:08:39 +01:00
Jonathan G Rennison
560a049316
Linkgraph GUI: Replace line visibility detection algorithm
...
Previous algorithm had excessive false-positive rate
2018-01-18 20:59:14 +00:00
Jonathan G Rennison
29470dba23
LinkGraph: Increase caching of link graph lines/point details
2018-01-18 20:59:14 +00:00
Jonathan G Rennison
cd68e9fac7
Linkgraph: Do not pre-fill annos set at start of MCF Dijkstra
2018-01-15 22:40:54 +00:00
Jonathan G Rennison
4a420ef864
Linkgraph: Use cached value in capacity annotation comparison
2018-01-15 22:40:54 +00:00
Jonathan G Rennison
3f83546dfc
Linkgraph: Fix numeric overflow in cost estimate/duration multiplier.
...
Bump cost estimate type to 64 bits
2017-10-05 18:27:22 +01:00
Jonathan G Rennison
52dadc9252
Merge branch 'master' into jgrpp
2017-07-27 18:41:43 +01:00
frosch
3eae9aba79
(svn r27887) -Cleanup: Remove unused/unimplemented prototype (adf88)
2017-07-11 19:34:21 +00:00
frosch
1e50edd12c
(svn r27887) -Cleanup: Remove unused/unimplemented prototype (adf88)
2017-07-11 19:34:21 +00:00
Jonathan G Rennison
7e89b9789f
Linkgraph: Fix divide by 0 error when total linkgraph cost estimate <= 1.
2017-02-13 21:29:58 +00:00
Jonathan G Rennison
117b56caeb
Linkgraph: Replace a std::list with a std::vector.
2017-02-08 22:08:39 +00:00
Jonathan G Rennison
c86a027e88
Linkgraph: Use an arena allocator for path objects.
...
Fixes leaks when job is aborted early.
2017-02-08 22:03:59 +00:00
Jonathan G Rennison
3f2c561867
Linkgraph: Add support for aborting MCF passes early.
2017-02-08 22:00:35 +00:00
Jonathan G Rennison
2080daab8d
Linkgraph: Refactoring to avoid manual deletes.
2017-02-08 21:59:41 +00:00
Jonathan G Rennison
28211c21fc
Linkgraph: Fix a memory leak when aborting job early.
2017-02-08 02:01:27 +00:00
Jonathan G Rennison
9d5f34fea6
Replace various uses of std::set/map with btree containers.
2017-02-08 00:18:09 +00:00
Jonathan G Rennison
375dbdbfe1
Linkgraph: Allow job threads to be aborted early when clearing schedule.
2016-11-26 00:33:50 +00:00
Jonathan G Rennison
d08d1cbd67
Linkgraph: Avoid attempting to merge/apply job when cleaning schedule.
...
This can cause crashes when switching savegame.
Move job merge/apply out of destructor into separate function.
2016-11-26 00:15:01 +00:00
Jonathan G Rennison
fa261207ae
Link graph GUI: Fix poor contrast in graph legend window cargo labels.
...
Select foreground colour depending on brightness of background.
2016-11-21 23:08:13 +00:00
Jonathan G Rennison
55057110a5
Linkgraph GUI: Add hover tool-tips to graph legend window.
2016-11-21 22:38:04 +00:00
Jonathan G Rennison
1cede8431f
Linkgraph: Support running multiple jobs per spawned thread.
2016-11-01 23:02:15 +00:00
Jonathan G Rennison
84e61b690a
Linkgraph: Changes to job scheduling algorithm.
...
This is to improve responsiveness of link graph updates, whilst
avoiding being blocked waiting for updates to complete.
Previously, large numbers of cheap jobs resulted in poor responsiveness
as it took a long time for jobs to cycle round.
Add 'linkgraph' debug category.
2016-11-01 23:02:15 +00:00
frosch
31f046bd9b
(svn r27670) -Add: [FS#6471] Assign descriptive names to (GNU pthread) threads. (JGR)
2016-10-30 17:29:33 +00:00
frosch
3f75b8bca2
(svn r27670) -Add: [FS#6471] Assign descriptive names to (GNU pthread) threads. (JGR)
2016-10-30 17:29:33 +00:00
Jonathan G Rennison
b8a89437a1
Enable use of atomic store/load on clang.
2016-09-08 18:40:08 +01:00
Jonathan G Rennison
9ea018abc5
Merge branch 'cargo_type_order' into jgrpp
...
# Conflicts:
# src/order_base.h
# src/order_gui.cpp
# src/order_type.h
# src/saveload/extended_ver_sl.cpp
# src/saveload/extended_ver_sl.h
# src/vehicle_base.h
2016-09-08 00:12:48 +01:00
Jonathan G Rennison
6031cca2d7
Refactor Link Refresher cargo mask handling.
...
Add some separate helper functions.
Move cargo checks out of LinkRefresher::Run.
2016-09-06 22:16:29 +01:00
Jonathan G Rennison
e90b266af1
De-duplicate cargo masking boilerplate using C++11.
2016-09-06 22:10:18 +01:00
Jonathan G Rennison
3507b51d9e
Initial LinkRefresher support for cargo-specific links.
2016-09-05 00:12:48 +01:00
Jonathan G Rennison
7b56097f50
Merge branch 'master' into jgrpp
...
# Conflicts:
# config.lib
# src/linkgraph/demands.cpp
# src/linkgraph/mcf.cpp
# src/linkgraph/refresh.cpp
# src/linkgraph/refresh.h
# src/smallmap_gui.cpp
2016-07-24 10:16:55 +01:00
fonsinchen
f769305d7d
(svn r27614) -Codechange: Use a fixed array instead of a map for link refresher cargo capacities. (JGR)
2016-07-10 12:17:00 +00:00
fonsinchen
ff96590312
(svn r27614) -Codechange: Use a fixed array instead of a map for link refresher cargo capacities. (JGR)
2016-07-10 12:17:00 +00:00
fonsinchen
022b284064
(svn r27613) -Codechange: Use a flat vector instead of a map in FlowEdgeIterator. (JGR)
2016-07-10 12:03:23 +00:00
fonsinchen
a81b7a24a6
(svn r27613) -Codechange: Use a flat vector instead of a map in FlowEdgeIterator. (JGR)
2016-07-10 12:03:23 +00:00
fonsinchen
e2426b22fa
(svn r27612) -Codechange: Replace three uses of std::list with std::queue/vector. (JGR)
2016-07-10 11:57:16 +00:00
fonsinchen
6b2eed0a70
(svn r27612) -Codechange: Replace three uses of std::list with std::queue/vector. (JGR)
2016-07-10 11:57:16 +00:00
fonsinchen
bcdae9a093
(svn r27611) -Codechange: Cache the calculated value of CapacityAnnotation
2016-07-10 11:53:43 +00:00
fonsinchen
8d5566651b
(svn r27611) -Codechange: Cache the calculated value of CapacityAnnotation
2016-07-10 11:53:43 +00:00
Jonathan G Rennison
61ff4f5d97
Limit linkgraph recalc interval to minimum of 2 ticks.
...
The interval could otherwise fall to 1 tick at very high day lengths,
and low number of days interval, with recalc not scaled by day length
enabled.
2016-01-31 12:22:03 +00:00
Jonathan G Rennison
78cf5ca682
Add setting for linkgraph times to be in non daylength scaled days.
...
Savegame format change for link graph jobs.
Change link graph scheduler to support more than one operation
per day, on _date_fract ticks other than SPAWN_JOIN_TICK.
2016-01-29 00:26:47 +00:00
Jonathan G Rennison
3896952136
Join more than one link graph job at once where possible.
...
This can occur when the link graph recalculation times are changed.
In particular, if the duration or interval are reduced, the new jobs
will be delayed until the completion of the previous long job,
and then remain backlogged thereafter as jobs are dequeued at the same
rate as they are queued.
2016-01-28 19:32:21 +00:00
Jonathan G Rennison
548ea31e83
Fix compilation on gcc before 4.7 due to use of atomic builtins.
2016-01-07 22:45:11 +00:00
Jonathan G Rennison
58b6bf16c3
Linkgraph: Enable MCF custom allocator only for GCC 4.9+
...
Earlier compilers don't use std::allocator_traits to query allocators.
2015-11-29 19:10:16 +00:00
Jonathan G Rennison
e22e1df939
Store annotation and node ID in set key, to reduce ptr derefs on sort.
...
Store the set iterator in the node, for faster erasing during forks.
Use a custom pool allocator to store set nodes contiguously.
2015-11-27 01:02:55 +00:00
Jonathan G Rennison
4534812b4f
Use a fixed array instead of a map for link refresher cargo capacities.
2015-11-26 18:59:31 +00:00
Jonathan G Rennison
0fb79a8f15
Use a flat vector instead of a map in FlowEdgeIterator.
...
This reduced the cost of Dijkstra<CapacityAnnotation> by approx. 25%,
in a test profiling.
2015-11-26 18:23:10 +00:00
Jonathan G Rennison
a3768d3a29
Label threads with a descriptive name where supported (pthreads).
2015-11-26 17:48:47 +00:00