Compact circuits


Miniaturize a whole logic network into a single entity to save place (similar to factorissimo but for signals).

Content
a month ago
1.1
7.42K
Circuit network

i Big packed processor impacts performance negatively

2 months ago

Hi,

I have a big processor to perform train station logic with many sub-processors and over 100 combinators in total. When it's in "editor mode" everything works smoothly (Frame cycle: 16ms, Game render preparation: 0.6ms, Sleep > 6ms) but when switched to packed mode there is huge decrease in performance (Frame cycle: 20ms, Game render preparation: 8.5ms, Sleep 0). The only thing I miss from packed processor is display. I could probably make workaround by creating a second processor only for display but it would be nice to do not have to do that and have display visible in "editor mode" as well or decrease render preparation in packed mode.

2 months ago
  1. How many of those do you have?
  2. Is the drop one-time effect or is constant as long as the processor is packed?
  3. What is the state of "Packed circuits don't need energy" setting?
  4. Are you looking at them (quantum effects)?
  5. Can you share a problematic blueprint (and a list of mods required)?
2 months ago

Strange . The packed mode should have no impact on performance except if you are using a massive amount of display element. Can you provide a saved game ?

2 months ago
  1. Even with one there is drop.
  2. It's constant.
  3. It's On I think, will check it later to be sure.
  4. When I look at it, I think, will confirm later. That's probably the reason of increased in game render preparation.
  5. I may try to prepare blueprint and save that but it's not that simple because I use some simple not published mods of my own production, signals etc.
  6. There is 8 displays from what I remember.

There is a lot of small nested processors and several big ones. Displays are in nested processors.

2 months ago
(updated 2 months ago)

3 It's off, after turning on there is still drop.
4 Confirmed. Only when I look at it.

All my processors, station is a root of it. Exported with your mod.
https://drive.google.com/file/d/12BqyM9eXhsq2PxwZBSel5ALWUDng33BE/view?usp=sharing

Custom signals mod:
https://drive.google.com/file/d/15VlCgHOxGk14fcBVChF3ysb4O266e4yb/view?usp=sharing

also stack combinator is used.

2 months ago
(updated 2 months ago)

I have build a small setup with two 'station' processor in packed mode, i am seeing nothing special with mod timing:

https://github.com/user-attachments/assets/97851f52-63d6-48f4-ad1c-b081e8111521

But the number of combinator is huge:

https://github.com/user-attachments/assets/2f2def70-1d65-4a8f-956f-ccedfaae9476

9224 arithmetic combinators
2304 decider combinators

This explains the large time of entity update and the time to deploy processor

2 months ago
(updated 2 months ago)

You have render preparation 16ms and drop in frames, frame cycle 20ms instead of 16ms. Unpack it and notice how render preparation drops to nothing. Sufficient solution for me would be to have displays visible in non packed mode but if you think it's not necessary and my case is an edge of usage I will just use second processor for display.

My estimate of number of combinators was a bit off. :)

2 months ago

i see the problem. The render loop of factorio have to render 11500 small objects in packed mode. In non-packed mode, the objects are on another surface, so no rendering delay. A very good solution would be to completly ignored these objects in rendering but i don't known how to do that. Making display visible in non packed mode is not that easy, so please stay in non packed mode until i find another solution. I think that with such a number of combinator, you will suffer from latency in the logic computation

2 months ago

Sure, I plan to decrease it greatly but first I want to have working logic. Thanks for engagement.

a month ago

i see the problem. The render loop of factorio have to render 11500 small objects in packed mode. In non-packed mode, the objects are on another surface, so no rendering delay. A very good solution would be to completly ignored these objects in rendering but i don't known how to do that.

You can make an entity non-renderable for the given force/player.

New response