IRC logs for #openttd on OFTC at 2024-11-01
            
02:05:18 *** Wormnest has quit IRC (Quit: Leaving)
02:21:45 *** gelignite is now known as Guest8097
02:21:49 *** gelignite has joined #openttd
02:29:09 *** Guest8097 has quit IRC (Ping timeout: 480 seconds)
03:35:06 *** D-HUND has joined #openttd
03:38:38 *** debdog has quit IRC (Ping timeout: 480 seconds)
03:40:52 <DorpsGek> [OpenTTD/OpenTTD] fundawang opened pull request #13048: fix build with icu >= 76 where icu-i18n and icu-uc become separated https://github.com/OpenTTD/OpenTTD/pull/13048
04:26:44 *** Flygon has joined #openttd
04:46:51 <DorpsGek> [OpenTTD/OpenTTD] eints-sync[bot] pushed 1 commits to master https://github.com/OpenTTD/OpenTTD/commit/3a76af09099a680a409dd8dbb5eadb45e59ebb40
04:46:52 <DorpsGek> - Update: Translations from eints (by translators)
05:20:33 *** keikoz has joined #openttd
06:56:12 *** Wolf01 has joined #openttd
07:55:24 <andythenorth> Will upgrading make nml faster? https://browser.geekbench.com/v6/cpu/compare/8588693?baseline=8594709
07:56:08 <andythenorth> 50% increase in single core performance
08:18:11 <DorpsGek> [OpenTTD/survey-web] survey-summary[bot] pushed 1 commits to main https://github.com/OpenTTD/survey-web/commit/594a5522d9d617c7a8229229c51f8e0959029f3a
08:18:12 <DorpsGek> - Add: summary for Q4 of 2024 (by OpenTTD Survey)
08:20:09 <ketsuban[d]> Can I request a review of #13036? It seems like the discussion ended satisfactorily and there's nothing else to do on my end other than rebasing to keep the PR up to date, and in the interests of not spamming everyone I was only going to do that if there's a conflict.
08:51:48 *** mindlesstux has quit IRC (Quit: The Lounge - https://thelounge.chat)
08:52:52 *** mindlesstux has joined #openttd
08:54:58 <peter1138> andythenorth: They haven't thrown any cache at it, like AMD do.
09:09:29 <truebrain> owh, Q4 reporting worked automatically .. except it is Q3 πŸ˜›
09:09:29 <truebrain> lol
09:09:49 <LordAro> Q0, Q1, Q2, Q3, right?
09:10:10 <truebrain> for some reason, I did not notice it earlier, that I call the results of Q3 as Q4 πŸ˜›
09:10:17 <truebrain> (same for Q3, Q2, and .. Q1? πŸ˜› )
09:10:38 <truebrain> ah, no
09:10:43 <truebrain> this Q4 reporting just went in too early
09:10:45 <truebrain> `2024-10-01 to 2024-12-31. `
09:10:47 <truebrain> that is a lie πŸ™‚
09:11:32 <truebrain> `'0 8 1 * *'` .. something feels wrong with this crontab
09:11:36 <truebrain> not sure what I was smoking, tbh
09:12:39 <truebrain> okay, with some git magic, removed the Q4 report
09:12:40 <truebrain> as it is fake πŸ˜›
09:13:29 <LordAro> OTTD developers secretly collecting data?!?!
09:14:07 <DorpsGek> [OpenTTD/survey-web] TrueBrain opened pull request #53: Fix: actually run the quarter report every quarter, not every month https://github.com/OpenTTD/survey-web/pull/53
09:14:23 <truebrain> someone mind checking if that actually means it runs on the first day after a quarter closes? (so 2025-01-01, 2025-04-01, etc)
09:14:58 <LordAro> https://crontab.guru/#0_8_1_*/3_* seems good :)
09:15:51 <truebrain> there is a button in that PR to press πŸ˜‰
09:16:53 <andythenorth> Multicore grf compiles?
09:20:18 <DorpsGek> [OpenTTD/survey-web] LordAro approved pull request #53: Fix: actually run the quarter report every quarter, not every month https://github.com/OpenTTD/survey-web/pull/53#pullrequestreview-2409761646
09:20:27 <LordAro> truebrain: sorry, busy screaming at our windows gitlab runners
09:24:43 <truebrain> πŸ˜„
09:24:43 *** gelignite has quit IRC (Read error: Connection reset by peer)
09:24:49 <DorpsGek> [OpenTTD/survey-web] TrueBrain merged pull request #53: Fix: actually run the quarter report every quarter, not every month https://github.com/OpenTTD/survey-web/pull/53
09:25:01 <locosage> andythenorth: Doable 🀭
09:25:58 *** gelignite has joined #openttd
09:26:07 <LordAro> https://gitlab.com/gitlab-org/gitlab-runner/-/issues/38267 so much screaming.
09:26:23 <truebrain> oof
09:26:26 <truebrain> that is nasty
09:26:45 <locosage> When bonky revives I'm thinking of making aseprite calls multicore at least
09:29:38 <LordAro> truebrain: the worst bit is that the provided workaround only worked for 1 server. or it only worked for the first few builds and then breaks in a different way
09:30:41 <LordAro> maybe i've misunderstood the implications of setting that NETWORK_PER_BUILD, idk
09:30:50 <LordAro> but i'm going through and downgrading them all now
09:37:17 <andythenorth> locosage: Probably not with nmlc though
09:57:24 <locosage> well, depends on where the bottleneck is
09:58:02 <locosage> sprite encoding can probably be parallelized fairly easily
10:00:34 <andythenorth> I’m away from laptop, but I forgot the nmlc steps
10:00:34 <andythenorth> - parsing
10:00:34 <andythenorth> - ??
10:00:34 <andythenorth> - encoding
10:16:42 *** HerzogDeXtEr has joined #openttd
10:23:14 *** HerzogDeXtEr1 has quit IRC (Ping timeout: 480 seconds)
10:31:15 <xarick> hi
10:32:22 <xarick> conflicts...
10:41:15 <ahyangyi> locosage: And caching helps a lot πŸ˜›
10:42:11 <xarick> https://cdn.discordapp.com/attachments/1008473233844097104/1301858823312638022/image.png?ex=67260202&is=6724b082&hm=12513bad06d9895cee8a39bb7655c205291e995ba12c485ff54d81d19ad5b845&
10:42:11 <xarick> why negative production is even considered
10:44:03 <LordAro> truebrain: asdfjkasdfj the machines upgraded to 24H2 overnight which gl-runner does not support ;_;
10:44:07 <LordAro> workaround was working fine
10:45:05 <xarick> can't we have framerate window in scenario editor?
10:45:25 <xarick> oh, we can, nvm
10:53:18 <xarick> https://cdn.discordapp.com/attachments/1008473233844097104/1301861623706947644/image.png?ex=6726049e&is=6724b31e&hm=796f5e37c12765a7ccd85e6fd8073fe1078f36bd6c681fe2a73ac8c32162d5a8&
10:53:18 <xarick> comparing just `if (IsTileType(dest, MP_WATER)) continue;` on the left vs `if (GetFloodingBehaviour(dest) != FLOOD_NONE) continue;` on the right, on a scenario with only water 4096x4096 size
10:53:47 <truebrain> LordAro: oof .....
10:54:30 <LordAro> explains why one of the runners was still working though - it never got the upgrade...
10:55:47 *** Smedles has quit IRC (Quit: http://quassel-irc.org - Chat comfortably. Anywhere.)
10:56:00 *** Smedles has joined #openttd
10:58:38 <locosage> ahyangyi: well, nml does caching already
10:59:04 <locosage> it just can't into anything more than pngs
11:55:40 <xarick> I just realized MP_RAILWAY has no waterclass
11:55:43 <xarick> pff ...
12:04:58 <peter1138> xarick: I think that made it worse...
12:05:38 <peter1138> Although I don't know which is before and after, nor what you were trying to do.
12:05:51 <xarick> I'm trying to synthesize GetFloodingBehaviour
12:07:44 *** maverickfischer has quit IRC (Quit: Connection closed for inactivity)
12:08:30 <xarick> void tiles also have no waterclass
12:09:13 <xarick> all these edge case handlings are probably slowing down my attempts
12:22:51 <andythenorth> locosage: It’s a shame it can’t cache the parse tree and only reparse against a diff of the nml file
12:23:13 <xarick> https://cdn.discordapp.com/attachments/1008473233844097104/1301884250416611328/image.png?ex=672619b1&is=6724c831&hm=7a63339356fbe9464d2ec76afc70de8015ed9af179cd26f27ce3ce625c7434df&
12:23:13 <xarick> I don't think i can trust this TicToc thingie
12:23:42 <andythenorth> Also, for bigger nml files, it’s a shame it can parse multiple nml fragments on a worker pool, then assemble the tree from that
12:29:51 <_jgr_> xarick: You're not going to get reliable results instrumenting such a tiny function like that
12:32:07 <peter1138> You'd get more luck with the old rdtsc stuff but we got rid of that.
12:32:21 <peter1138> But yes, it's no use for something very tiny.
12:35:54 <locosage> andythenorth: that's a bit too much to ask from any compiler tbh
12:36:01 <locosage> even python only does caching per file
12:57:41 *** D-HUND is now known as debdog
13:16:43 <andythenorth> Parsing multiple input files in parallel though? (I assume for token extraction, although I don’t know what compilers actually do)
14:22:06 <xarick> hmm
14:22:38 <peter1138> That's my line.
14:24:47 <xarick> I found some locks with WATER_CLASS_SEA in the middle tile
14:25:02 <xarick> shouldn't it be canal?
14:25:04 <xarick> or river
14:25:09 <xarick> never sea?
14:25:47 <xarick> they're on the opntitle save
14:30:20 <_glx_> seems fine if the middle tile was coast
14:34:01 <xarick> gonna verify
14:41:26 <xarick> dang-.-
14:42:02 <xarick> it's not possible to keep the SEA currently, only from loading old saves
14:42:17 <xarick> some conversion is missing
14:42:29 <andythenorth> peter1138: Hmm
14:42:55 <xarick> or buildlock is not keeping sea
14:44:24 <_glx_> WaterClass wc_middle = HasTileWaterGround(tile) ? GetWaterClass(tile) : WATER_CLASS_CANAL;
14:44:55 <_glx_> it keeps water class if there's one
14:45:45 <_glx_> same for upper and lower
14:46:08 <xarick> this has my hand in it
14:46:12 <xarick> 😦
14:52:01 <xarick> it was really me <https://github.com/OpenTTD/OpenTTD/pull/7946>
14:52:57 <xarick> ah i remember, it's cause of objects that I went with this fix
14:55:47 <xarick> HasTileWaterGround returns false for shores
14:55:56 <xarick> so it doesn't keep water_class_sea
14:56:21 <_glx_> it's not really an issue, shore will be flooded after locks demolition anyway
14:57:01 <xarick> well... GetFloodingBehaviour is kinda...
14:57:08 <xarick> inconsistent
14:57:58 <xarick> regarding the sloped lock tile
14:58:54 <xarick> river and canal = FLOOD_NONE
14:59:00 <xarick> sea = FLOOD_DRYUP
14:59:25 <xarick> or not
15:00:39 <xarick> ah no, im wrong
15:00:50 <xarick> sea is also FLOOD_NONE here
15:01:20 <xarick> wait, i need to retest, I'm a bit confused
15:02:40 <xarick> okay, river and canal = FLOOD_NONE, sea = FLOOD_ACTIVE
15:04:15 <xarick> https://cdn.discordapp.com/attachments/1008473233844097104/1301924776335511592/image.png?ex=67263f6f&is=6724edef&hm=dadf55fc00acdd739ce5aa6829962610ac285b6bd3f3bf1d4d3449d8e5cac3cf&
15:04:43 <xarick> tile 17537 is the middle tile of a lock with water class sea, which is only possible loading old savegames
15:09:56 <_glx_> this function is weird, why using Chance16 when beh1 and beh2 are expected to be the same ?
15:10:15 <xarick> I was bored
15:10:55 <xarick> it's just debugging
15:33:02 <DorpsGek> [OpenTTD/OpenTTD] SamuXarick opened pull request #13049: Codefix 30fe0015: Preserve sea water class when building locks on shores https://github.com/OpenTTD/OpenTTD/pull/13049
15:41:26 <_glx_> why not HasTileWaterClass() ?
15:42:43 <_glx_> seems more logical as GetWaterClass() is used in this case
15:43:07 <xarick> gonna try
15:45:30 <xarick> HasTileWaterClass(t) && IsTileOnWater(t)
15:48:58 <DorpsGek> [OpenTTD/OpenTTD] SamuXarick updated pull request #13049: Codefix 30fe0015: Preserve sea water class when building locks on shores https://github.com/OpenTTD/OpenTTD/pull/13049
15:53:34 <xarick> this function is really pesky...
15:54:49 <xarick> DoBuildLock
15:55:35 <xarick> wc_lower and wc_upper are different between DC_TEST and DC_EXEC, I remember
15:58:47 <xarick> it miraculously keeps the river if the upper part is an object on water
15:58:56 <xarick> very delicate handling
16:11:38 <peter1138> Lunch?
16:14:40 <andythenorth> Yup
16:16:01 <xarick> Should Flood dry up receive the same treatment?
16:16:21 <xarick> IsNonDryingTile
16:22:46 *** Wormnest has joined #openttd
16:29:16 *** Tirili has joined #openttd
16:51:54 <peter1138> No.
17:03:08 <xarick> I'm wondering if I can replace <https://github.com/OpenTTD/OpenTTD/blob/master/src/rail_cmd.cpp#L395> with a IsCoastTile
17:03:36 <xarick> it would mean GetFloodingBehaviour would be exclusively used only on water_cmd.cpp
17:17:00 <xarick> can i give waterclass to MP_RAILWAY?
17:21:07 <Rubidium> what does the documentation tell you?
17:21:34 <xarick> they have no waterclass
17:22:40 <peter1138> The only possible water class for rail half-tiles is sea.
17:23:08 <xarick> https://cdn.discordapp.com/attachments/1008473233844097104/1301959727244116159/image.png?ex=67265ffc&is=67250e7c&hm=354c7daaf8e236ae83f8c45b62087edde44d2080a7e0624266d376b0c9b9a074&
17:23:08 <xarick> they have room
17:23:23 <xarick> those OO's are WaterClass on every other
17:24:25 <xarick> there's also rail-ground-water on those vertical sloped tiles
17:24:25 <peter1138> Half-tile canals and rivers do not exist. (Despite andy's efforts)
17:24:47 <xarick> and that has a flooding of DRYUP
17:26:36 <xarick> which means... they would get waterclass too :p
17:28:44 <andythenorth> peter1138: Did I do it?
17:31:48 <xarick> some inconsistency I'd like to fix up...
17:32:40 <xarick> rail, road and tunnelbridge with waterclass
17:33:05 <xarick> not sure about MP_CLEAR whether they would also benefit in some way
17:34:38 <xarick> void are not listed but they would have waterclass too
17:35:08 <peter1138> There is no point to any of them having a water class.
17:35:37 <xarick> if i could get everything right, it would be much simpler to query for their flooding behaviour
17:44:48 *** gelignite has quit IRC (Read error: Connection reset by peer)
17:45:05 *** gelignite has joined #openttd
17:50:59 <xarick> why are objects handled differently
17:51:38 <xarick> objects on a coast get WATER_CLASS_INVALID, which in turn get FLOOD_NONE
17:53:02 <xarick> trees on a coast get WATER_CLASS_SEA, which in turn get FLOOD_DRYUP
17:53:22 <xarick> rail on a coast get nothing, but still get FLOOD_DRYUP
17:56:30 <xarick> gonna experiment maintaining the same flood behaviour regarding coasts across all tile types
17:56:56 <xarick> am I expecting graphic glitches?
18:21:45 <peter1138> Okay, we have ZeroedMemoryAllocator which is a left over from "the old ways"
18:22:06 <peter1138> But also, we have objects that have no explicit initialisation that always seem to be zero initialised anyway...
18:44:21 <LordAro> but are you sure
18:46:04 *** Borg has joined #openttd
18:49:03 <xarick> I have a problem with object tile types.. cup half-full or half-empty problem
18:50:29 <xarick> depending on the object, it makes sense to consider a coast with a corner raised as land
18:50:42 <xarick> some other objects, makes sense as water
18:50:54 <xarick> how do I solve this
18:51:22 <peter1138> LordAro: Nope.
18:53:27 <peter1138> Trying to read the spec to determine the rules but it's a bit... chancy.
18:56:43 <peter1138> > If T is a (possibly cv-qualified) class type ([class]), then let C be the constructor selected to default-initialize the object, if any.
18:56:43 <peter1138> > If C is not user-provided, the object is first zero-initialized.
18:56:43 <peter1138> > In all cases, the object is then default-initialized.
18:56:45 <peter1138> Hmm
18:59:21 <_glx_> I think you misunderstand flooding behaviour
19:00:44 *** Wormnest has quit IRC (Ping timeout: 480 seconds)
19:28:47 *** Wormnest has joined #openttd
20:17:31 *** Borg has quit IRC (Quit: leaving)
20:42:43 <xarick> how to mix these flags `bool clear_water = (spec->flags & OBJECT_FLAG_DRAW_WATER) != 0 || (spec->flags & OBJECT_FLAG_HAS_NO_FOUNDATION) == 0;`
20:45:55 <xarick> this doesn't work the way I want because someone misunderstands specs
20:46:05 <xarick> maybe it's me
20:46:15 <peter1138> Is that "someone" you?
20:47:38 <xarick> if you draw water, you don't want to clear water
20:47:50 <xarick> if you have a foundation, you want to clear water
20:53:03 <xarick> i fail at bit operations
20:53:24 <LordAro> my powerline adapter managed to connect to someone else's network
20:53:30 <LordAro> pretty sure it's not supposed to be able to do that
21:00:05 <andythenorth> LordAro: Shared building or not?
21:00:17 <LordAro> yeah
21:01:03 <LordAro> they've lost connection to each other before now, but never as far as "oh here's a new IP on a different network"
21:02:28 <LordAro> fighting DHCP servers is always fun
21:19:14 <peter1138> Pfft, get a proper network!
21:20:12 <LordAro> running an ethernet cable even vaguely neatly would be >50m
21:20:17 <LordAro> but i'm open to other ideas
21:21:11 <peter1138> Well within the spec of Ethernet cable.
21:22:03 <LordAro> mm, still a pain though
21:23:54 <peter1138> Fibre? Point-to-point wireless?
21:25:06 <LordAro> fibre isn't particularly different to ethernet, and wireless probably would work but it'd be stretching it a bit - lots of concrete walls
21:25:10 <LordAro> also i don't like wifi
21:25:33 <peter1138> No, but you get nerd-factor πŸ˜„
21:29:43 <LordAro> given the only thing on the other end is my tv, it feels a bit overkill too
21:29:57 <LordAro> (yes, it's probably already overkill, but eh)
21:36:10 <andythenorth> I waa surpised how ok powerline is
21:39:16 <andythenorth> I have cat 5 in my house but some of it doesn’t work
21:44:53 <andythenorth> Powerline is about 50% as fast as the wifi in bandwidth up/down, but 200% more stable
21:51:54 *** tokai|noir has joined #openttd
21:51:54 *** ChanServ sets mode: +v tokai|noir
21:58:56 *** tokai has quit IRC (Ping timeout: 480 seconds)
22:06:28 <_glx_> not ideal with 3 phases
22:11:28 <johnfranklin> WenSim became zorg?
22:15:30 <wensimehrp> Hey wdym
22:18:34 *** keikoz has quit IRC (Ping timeout: 480 seconds)
22:23:01 <xarick> object_cmd.cpp feels half-done
22:33:16 <xarick> I need to pass the waterclass from CmdBuildObject to BuildObject
22:33:36 <xarick> and it's not as easy as I thought
22:34:33 <xarick> and these monstrosities can be 15x15 size, right?
22:50:56 <xarick> `void BuildObject(ObjectType type, TileIndex tile, CompanyID owner = OWNER_NONE, struct Town *town = nullptr, uint8_t view = 0, std::unordered_map<TileIndex, WaterClass> wc);`
22:50:56 <xarick> > error C2548: 'BuildObject': missing default argument for parameter 6
22:51:07 <xarick> what
22:51:22 <xarick> there is no default argument
22:51:28 <peter1138> Exactly.
22:51:42 <xarick> why does it require it
22:52:09 <LordAro> cannot have a required argument after optional arguments
22:52:15 <LordAro> think about it, how would what work?
22:52:19 <LordAro> that*
22:52:58 <xarick> oh crap, i see
22:56:35 <xarick> maybe it needs a default 😦
23:15:18 <xarick> i can't make a default, still don't get pointers
23:19:22 *** gelignite has quit IRC (Quit: Stay safe!)
23:43:09 *** Flygon has quit IRC (Read error: Connection reset by peer)
23:48:44 <xarick> im utterly confused at unordered_map
23:48:50 <xarick> good night