IRC logs for #openttd on OFTC at 2021-11-03
            
01:50:04 *** Flygon has joined #openttd
02:35:28 *** Wormnest has quit IRC (Quit: Leaving)
03:44:11 *** glx has quit IRC ()
04:13:13 *** snail_UES_ has quit IRC (Quit: snail_UES_)
05:39:35 *** _aD has quit IRC (Ping timeout: 480 seconds)
07:13:37 *** andythenorth has joined #openttd
07:18:37 *** andythenorth has quit IRC ()
07:19:52 *** sla_ro|master has joined #openttd
07:40:52 *** nielsm has joined #openttd
08:07:43 *** WormnestAndroid has quit IRC (Remote host closed the connection)
08:38:04 *** andythenorth has joined #openttd
08:53:46 *** sla_ro|master has quit IRC ()
08:56:17 *** gnu_jj has quit IRC (Remote host closed the connection)
08:57:21 *** gnu_jj has joined #openttd
09:29:46 *** andythenorth has quit IRC (Quit: andythenorth)
11:10:27 *** sla_ro|master has joined #openttd
11:12:31 *** Samu has joined #openttd
11:12:48 <Samu> got the test results
11:13:06 <Samu> it's positive, I'm infected with covid
11:13:10 <Samu> :(
11:17:40 <Samu> what have I done to deserve this
11:17:45 <Samu> stupid home
11:28:26 *** juzza1 has quit IRC (Ping timeout: 480 seconds)
11:40:33 *** Tryard has joined #openttd
11:41:46 <Tryard> Hi, I would like to know if it is possible to develop an extension to permit to share rails and stops between players
11:43:02 <dP> only possible by patching the game and it's already done in jgrpp
11:44:37 <Tryard> What is jgrpp?
11:44:41 *** virtualrandomnumber has joined #openttd
11:45:38 *** virtualrandomnumber has quit IRC ()
11:45:52 <dP> a patchpack, i.e. version of the game with some extra features: https://github.com/JGRennison/OpenTTD-patches/releases
11:47:50 <Tryard> That's cool, ant this version is compatible with public servers?
11:48:50 <dP> no, it's only compatible with jgrpp servers
11:49:04 <Tryard> Ok
11:49:23 <Tryard> Do you know where I can find a compatible public server?
11:49:45 <dP> citymania patchpack is compatible with vanilla servers https://citymania.org/downloads
11:49:58 <dP> but it doesn't have infrastructure sharing because you can't do that compatibly
11:50:26 <Tryard> It is possible to build a compatible server?
11:51:00 <dP> if you want jgrpp servers just start the game as usual, it will show ones you can connect to
11:51:28 <dP> depends on what you want, some features you can do compatibly some not
11:51:40 <Tryard> Ok
11:52:11 <Tryard> Another questions, Do you know if it possible to buy shares of a company?
11:52:42 <Tryard> I never understood very well this feature
11:54:49 <dP> there is a setting to enable buying "shares" but it's pretty pointless imo
11:54:58 <dP> just some artifact from the original game
11:56:28 <Tryard> If you buy shares you don't receive any money?
11:56:43 <Tryard> Are there no advantages?
11:57:04 <dP> like dividends? no
11:57:22 *** WormnestAndroid has joined #openttd
11:57:23 <dP> you can buy them cheap and sell them when company grows
11:57:41 <Tryard> Aaaahh ok
11:57:50 <dP> I've seen someone even playing by watching ai companies and "trading" their shares
11:58:01 <Tryard> So it is possible to make money in this manner
11:58:12 <Tryard> Cool
11:58:35 <dP> yeah, kinda
11:58:51 <dP> in multiplayer you can even exploit it and get infinite money xD
11:59:48 <Tryard> Yeah, what I thought
12:00:08 <Tryard> But is not enabled as default, right?
12:00:48 <dP> no, it's not
12:01:06 <Tryard> Where it is possible to enable it?
12:01:24 <dP> like everything else, in settings
12:01:37 <dP> called "Competitors->Allow buying shares from other companies"
12:03:28 <Tryard> Ok, and anyone can buy your company shares also without your approval?
12:03:57 <dP> yeah, I think so
12:04:03 <dP> not that it changes anything for you
12:05:10 <Tryard> Yes, it is only to know how it work
12:06:23 <Tryard> Thank you so much, I love this game and I think that with jgrpp patch my love will encrease
12:15:27 *** juzza1 has joined #openttd
13:40:25 *** glx has joined #openttd
13:40:25 *** ChanServ sets mode: +v glx
14:24:02 *** tokai has joined #openttd
14:24:02 *** ChanServ sets mode: +v tokai
14:30:56 *** tokai|noir has quit IRC (Ping timeout: 480 seconds)
15:16:02 *** _aD has joined #openttd
15:26:50 *** Wormnest has joined #openttd
16:46:35 *** _aD has quit IRC (Ping timeout: 480 seconds)
16:54:08 *** tokai|noir has joined #openttd
16:54:09 *** ChanServ sets mode: +v tokai|noir
17:00:43 *** frosch123 has joined #openttd
17:01:01 *** tokai has quit IRC (Ping timeout: 480 seconds)
17:05:14 *** Flygon has quit IRC (Quit: A toaster's basically a soldering iron designed to toast bread)
17:21:10 <Tryard> How I can list a dedicated server?
17:22:43 <LordAro> Tryard: i don't understand what you mean
17:23:09 <frosch123> Tryard: https://github.com/OpenTTD/OpenTTD/blob/master/docs/multiplayer.md
17:23:24 <Tryard> I would like to build a dedicated server that everyone can find in the list of public servers
17:23:37 <LordAro> in which case, see the above link
17:23:46 <LordAro> frosch123: we should replace @ports with that :p
17:24:34 <frosch123> LordAro: https://github.com/OpenTTD/DorpsGek/blob/main/plugins/OpenTTD/plugin.py#L63
17:25:19 <LordAro> hehe
17:31:23 <Tryard> This command doesn't work: set server_game_type public
17:31:53 <Tryard> this is the command to make a public dedicated server
17:32:37 <LordAro> Tryard: we can't do much with "doesn't work", what is the error?
17:32:56 <Tryard> Yeah, you are right
17:33:02 <Tryard> just a moment
17:33:04 <frosch123> Tryard: the page is about openttd 12.0+
17:33:10 <frosch123> just in case you are using some ancient version
17:33:19 <LordAro> or jgrpp
17:33:24 <Tryard> 'server_game_type' is an unknown setting.
17:33:32 <Tryard> Yes, I'm using jgrpp
17:34:48 <LordAro> https://github.com/JGRennison/OpenTTD-patches/blob/jgrpp/docs/multiplayer.md in which case you should probably use the equivalent documentation
17:34:58 <Tryard> But also in the repo of jgrpp in the multiplayer doc the command is the same
17:35:16 <LordAro> need to ask JGR if you have problems then, we can't help with that
17:35:20 <Tryard> Same things
17:35:32 <Tryard> Mmmhhh ok, thanks
17:35:48 <frosch123> https://github.com/JGRennison/OpenTTD-patches/blob/jgrpp-0.43.2/docs/multiplayer.md <- that is the doc for jgrpp <= 0.43
17:35:58 <LordAro> yeah, it's possible it's been updated, but not released yet
17:36:09 <frosch123> 0.44 seems to have the 12.0 multiplayer
17:36:53 <Tryard> Guide is different, I will try it
17:37:29 <Tryard> Cool, that work :)
17:40:07 <TrueBrain> So JGRPP is now so mature, it has release candidates :D that is a very good sign :)
17:40:16 *** gelignite has joined #openttd
17:40:46 <Tryard> What do you think about JGRPP?
17:45:19 <LordAro> what would you like us to think of it?
17:47:33 <DorpsGek> [OpenTTD/OpenTTD] ldpl opened pull request #9666: Fix: Every 16th client gets stuck wating for server restart https://git.io/JPQSk
17:47:43 <dP> oops sent too early
17:48:40 <glx> cool I can check if they updated the images
17:49:11 <LordAro> dP: i'd recommend expanding the comment a bit
17:51:09 <dP> LordAro, fixed
17:51:19 <dP> pressed ctrl+ender accidentally
17:52:19 *** Tirili has joined #openttd
17:52:56 <LordAro> i meant the comment in the file ;)
17:53:04 <glx> ubuntu uses 20211101.1 but windows still on 20211018.0
17:53:34 <LordAro> windows docker images are pain
17:53:42 <LordAro> can't use nanoserver because msys dependency
17:53:46 <LordAro> so all the images are >4G
17:53:47 <dP> oh, silly comments xD
17:54:05 *** Tryard has quit IRC ()
17:54:52 <glx> windows image should be updated soon, 20201102.4 was released yesterday
17:56:02 <glx> so I guess tomorrow nightly will build
17:56:51 <DorpsGek> [OpenTTD/OpenTTD] ldpl updated pull request #9666: Fix: Every 16th client gets stuck wating for server restart https://git.io/JPQSk
17:57:24 <LordAro> :)
17:57:47 <LordAro> well, except for the whitespace ;)
17:58:04 <DorpsGek> [OpenTTD/OpenTTD] ldpl updated pull request #9666: Fix: Every 16th client never reconnects after server restart https://git.io/JPQSk
17:58:17 <frosch123> tomorrow? it started failing on a wednesday, so i assumed it would be fixed on a wednesday
17:58:56 <glx> ubuntu and macos use images released 2 days ago
17:59:12 <glx> and windows images were released today
17:59:47 <frosch123> but only windows nightly failed?
17:59:47 <glx> well 11h ago
18:00:07 <glx> yes only windows is concerned by chocolatey
18:03:00 <dP> though that whole reconnect "throttling" seems kinda questionable
18:03:07 <dP> what difference will that fraction of a second make
18:04:25 <LordAro> i would imagine TrueBrain had his reasons
18:04:37 <LordAro> should've written those reasons down, but i'm sure they were good reasons
18:04:38 <LordAro> :p
18:11:36 <TrueBrain> Let's go back in time 17 years and address that issue :p
18:11:40 <TrueBrain> Weirdo :)
18:13:22 <TrueBrain> Also, can't believe we wrote this network protocol 17 years ago .. lol
18:14:31 <frosch123> https://github.com/OpenTTD/OpenTTD/commit/3a1a915c9af26759b121fb845b40708bc9db6cda <- only 11 years
18:15:04 <LordAro> ah, i assumed it was new
18:15:04 <frosch123> that's also where the "+1" was lost
18:15:14 <LordAro> lol
18:16:02 <TrueBrain> it was 17 years ago the mechanism got introduced ;)
18:16:16 <TrueBrain> The throttling was put to question, not based on what :p
18:16:56 <TrueBrain> But yeah, happy you point out I am not even to blame for this bug :p
18:20:38 *** tokai has joined #openttd
18:20:38 *** ChanServ sets mode: +v tokai
18:22:38 <dP> that commit though suggests there is actually some problem if they're not throttled
18:22:45 <dP> but still doesn't explain what it is :(
18:25:00 <nielsm> probably related to the server accepting multiple connections at a time, perhaps a problem with slower connections, where it can affect already-connected players?
18:25:07 *** _aD has joined #openttd
18:25:31 <TrueBrain> Most likely: tcp accept() backlog is not that big, dropping clients if they all come in on the same time
18:25:42 <TrueBrain> Just guessing here, did not read the code
18:27:31 *** tokai|noir has quit IRC (Ping timeout: 480 seconds)
18:30:49 <TrueBrain> Yeah, backlog is 1, so that throttle actually solves a problem
18:31:09 <TrueBrain> Without it, only a few clients would be able to reconnect
18:31:17 <TrueBrain> The other connections would bounce
18:31:42 <frosch123> where do you see the backlog?
18:31:51 <TrueBrain> Listen call
18:31:52 <dP> there still is a chance they'll reconnect at the same time
18:31:54 <frosch123> is it some default? or does ottd enforce it?
18:31:56 <milek7> https://github.com/OpenTTD/OpenTTD/blob/29cceb59a5b58d8c00a78022091f78838392cdce/src/network/core/address.cpp#L334
18:32:02 <dP> why not just increase the backlog?
18:32:16 <TrueBrain> 20 routes to rome
18:32:42 <TrueBrain> You ask why it is there, I give you the most probable reason ;)
18:32:42 <milek7> though depending on OS such low value is probably ignored anyway
18:33:08 <TrueBrain> Do put this in a 2004 time frame when debating these things :)
18:39:09 <milek7> is there any interest with d3d11 backend?
18:41:21 <dP> TrueBrain, pretty sure SOMAXCONN existed in 2004 :p
18:41:51 <TrueBrain> That is thinking way too easy about the problem
18:42:28 <TrueBrain> Cross OS support was not really existing back in the day ;)
18:42:57 <LordAro> * TrueBrain shakes his walking stick at the children
18:43:15 <TrueBrain> Yup :)
18:44:04 <TrueBrain> I remember I wrote a blog about crosscompiling for MacOS .. was pretty popular for several years ..
18:44:14 <TrueBrain> You normally just couldn't do that
18:44:31 <TrueBrain> The good old days
18:44:39 <TrueBrain> Were the code was in C :p
18:44:53 <dP> even considering cross os and stuff 1 is way too specific of a value
18:46:27 <dP> also it's all nice and cozy but but we're in 2021 and backlog is still 1 :p
18:46:34 <frosch123> TrueBrain: now you tell ms people how to fix the windows farm :)
18:46:48 <TrueBrain> They said they push a new image today
18:46:56 <glx> image is released yes
18:47:00 <TrueBrain> Just the definition of "day" is vague
18:47:00 <frosch123> i know, i got the same notifications
18:47:27 <TrueBrain> But yeah, it was funny we were actually right :)
18:47:27 <frosch123> if they do it every week, i assume it is automated, and at the same time as last week
18:47:30 *** planetmaker has joined #openttd
18:47:38 *** planetmaker is now known as Guest4837
18:49:33 *** Guest4837 is now known as planetmaker
18:50:13 <TrueBrain> making all of the windows images better, one bug at the time :P
18:50:24 <glx> yesterday's nightly was not using newest ubuntu and macos images while the were already released
18:51:00 <glx> but #9666 CI used them
18:51:12 <TrueBrain> just give it some time, it will work out :)
18:51:36 <glx> so for me tomorrow nightly should be ok, but today will still fail
18:53:39 <TrueBrain> not like we want to release 12.1 today :)
18:54:18 <TrueBrain> one could however already prepare changelog, website news, etc :P
18:54:55 <TrueBrain> frosch123: also a bit insane, there are people actually interested in using TrueWiki :P
18:55:26 <TrueBrain> I should decouple OpenTTD's wiki from it soon .. now forks also try to deploy it to AWS :P
18:55:28 <frosch123> what is the current share price?
18:55:35 <TrueBrain> :D
18:56:10 <TrueBrain> and for who has missed the news: https://github.blog/2021-11-03-thank-you-github/ .. we will see how the new dude does :P
18:57:35 <frosch123> does github ceo matter? cto is usually more important
18:57:46 <TrueBrain> Nat was very focal about things when it mattered
18:57:50 <TrueBrain> focal? vocal
18:57:51 <TrueBrain> lol
18:58:19 <frosch123> was he at gh before ms takeover?
18:58:25 <TrueBrain> yup
19:01:36 <frosch123> i did not hear anything about devspaces btw
19:02:25 <TrueBrain> euh, he became CEO at the takeover, misread you, sorry :P
19:02:28 <TrueBrain> devspaces?
19:02:40 <frosch123> codespaces?
19:02:57 <TrueBrain> codespaces, yes
19:02:57 <TrueBrain> ah, hmm .. too bad
19:03:12 <TrueBrain> like I said, mostly when they are this late in betas, signups go really quick
19:03:13 <TrueBrain> but I guess they have something else planned
19:03:22 <TrueBrain> I hope they announce soon what they will do with codespaces for individuals
19:04:29 <DorpsGek> [OpenTTD/game-coordinator] TheDude-gh opened issue #76: Duplicated data in GC_LISTING packet https://git.io/JPQhN
19:20:36 <frosch123> https://www.circle-lang.org/ <- should we switch to that?
19:56:29 <frosch123> glx: you won :)
20:10:38 <glx> not yet
20:11:14 <frosch123> that would be the worst option :/
20:14:34 <TrueBrain> sometimes it is like we only read a part of the conversation :P
20:15:30 <DorpsGek> [OpenTTD/game-coordinator] TrueBrain commented on issue #76: Duplicated data in GC_LISTING packet https://git.io/JPQhN
20:19:12 <LordAro> TrueBrain: you realise that log is still freely available?
20:19:22 <TrueBrain> LordAro: yeah, not much I can do about that
20:19:44 <TrueBrain> I told him last time too not to publish that, but ... here we are
20:19:55 <TrueBrain> as we figured last time, reading is hard :)
20:20:09 <frosch123> log is only for members, isn't it?
20:20:17 <TrueBrain> only for comments
20:20:19 <frosch123> not sure which permission is needed
20:20:35 <TrueBrain> go to the page in private mode, and you see it is for anyone
20:20:42 <LordAro> aha, i can delete the initial revision
20:20:51 <TrueBrain> really?! Interesting :D
20:21:01 <TrueBrain> nice
20:21:01 <LordAro> it is gone :)
20:21:04 <TrueBrain> tnx
20:21:15 <LordAro> can even do it from the mobile site
20:21:16 <TrueBrain> now it is admin-only :P
20:30:42 <DorpsGek> [OpenTTD/OpenTTD] rubidium42 approved pull request #9666: Fix: Every 16th client never reconnects after server restart https://git.io/JP7Y7
20:33:42 <DorpsGek> [OpenTTD/OpenTTD] rubidium42 merged pull request #9666: Fix: Every 16th client never reconnects after server restart https://git.io/JPQSk
20:36:25 <TrueBrain> GitHub Codespaces really is nice to work with :)
20:36:31 <DorpsGek> [OpenTTD/game-coordinator] TrueBrain opened pull request #77: Fix: old NewGRF entries were not removed from NewGRF lookup table https://git.io/JP7Oi
20:38:20 <glx> part of the observed "leak" ?
20:39:50 <TrueBrain> most of the leak was fixed by using the right DB to monitor expire events
20:40:04 <TrueBrain> by his numbers, this would only leak .. 4500 * 100 bytes
20:40:06 <DorpsGek> [OpenTTD/game-coordinator] glx22 approved pull request #77: Fix: old NewGRF entries were not removed from NewGRF lookup table https://git.io/JP73k
20:40:15 <TrueBrain> so not even a MB of memory :)
20:40:38 <glx> so only a bandwidth issue :)
20:41:22 <DorpsGek> [OpenTTD/game-coordinator] TrueBrain closed issue #76: Duplicated data in GC_LISTING packet https://git.io/JPQhN
20:41:24 <TrueBrain> pretty much
20:41:26 <DorpsGek> [OpenTTD/game-coordinator] TrueBrain merged pull request #77: Fix: old NewGRF entries were not removed from NewGRF lookup table https://git.io/JP7Oi
20:41:45 <TrueBrain> now there is another crash that happens from time to time .. lets see what that is about ..
20:41:55 <TrueBrain> it actually kills the whole instance
20:42:19 <glx> and drops turn clients ?
20:44:26 <TrueBrain> nah
20:44:27 <TrueBrain> that is on another instance
20:44:33 <TrueBrain> we run 2 TURN instances, 2 STUN instances, and 2 GC instances
20:47:49 <frosch123> i only received sentry mails about the GC instances battling over deregistering a server
20:49:02 <TrueBrain> yeah, 1G crashes the instance
20:49:04 <frosch123> oh wait, there was a different one on monday
20:49:15 <frosch123> i know how to trigger 1G :)
20:49:21 <TrueBrain> do tell?
20:49:36 <frosch123> start two servers with the same invite code
20:50:05 <frosch123> use the race condition to set them both to "public" at the same time, so GC battle over the code, and both think they go tit
20:50:18 <frosch123> then exit both servers at the same time, e.g. via killall -9
20:50:28 <DorpsGek> [OpenTTD/OpenTTD] 00Bla00 opened issue #9667: [Bug]: To many starting money in version 12. https://git.io/JP7sF
20:50:28 <frosch123> so, then both GC race again to deleting the server
20:50:50 <TrueBrain> please file a bug about both being public, as that requires a bit more time
20:50:55 <TrueBrain> but the sentry report is a bit weird
20:51:00 <TrueBrain> as remove_server() protect against such cases
20:51:06 <TrueBrain> it starts with: if id not in list: return
20:51:16 <TrueBrain> but when it gets to actually removing the id from the list, it is no longer there :P
20:51:50 <TrueBrain> I really have to rewrite the whole GC, as I learnt a lot what is needed etc with this version :)
20:51:51 <frosch123> https://github.com/OpenTTD/game-coordinator/blob/main/game_coordinator/application/coordinator.py#L206 <- i think it is caused by that await being a race condition
20:52:10 <frosch123> the gc wants to delete a server, and during that await it receives a delete from the other instance
20:52:42 <TrueBrain> I guess ..
20:52:48 <frosch123> because both instances think it's their server
20:53:04 <TrueBrain> what is mostly broken, that both the stream "delete" and the local "delete" ends up in remove_server .. the first should first validate if he is in fact owner of the server
20:53:40 <TrueBrain> all other things from the stream do that .. except for this function
20:53:59 <TrueBrain> owh well .. if you can please make an issue from your way to crash it, I might spend my weekend rewriting the GC :P
20:55:28 <DorpsGek> [OpenTTD/game-coordinator] TrueBrain opened pull request #78: Fix: don't crash the instance of a command from the stream crashes https://git.io/JP7GB
20:55:37 <TrueBrain> let's at least do this, so the instance doesn't actually crash :)
20:56:06 <DorpsGek> [OpenTTD/game-coordinator] TheDude-gh commented on issue #76: Duplicated data in GC_LISTING packet https://git.io/JPQhN
20:56:28 <frosch123> also log the exception message?
20:56:36 <TrueBrain> log.exception does exactly that :)
20:56:55 <frosch123> ah, silly global state
20:57:09 <glx> #9667 is probably not a bug, but the effect of inflation calculation
20:57:30 <TrueBrain> "global" state .. in an exception handler you can access the exception
20:57:34 <TrueBrain> not sure you can consider that global :P
20:59:00 <DorpsGek> [OpenTTD/game-coordinator] TrueBrain merged pull request #78: Fix: instance crash when command from stream causes an exception https://git.io/JP7GB
20:59:10 <DorpsGek> [OpenTTD/OpenTTD] James103 commented on issue #9667: [Bug]: To many starting money in version 12. https://git.io/JP7sF
21:01:03 <DorpsGek> [OpenTTD/game-coordinator] TrueBrain created new tag: 1.5.3 https://git.io/JP7Zn
21:01:19 <TrueBrain> right, that should fix the most important pieces :) Rest can all wait :)
21:04:01 *** tokai|noir has joined #openttd
21:04:01 *** ChanServ sets mode: +v tokai|noir
21:04:29 <DorpsGek> [OpenTTD/OpenTTD] James103 opened issue #9668: [Bug]: No nightly builds are published after October 25. https://git.io/JP7ZH
21:04:40 <TrueBrain> :)
21:05:23 *** HerzogDeXtEr has joined #openttd
21:05:30 <DorpsGek> [OpenTTD/game-coordinator] frosch123 opened issue #79: Race conditons between GC instances allow registering/deregistering multiple servers with the same invite code https://git.io/JP7Zj
21:05:40 <frosch123> makes sense?
21:06:01 <DorpsGek> [OpenTTD/OpenTTD] TrueBrain commented on issue #9668: [Bug]: No nightly builds are published after October 25. https://git.io/JP7ZH
21:06:21 <DorpsGek> [OpenTTD/OpenTTD] glx22 commented on issue #9668: [Bug]: No nightly builds are published after October 25. https://git.io/JP7ZH
21:06:36 <TrueBrain> tnx frosch123 :)
21:06:53 <TrueBrain> I wonder what the odds are that you end up on 2 instances ..
21:07:25 <glx> surprising james didn't report it earlier
21:07:36 <TrueBrain> now complaining he doesn't complain sooner?
21:07:37 <TrueBrain> lol :P
21:07:43 <frosch123> TrueBrain: the "actions" tab is only accessible to members, not for james, is it?
21:08:07 <TrueBrain> frosch123: again, try it with a private window :D :D
21:08:08 <frosch123> TrueBrain: i observed 100%
21:08:19 <TrueBrain> frosch123: that are strange odds .. as it should be a round-robin :P
21:08:24 <frosch123> i think registering one server actually blocks the instance so long that the other one is choosen
21:08:49 <TrueBrain> that shouldn't be happening
21:08:50 <TrueBrain> registration is async
21:08:52 <TrueBrain> but it is something else to look into
21:08:58 <frosch123> round-robin works for me, how many server are started per second? :p
21:09:14 <TrueBrain> hmm, it is your local DNS doing the RR
21:09:17 <frosch123> if i start them at the same time, i will have consecutive requests
21:09:18 <TrueBrain> so there you might have a point
21:09:37 <DorpsGek> [OpenTTD/OpenTTD] rubidium42 approved pull request #9649: Fix missing commas in crash message for savegame crash due to missing NewGRF https://git.io/JP7no
21:10:23 <TrueBrain> I like GC redeployments
21:10:25 <TrueBrain> it disconnects EVERYONE
21:10:26 <DorpsGek> [OpenTTD/OpenTTD] rubidium42 merged pull request #9649: Fix missing commas in crash message for savegame crash due to missing NewGRF https://git.io/JiGsz
21:10:28 <TrueBrain> but it recovers in seconds :)
21:10:30 <DorpsGek> [OpenTTD/OpenTTD] rubidium42 closed issue #9648: [Bug]: Missing commas in crash message for savegame crash due to missing NewGRF https://git.io/Ji3OX
21:10:56 *** tokai has quit IRC (Ping timeout: 480 seconds)
21:12:16 <TrueBrain> ugh, I am getting old .. I was validating the deployment, I was like: I must not forget to do A ... and ..
21:12:17 <TrueBrain> yeah .. can't remember
21:33:57 <LordAro> probably not important
21:37:50 *** Tirili has quit IRC (Quit: Leaving)
21:52:23 *** gelignite has quit IRC (Quit: Stay safe!)
21:57:08 <dP> hm, a lot of minimap rendering performance seems to be lost in boilerplate
21:57:24 <dP> did a quick test with pointers and got about 5x improvement in some cases
21:57:32 <dP> but I've no idea how to do that properly
22:04:23 <frosch123> does it still call SetPixel in the blitter for every pixel?
22:04:36 <dP> yep
22:05:32 <frosch123> you could render the minimap into a "bitmap" and then blit that with one blitter call
22:06:44 <dP> that would kinda make it double rendering
22:06:52 <frosch123> so mimimap has a "int width, height; uint8* color;" or something member, which has an inline-able PutPixel to write into the *color
22:07:25 <frosch123> yes, it does more, but it does it in blocks of consecutive memory
22:07:36 *** nielsm has quit IRC (Ping timeout: 480 seconds)
22:07:59 <frosch123> which is the core to SIMD, vectorisation, cache-locality and whatever is hype :)
22:09:38 <dP> how would that make it any more consecutive? final blit sure but you still need to make initial bitmap
22:10:07 <dP> also consecutive on screen is diagonal on the tile map so you're screwed either way
22:10:18 <frosch123> the setpixel is inline-able, instead of a virtual function call
22:10:55 <frosch123> the "bitmap"->"screen" transition would be a single virtual call to the blitter
22:10:59 <frosch123> and it can operate in block
22:11:08 <frosch123> since both "bitmap" and "screen" are consecutive
22:11:55 <frosch123> but i guess you meant "is the bottleneck scanning the map" vs "is the bottleneck calling all the setpixel"
22:12:01 <frosch123> i only addressed the latter
22:13:19 <dP> well, if you completely dismiss making blitter setpixel inlineable then I guess bitmap is the next best option
22:14:51 <dP> and for what I've seen map scanning is less important that setpixel but still significant
22:14:54 <frosch123> yes, i dismiss making blitter setpixel inlineable. that would end up in yapf-style static polymorphy
22:15:46 <dP> well, it works fine for rust xD
22:16:17 <frosch123> i already forgot how the opengl blitter works, but it would likely also be happier by blitting a whole bitmap, than single pixels
22:18:53 <dP> idk, doesn't look that different to me, inlining aside
22:21:06 <frosch123> bonus: if you can blit "bitmaps" from arbitrary memory, you can also preview heightmaps and .png from bananas
22:21:24 <frosch123> (noone wants to load those images into the global spritecache)
22:22:24 <dP> also extra zoom levels for minimap would be much easier to do with bitmap
22:24:13 <dP> well, at least as long as you don't mind some blockiness xD
22:26:45 <dP> hm, actually it doesn't even have to be bitmap, some kind of inlineable iterator should do just fine
22:27:18 <dP> pass it to blitter as template parameter
22:27:46 <frosch123> you can't do virtual template functions
22:33:06 *** sla_ro|master has quit IRC ()
22:41:12 *** Samu has quit IRC (Quit: Leaving)
22:45:45 *** JGR has joined #openttd
22:49:09 <dP> well, you just need to unfold one function into a few so there probably is some wretheched way to do that with templatess
22:49:59 <JGR> Adding a rectangle blit function to the Blitter virtual interface is easier, I've got that in my branch
22:50:50 <frosch123> everything is already done :)
22:51:16 <JGR> Not really, I've haven't tried to optimise the minimap. I don't really use it much TBH.
22:51:52 <dP> you have minimap in the main viewport :p
22:51:56 <frosch123> isn't there this viewport-zoomout-into-minimap-like?
22:52:05 <frosch123> doesn't it have the same problem?
22:52:34 <dP> it lags as hell so I guess so xD
22:52:50 <dP> main reason I didn't do it in cmclient
22:52:58 <dP> and why I'm looking at its performance atm
22:53:06 <JGR> The viewport map mode is a different implementation than the minimap. I've optimised it quite a bit compared to the original patch on the forums.
22:56:12 <JGR> Things like caching land pixels and vehicle separately, using a smaller dirty block size, not marking the viewport dirty unnecessarily, indexing bridges/tunnels ahead of time, etc
22:59:27 <dP> and even that lags quite a lot compared to vanilla rendering
22:59:57 *** HerzogDeXtEr has quit IRC (Read error: Connection reset by peer)
23:00:55 <dP> about the same as minimap actually
23:01:03 <frosch123> does it lag more than vanilla zoomed out?
23:01:23 <frosch123> it does not need spritesorting, so i assumed it would be faster than that at least
23:01:48 <dP> sprite sorting should be negligible nowadays
23:02:18 <JGR> The minimap updates relatively infrequently. Viewport map mode updates in real time similarly to normal rendering, some lag is inevitable if the map is very busy.
23:02:26 <frosch123> well, also newgrf sprite resolve for all objects/industries/houses/tracks
23:02:38 <JGR> I've found it render much faster than zoomed out normal rendering anyway.
23:05:14 <dP> for me vanilla zoomed out renders 40 fps, jgrpp 0.43.1 on same level 50 fps but zomed out more drops less than 40, up to 15
23:06:51 <dP> that's moving the map, zooming lag spikes are even worse
23:07:04 <dP> 30ms vs 140
23:07:49 *** frosch123 has quit IRC (Quit: be yourself, except: if you have the opportunity to be a unicorn, then be a unicorn)
23:21:31 <JGR> Been a while since I looked at this code... The land cache (to avoid needing to re-scan the map when it's just vehicles moving about) isn't used when the viewport is moving.
23:22:35 <JGR> So you'll probably get significantly different results for stationary and moving viewports.
23:25:20 <dP> well, ofc stationary is faster
23:25:29 <dP> but it's mostly the zooming lag that kills it for me
23:30:22 <JGR> Heh, found my first post-release regression
23:31:59 <JGR> Loaded wentbourne for a test and the ship pathfinder triggered an assert