Repository navigation
Conversation
The engine steps in its own 10 ms, and a tick took exactly one step whatever step_ms said, then set the clock back from the engine. The transport's slower and faster buttons and sim.speed changed the label and nothing else, and every session run went at real time with the processor mostly idle. A tick is now owed its step_ms and pays it in whole engine steps, checking due sends after each, and stops at the end of a timed run.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The transport's slower and faster buttons and
sim.speednever changed how fast a session ran. The engine steps in its own fixed 10 ms; each store tick took exactly one step whateverstep_mssaid, then set the clock back from the engine. The label changed and nothing else, and every run in a session went at real time with the processor mostly idle.sim.faster's description also said it "trades detail", which it never did.A tick is now owed its
step_msand pays it in whole engine steps, checking due sends after each step so a scheduled send still fires at its instant, and stopping at the end of a timed run sosim.runlands where it was asked. Below 10 ms a tick steps only once it is owed a whole step, so 5 is half speed. Native firmware reads the simulator's clock, so nothing in it notices; the engine's step is unchanged, so no result changes, only how long it takes.Measured on a 241-node native mesh: 0.96x real time before at any setting, about 3x at 1000 ms/tick after. The captures are the 58-node Fife fixture: 1.00x before, 14.15x after.
In the GUI: the transport's slower and faster buttons, and the realtime figure in the status bar.
Tests: a tick covers its size; a timed run ends where asked even inside a large tick, and the next tick does not inherit what was owed; a 5 ms tick steps every other time.
Docs: MeshBench/docs#46