Config
Log for #openttd on 3rd November 2021:
Times are UTC Toggle Colours
01:50:04  *** Flygon has joined #openttd
02:35:28  *** Wormnest has quit IRC
03:44:11  *** glx has quit IRC
04:13:13  *** snail_UES_ has quit IRC
05:39:35  *** _aD has quit IRC
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
08:38:04  *** andythenorth has joined #openttd
08:53:46  *** sla_ro|master has quit IRC
08:57:21  *** gnu_jj has joined #openttd
09:29:46  *** andythenorth has quit IRC
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:09  <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
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
15:16:02  *** _aD has joined #openttd
15:26:50  *** Wormnest has joined #openttd
16:46:35  *** _aD has quit IRC
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
17:05:14  *** Flygon has quit IRC
17:21:10  <Tryard> How I can list a dedicated server?
17:22:44  <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:48  <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
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  <frosch123> so, then both GC race again to deleting the server
20:50:28  <DorpsGek> [OpenTTD/OpenTTD] 00Bla00 opened issue #9667: [Bug]: To many starting money in version 12. https://git.io/JP7sF
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:02  *** 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
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
21:52:23  *** gelignite has quit IRC
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:22  <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
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
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
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:47  <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
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

Powered by YARRSTE version: svn-trunk