Page 1 of 1

[Twinsen] [0.17.47] Remaining cases of inserter directional asymmetry

Posted: Sat Jun 08, 2019 11:46 pm
by ignatio
Following up on a discussion about inserter rotational asymmetry, I can note that several cases remain, and all of them happen when inserters pick from belts. Here's an example:

Image

As you can see, the east->west inserter is a lot faster than the north->south one, because the latter only manages to catch every 2nd item.

I've made an inserter throughput test setup that is fairly comprehensive, and following 0.17.46 I extended it to alert on differences between directions. The above is one of the 34 cases I've discovered from that. Some of them occur all the time (the case above appears to be one), but many only for particular belt item phase shifts (i.e. the tick timing between items on the belt and the inserters matter). The comparisons always are made between identical timings, so the only differences are the inserter orientations, and they're perfectly repeatable.

Here's a link to my test setup which might be useful to test for remaining cases. It uses a few mods, but only requires some sandbox items (loaders, infinity chests, and infinite power source) to work. Enable the E=1 constant combinator in the middle of the screen to start a test. Some cases pop up quickly, others take a while (for a full test run change O=56 to 0). I've put pink "DD" tags on all the cases I've seen.

(My guess is that the code for the inserter hand movements isn't isolated from the cardinal directions, so small floating point errors accumulate differently and create different interference patterns in these situations.)

Re: [Twinsen] [0.17.47] Remaining cases of inserter directional asymmetry

Posted: Thu Jul 18, 2019 12:04 pm
by Twinsen
Uh, I kind of got lost in your save.

I tried making the setup above and it seems to be perfectly symmetrical. The issue was most probably resolved, since there were some more inserter fixes after 0.17.47.

Let me know if you can still reproduce it in the latest versions.

Re: [Twinsen] [0.17.47] Remaining cases of inserter directional asymmetry

Posted: Thu Jul 18, 2019 12:13 pm
by ignatio
Yes, things changed quite a bit in 0.17.50, as I mentioned in this later report. I still saw asymmetries, but in different setups.

I haven't run the throughput tests since then. I'll do that with the latest version and update both this ticket and the other one. It'd be great if both this and the item pick-up regressions are indeed gone.

Re: [Twinsen] [0.17.47] Remaining cases of inserter directional asymmetry

Posted: Thu Jul 18, 2019 1:30 pm
by Twinsen
I'm looking at the other one but unfortunately it's hard to find a solution without nerfing the inserters back. I will write in that topic once a conclusion is reached.

Re: [Twinsen] [0.17.47] Remaining cases of inserter directional asymmetry

Posted: Thu Jul 18, 2019 2:03 pm
by ignatio
What was the problem that the 0.17.50 change addressed?

Although I didn't collect thorough numbers for 0.17.50 due to the pick-up regressions, I can't recall any night-and-day differences in inserter performance, and the measurements I made in 0.17.45 seemed reasonable overall. There were just a few cases of inserters not being able to pick up items, but they were mainly for slow burner and basic inserters together with fast and partially occluded belts, which made sense. It was basically just the directional asymmetries that I thought were a bit unfortunate then.

Re: [Twinsen] [0.17.47] Remaining cases of inserter directional asymmetry

Posted: Thu Jul 18, 2019 3:46 pm
by Twinsen
0.17.50 made the inserter aim for a item in the same tick it selects it on the belt(previously it would pause for a tick). This means before the change an inserter would pause for up to 10 tick when aiming for a moving belt (since it selects and tracks items throughout it's entire movement).
This also acted as a mechanism to break certain timings(since the inserter would pause for 1 extra tick if it failed to pick up an item).