Dustin Carlino
3583d068a6
Fix a bug introduced in e3b9c42506
on the proposal saver, and allow blocking-the-box on another Ballard intersection
2020-11-11 13:20:56 -08:00
Dustin Carlino
e5ff76e00c
Working on gridlock in the Ballard map. Allow blocking-the-box near the
...
famous Green Lake intersection, and add a little debug tool to see
current queue reservation length.
2020-11-11 12:43:28 -08:00
Dustin Carlino
07ac288e72
Refactor: rename Pt2D::from_gps to just gps.to_pt(bounds)
2020-11-10 12:00:43 -08:00
Dustin Carlino
e15efa9002
Organize raw maps by city. With this, data/input/ is totally namespaced by city! Nothing prevents us from having a map named "downtown" in multiple cities now. #326
2020-11-05 14:58:28 -08:00
Dustin Carlino
cda586dfc9
Cleanup by moving some methods to belong to MapName. #326
2020-11-05 14:18:13 -08:00
Dustin Carlino
4f2cda8d53
Reorganize data/system/ files by city! The only interesting change is
...
abstutil::path_all_maps becoming abstutil::list_all_maps. #326
2020-11-05 14:05:48 -08:00
Dustin Carlino
67530bec07
Future-proof file organization by changing map_name from a string to a
...
struct. Whatever choices we make next about naming cities hierarchially
or not can be managed in just one place. #326
This is a pretty huge change, but the compiler gives reasonable
confidence it's correct. More bugs are likely to crop up in the next
step, when filenames start being namespaced by the city too.
2020-11-04 17:26:32 -08:00
Dustin Carlino
3ed7e73aa8
Use a u64 RNG seed, not a u8
2020-10-29 09:25:07 -07:00
Dustin Carlino
3b838c1225
Finish formatting distance/duration/speed units nicely. And remove the
...
number of lanes from trip info; it's misleading and not useful. #331
2020-10-28 11:33:48 -07:00
Dustin Carlino
9dbb156058
Skip wakeup_waiting while we're handling live map edits. Based on the
...
order of vehicle deletion, we try to ask about stop sign and traffic
signal movements that may be deleted and would be irrelevant anyway if a
different deletion order happened. #312
We should really defer wakeup_waiting until after all cleanup is done,
but for now, willing to risk some stuckness at a stop sign...
2020-10-23 12:15:51 -07:00
Dustin Carlino
3db8fe6669
Also need to clean up vehicles that're laggy heads on live-edited parts
...
of the map. #312
2020-10-23 11:58:43 -07:00
Dustin Carlino
781604907c
While deleting cars for live edits, don't opportunistically lane-change for woen-up followers. They're likely about to be deleted, too. #312
2020-10-23 11:38:21 -07:00
Dustin Carlino
5973da0717
Handle bike trips that wind up with no actual biking portion due to live
...
edits. #312
... And with this, traffic seitan makes it through an entire day at
montlake! Next up, lakeslice I guess.
2020-10-22 21:39:54 -07:00
Dustin Carlino
773176f321
Handle live edits affecting multiple cars at one stop sign, and cars
...
turning to/from an edited lane. #312
2020-10-22 21:04:12 -07:00
Dustin Carlino
50c9c3236d
Deal with a race condition. #312
...
1) A car tries to spawn, but fails because there's something in the way
2) The player makes live edits
3) The retry occurs, but the path has become invalid due to edits
Need to make the detection of this more efficient later.
2020-10-22 19:53:49 -07:00
Dustin Carlino
058103b84f
Cars in the process of parking were being double-counted for deletion in
...
live edits! #312
2020-10-22 14:28:16 -07:00
Dustin Carlino
22ae06c3a4
Remove the --pathfinding_upfront option. #312 and #258
...
Originally, all trips in the entire scenario had their paths calculated
at the beginning of a simulation. The sum time is faster than
calculating them individually, because we could use multiple threads.
But a while ago, this was disabled by default to improve the startup
latency. Especially if a player isn't making it through an entire day
anyway, calculating all of the paths upfront is a waste and slows down
their initial experience.
Now I'm hitting all sorts of bugs with live map edits, because the map
change between initial planning and when a trip starts. Previously, the
PathRequest was calculated up-front and resolved when a trip starts. But
even this PathRequest can become stale. So now always calculate it when
a trip actually starts, looking at the current map. To do this sanely,
totally rip out support for --pathfinding_upfront.
If we really want it later for performance, we could add it back in, and
be very careful about detecting stale PathRequests and recomputing. But
for now, there's no use case for this, so it'd needlessly complicate the
code.
2020-10-22 13:47:03 -07:00
Dustin Carlino
cd62ad26d1
Lazily fix up TripLeg when the exact starting position for somebody
...
biking changes due to live map edits. #312
2020-10-22 12:47:41 -07:00
Dustin Carlino
83c1c09936
Notify the player how many trips got oofed after live map edits. #312
2020-10-22 11:58:16 -07:00
Dustin Carlino
8e6aa08d59
Breakdown agent counts much more in the tooltips. #331
2020-10-21 14:26:59 -07:00
Dustin Carlino
3d1ca3af9e
Handle live map edits that rip away parking while a car is actively parking in it. #312
2020-10-21 13:00:49 -07:00
Dustin Carlino
adcd0f65fe
Clean up some of the trips state when abruptly deleting agents. #312
2020-10-21 12:32:14 -07:00
Dustin Carlino
3c81480550
Make sure DrivingSimState has the correct queues after live map edits. #312
2020-10-21 12:00:56 -07:00
Dustin Carlino
011ed8c7cf
Handle agents deleted mid-turn. #312
2020-10-21 11:17:27 -07:00
Dustin Carlino
a579cb4f74
Add a sanity check to catch live map edit bugs faster. Deleted turns
...
aren't getting cleaned up properly.
Also fix broken headless build, woops.
2020-10-21 10:23:56 -07:00
Dustin Carlino
e9f9d3884b
Simplify the traffic seitan tool's logging and make it easier to find
...
the last savestate and edits of a crash.
2020-10-21 09:59:17 -07:00
Dustin Carlino
4760d6b2cf
Fix one bug with live edits, found using traffic seitan. Agents may be
...
deleted in the middle of a turn.
2020-10-21 09:40:45 -07:00
Dustin Carlino
8a1525ddfa
Lift parsing of --scenario_modifiers to a more common place, so it can be done in run_scenario too. #368
2020-10-21 08:35:38 -07:00
Dustin Carlino
ebc632d9f8
Add a flag to skip sim analytics, to work even faster on large scenarios. #368
...
On the downtown benchmark, now we drop from 96s to 88s. Since we don't
need to collect analytics to debug gridlock on this map, another huge
win!
2020-10-20 16:38:28 -07:00
Dustin Carlino
45e6a79e7d
Use a HashMap to store driving queues. Modest speedup on the downtown
...
benchmark from ~101s to ~96s. #368
2020-10-20 16:23:18 -07:00
Dustin Carlino
36c1ce02ac
Fix how scenario modifiers cancel trips, from
...
c435d3fce2
. If we cancel one trip, have to
cancel all others after that.
2020-10-20 15:39:27 -07:00
Dustin Carlino
d8910ad04f
Build a quadtree of unzoomed agents while drawing, to later speedup mouseover. This seems to make performance fine in debug mode, so get rid of the flag guarding of this feature! [rebuild]
2020-10-20 11:38:38 -07:00
Dustin Carlino
262c48721b
Track some very basic stats on how many events we're processing. #368
...
Didn't run the benchmarks yet, but hopefully this should't slow things
down.
2020-10-19 19:12:19 -05:00
Dustin Carlino
c435d3fce2
Consolidate two scenario modifiers, allowing all walking trips to be cancelled, for #368
2020-10-19 18:03:17 -05:00
Dustin Carlino
87d233299a
Use a HashMap instead of a BTreeMap in Scheduler's internals. Doesn't
...
affect determistic simulation, but yields a crazy speedup. #54
- 8 hours of downtown: 122s to 102s!!!
- prebake: 181s to 160s
2020-10-19 16:30:41 -05:00
Michael Kirk
82827bd60b
perf: only allocate vector for inner_get_car_positions
when necessary ( #369 )
2020-10-19 14:58:16 -05:00
Dustin Carlino
bb669b7c1a
Dump a savestate in the run_scenario tool when interrupted. Useful for
...
investigating why downtown has 45k live agents by 5pm... #368
2020-10-19 14:52:26 -05:00
Dustin Carlino
0a64cda947
Distinguish cancellation reasons for capped trips better. #325
2020-10-17 09:39:37 -05:00
Dustin Carlino
0259750eb3
Add a flag to detect drivers who're destined to pass through a currently delayed area. #325
2020-10-17 09:22:49 -05:00
Dustin Carlino
32b11f03e8
Avoid cloning a car's path when creating it. #368
...
- 8 hours of downtown: 135s down to 126s
- prebaking: still hovering around 3m4s, plus or minus a few seconds
2020-10-16 13:12:19 -05:00
Dustin Carlino
e66b058439
Disable a simulation sanity check that happens frequently and hasn't had
...
problems in a long time. Marginal speedup of a few seconds. #368
2020-10-16 12:29:46 -05:00
Dustin Carlino
491f4bbffe
Speed up the simulation by replacing BTreeMaps with a simple Vec lookup. #368
...
No behavioral changes. Dramatic performance boost:
- 8 hours of downtown: 170s down to 135s
- prebaking: 3m33s down to 3m4s
2020-10-16 12:10:05 -05:00
Dustin Carlino
422882c03b
Ditch cpuprofiler in favor of cargo flamegraph. Add a tool that just
...
runs a scenario headlessly, since that's easier than sending a few curl
commands to the API. #368
2020-10-15 17:12:38 -05:00
Dustin Carlino
b3525f95a2
Enable profiling in the headless server. #368
...
(Although actually, I'm liking cargo flamegraph better than cpuprofiler.
Might rip out the support for cpuprofiler.)
2020-10-15 16:21:57 -05:00
Dustin Carlino
028d1df62c
Allow selecting and clicking unzoomed agents. [rebuild]
2020-10-15 14:58:07 -05:00
Dustin Carlino
c0513a3d64
Reduce time to park/unpark offstreet when --infinite_parking is used.
...
Downtown forms gridock just from everyone pouring into Harborview! The
point of --infinite_parking is to simplify the sim by not modelling the
impact of parking. #368
2020-10-14 12:40:26 -05:00
Dustin Carlino
84a65c293b
Make it easier to test scenario modifiers by specifying them on the CLI
2020-10-14 12:16:38 -05:00
Dustin Carlino
1906fb0913
Remove the GetDrawAgents indirection. Originally the UI could pull the
...
set of agents to draw either from the simulation or from this
"time-traveler" plugin, which would let you rewind sim time. That plugin
is long gone, and it never worked well, because much of the UI would use
the GetDrawAgents to select something, then query the live sim for lots
of details anyway. The plugin never served all of those calls, so the
results would be kind of out-of-sync anyway.
There are some parts of the UI that need to temporarily not draw agents.
Use the same suspended_sim trick that edit mode does.
2020-10-12 11:52:05 -05:00
Dustin Carlino
a1c53d5e1c
Humble start to adjusting how distances and durations are printed in the UI. #331
...
Also trimmed out a few old UI settings; they kind of started as
experiments, but now the alternative feels useless to maintain.
2020-10-11 10:45:13 -07:00
Dustin Carlino
df873a5cf9
Add an option to totally disable turn conflicts in the simulation. Can we make progress on large scenarios only with vehicle queueing rules? (Didn't evaluate this yet, don't want to burn through laptop battery currently)
...
Also fix zooming in on traffic signals crashing with freeform policy
2020-10-11 10:14:48 -07:00