Time Nick Message 05:22 ShadowNinja ~tell sapier I found an issue with your Android build, see logs for a day or two ago. 05:22 ShadowBot ShadowNinja: O.K. 05:23 ShadowNinja VanessaE: It actually conflicted with the map offset thing. I've updated my vbo branch. 05:26 VanessaE oh ok, cool 05:34 VanessaE bbl, off to bed 13:42 nore ~tell sapier https://github.com/minetest/minetest/pull/1168/files#diff-a2a82fe964a7b85f20cd5239d386184aR2404 <-- you need to change the error message too 13:42 ShadowBot nore: Error: Missing ">". You may want to quote your arguments with double quotes in order to prevent extra brackets from being evaluated as nested commands. 13:42 nore ~tell sapier "https://github.com/minetest/minetest/pull/1168/files#diff-a2a82fe964a7b85f20cd5239d386184aR2404 <-- you need to change the error message too" 13:42 ShadowBot nore: O.K. 17:47 sapier ~tell ShadowNinja If you meant the exit to os error I think this may be same reason as celerons crash on trying to join with empty username 17:47 ShadowBot sapier: O.K. 17:48 sapier ~ tell ShadowNinja for chat beeing usefull to enable I need to find a way to place chat behind formspecs ... this is a bug in regular minetest too but due to screen size it's way more anoying on cell phones 17:48 ShadowBot sapier: O.K. 17:48 VanessaE ...or if you use Unified Inventory :P 17:48 sapier btw does anyone have an idea how we can ensure that chat text is shown behind formspecs? 17:49 sapier basicaly everything using that room where chat may be shown as those lines are fixed size even if there's a single character only 17:50 sapier I know kahrl or hmmmm did have a fix for it some months ago, thought it was merged but obviously not ... and I can't find it in logs 17:54 sapier I'm going to merge #1165 soon any complains? 17:55 ShadowBot https://github.com/minetest/minetest/issues/1165 -- Stop wasting time in abm - performance improvement by CiaranG 17:56 proller test it! 17:57 sapier #1167 seems to be fine too so it's scheduled for merge too 17:57 ShadowBot https://github.com/minetest/minetest/issues/1167 -- Remove goto from Environment::removePlayer by Selat 17:58 proller also active_object_count_wider not used now 17:59 CiaranG sapier: If the chat was a lua hud element, instead of part of the GUI stuff, it would appear behind the formspecs ;) 17:59 sapier but isn't and it seems to be quite a lot of work to change it that way 17:59 sapier good point proller 18:00 CiaranG Ok, I thought I could trick you into implementing that ;) 18:01 proller maybe for mobs mod or something strange 18:01 sapier nope ciaranG I try to complete some things atm and it's already hard not to stumble into other open issues ... I already have some strange things on my list of "maybe later" improvements ;-) 18:02 sapier as it's specified by api we can't just drop it without beeing really sure it's not used at all 18:03 sapier but anyway as that's a 3d loop beeing called within another 3d loop I'm very eager to get it in. Things like that tend to be real performance hogs 18:04 PilzAdam active_object_count_wider is used by simple mobs 18:04 PilzAdam and by celeron55's blockmobs AFAIK 18:04 sapier ok so no need to discuss about it 18:06 proller no need to calculate it for all abm, maybe mobs must specify flag for it 18:06 sapier maybe but that's not related to this fix 18:07 proller spaces not related to your fixes too ;) 18:08 sapier well proller you can ask ciaranG if he's willing to add that new feature you request to his patch, I'm fine with his changes the way they are 18:08 proller removing this calculation for all abm exept 2 related to "Stop wasting time in abm" 18:10 CiaranG That would still be a more complex thing to do, because it would break those existing mods, until they set the flag that said they want the _wider calculating for them 18:10 PilzAdam breaking mods isnt an option 18:11 CiaranG I'll happily implement that, but it's definitely separate to this, which affects no mods, and just makes the server stop doing the same thing hundreds of times for no reason 18:15 CiaranG Could be a server option (off by default) to only calculate it if a mod requests it. It can be turned on when the relevant mods are updated. (or any time, if you know you're not using those mods) 18:16 sapier ok, I don't see a reason why this change should break anything and for my tests it works too. Does anyone know a reason not to merge it? 18:37 sapier ok pushing now 18:38 sapier ~ tell sfan5 did you find out why those version configs don't work for you yet? 18:38 ShadowBot sapier: O.K. 18:39 sfan5 sapier: no 18:39 sapier oh you're here good 18:39 sfan5 !tell sapier 眠り is Japanese for sleep 18:39 sfan5 did you get that? 18:39 sapier do you do a 32 or 64 bit build? 18:39 sapier no it did work for me 18:39 sfan5 32 18:40 sapier strange I can't build 32 bit due to a bug in porting.cpp ... it's quite obviously wrong in there 18:40 sapier hmm I didn't do a reclone ... I'll try this next 18:40 sfan5 it probably fails because I don't build in the src dir 18:41 sapier no it fails because of checking for a 64 bit thread in 32 bit mode ... that function isn't even available there 18:42 sapier you can check for a 32 bit thread on 64 bit os but not for a 64 bit thread on a 32 bit os 18:43 sfan5 I meant the winresource.rc thing 18:43 sfan5 wai.. 18:43 sfan5 wait...* 18:44 sapier I'm cloning to a new repo maybe mine works because of old things in there 18:44 sfan5 does it fail here? https://github.com/minetest/minetest/blob/master/src/porting.cpp#L307-308 18:46 sapier yes 18:47 sfan5 wat 18:47 sfan5 does your compiler support Win XP SP2? 18:48 sapier I don't know it's mingw with gcc-4.8.1 18:49 sfan5 gcc --version output please 18:49 sfan5 (only the first line) 18:50 sapier "gcc.exe (GCC) 4.8.1" 18:50 sapier not much mor information 18:51 sfan5 oh your are building on windows? 18:51 sfan5 mine is: ''i586-mingw32msvc-gcc (GCC) 4.2.1-sjlj (mingw32-2)'' 18:51 proller wider_unknown_count always = 0 18:51 proller wider_known_count always = 27 18:51 sfan5 well 18:51 proller last += active_object_count_wider += wid == always 0 18:51 sfan5 sapier: seems like your compiler does not support win xp sp2 18:52 sapier it's what mingw did install 18:52 sfan5 http://msdn.microsoft.com/en-us/library/windows/desktop/ms684139(v=vs.85).aspx 18:52 sfan5 Minimum supported client Windows Vista, Windows XP with SP2 18:52 sfan5 support = having the headers for it 18:53 sapier I guess it's more about the defined minimal windows version then about the header 18:54 sfan5 no 18:54 sfan5 the windows minimal version if defined 18:55 proller sapier, 18:55 proller 22:52:55: ACTION[ServerThread]: singleplayer [127.0.0.1] joins game. 18:55 proller 22:52:55: ACTION[ServerThread]: singleplayer [127.0.0.1] joins game. List of players: 18:55 proller wtf ? 18:56 sapier duplicated message 18:56 proller can you run game once per week to test your changes ? 18:56 sapier you already complained about that one weeks ago, it's non critical so I didn't fix it yet 18:58 sapier but thanks for reminding about it 18:58 proller if you broke something - its critical to fix it 18:59 sapier if it's as less as a duplicated log message for something where an additional fix is already scheduled I guess it's fine to fix both at once 19:00 proller its for every joined player 19:00 proller and contains broken player list 19:01 proller propose rule - every core dev must have running public server 19:02 sapier doesn't change fact this is cosmetic only of course it needs to be fixed but not critical 19:03 sapier you know you'd be out by this rule too? ;-) freeminer isn't minetest ;-P 19:04 kahrl proller: well spotted, the "wider_unknown_count = 0" in the inner if should be "wider_unknown_count++" 19:04 proller throw me from core then 19:05 kahrl anyway is it really not a problem that the wider object count isn't updated between ABM invocations anymore? (if I read the commit right) 19:05 sapier I didn't support your rule I just told you about possible sideeffects you may not have noticed 19:07 sapier kahrl you could be right about it there might be a corner case if a abm does spawn a entity 19:07 sapier abm based spawning might be affected if it uses that parameter 19:08 kahrl maybe ignore the objects in the current block (offset x=y=z=0) when first computing the wider object count 19:08 kahrl and add the freshly computed active object count (in the current block) to it on each ABM invocation 19:09 kahrl if we assume the ABM usually spawns entities in the current block, that should be good enough 19:13 sapier We should add a note to readme about that limitation 19:18 sapier pilzadam what do you use that parameter for? 19:21 CiaranG This would do it I think: https://github.com/CiaranG/minetest/commit/d43917e2f1a2d991237a069f0ceba166543f6f31 19:21 CiaranG kahrl: well spotted, thanks 19:22 kahrl I think you also need to set wider_known_count = 3*3*3 - 1 - wider_unknown_count 19:23 kahrl right? 19:23 sapier I'm not sure about it, if you can't rely on numbers they're often almost useles :-( 19:24 kahrl CiaranG: also as proller saw, wider_unknown_count needs to incremented, not set to 0 19:24 CiaranG kahrl: I'm thinking about that one 19:25 CiaranG Yeah, I was about to say, it hardly matters when the unknown count is always 0 ;) 19:26 CiaranG Yes, either it should be 3*3*3 -1, or the current block's count should be added in on the next line 19:27 CiaranG Either way would work, I don't really know which is better. One might result in a slightly different guess to the other. 19:28 kahrl I'm not sure actually 19:28 CiaranG Theoretically more accurate with the current block included, yes? 19:29 kahrl yep you're right 19:29 kahrl do whichever you like better 19:31 kahrl sapier: you have to guess these numbers anyway if there are nearby unloaded blocks 19:31 kahrl sapier: so I would say an estimate is fine 19:33 sapier You're right, I didn't think about that issue ... strange especially if I think about how much work I had to work around those issues for mobf spawning .... maybe because I didn't use that parameter anywa 19:33 sapier y 19:34 CiaranG Top 3 commits... https://github.com/CiaranG/minetest/commits/master 19:34 CiaranG I guess I should squash them. Any more comments first? 19:34 PilzAdam sapier, I use it to not spawn more mobs in areas that already have a lot of entities 19:34 kahrl hmm I don't think that formula is right 19:35 kahrl (I could be wrong though) 19:35 sapier I never used a total mob limit but a per mob limit so this parameter wasn't of use for me 19:35 kahrl shouldn't it be: active_object_count_wider += wider_unknown_count * (active_object_count_wider + block->m_static_objects.m_active.size() / wider_known_count; 19:36 kahrl s/()/())/ 19:37 kahrl right now it seems like you're adding the objects in the current block twice 19:37 kahrl with my formula they're only used for a better estimate of how many objects are in the unknown blocks 19:40 PilzAdam sapier, if there are 10 mobs of each kind, and you have 20 different mobs then you have a problem 19:40 CiaranG I'm only adding them once, they're skipped in the loop above 19:40 PilzAdam thats why I check the total count of entities 19:40 kahrl CiaranG: you add them again in the abm->trigger call 19:40 CiaranG Sorry, you're right 19:41 sapier I know but I do use a lot of other parameters for spawning too ;-) 19:44 CiaranG Ok, I fixed that. I think I'll test this a bit, seeing as it's never actually worked right with that count not being incremented. 20:02 CiaranG PilzAdam: your abms only spawn things in the block they're in, right? 20:23 PilzAdam CiaranG, no 20:23 PilzAdam it could be a the block above 20:24 PilzAdam I run it on stone with neighbors air, and spawn it above the stone node 20:28 sapier hmm maybe the only way to fix this problem is revert it ... :-( 20:28 sapier can we set a flag in add entity code and only rescan if this flag was set? 20:28 sapier that's ugly I know but it might work 20:29 proller фпфшт ыщдмштп гтучшыеуте зкщидуьюю 20:29 proller again solving unexistent problem.. 20:30 sapier can you be a little less destructive and give some suggestions how to fix it? that loop is quite crap but it's hard to fix it without breaking compatibility 20:32 sapier don't get me wrong, it's good if you find problems but sometimes you could provide a little bit more information about what IS the problem and ... in best case ... how to fix it ;-) 20:33 proller break compatibility. only user of this feature here and can modify mobs 20:34 proller and count it like old way if it requested 20:34 sapier it's the only one we know about, I guess you wont bet noone else uses it ;-) 20:37 sapier yes that's a possible solution but it's gonna require changes in at least two mods changes api and isn't way more clean then the flag ... at least in my opinion ... but I don't use that feature so I'd prefere those who are affected to decide 21:00 CiaranG Ok, I have another solution... https://github.com/CiaranG/minetest/commit/70663e7320e0979cbfbf6d48c491011ee3b60b6d 21:02 CiaranG Not 100% accurate - if the abm spawned an entity in a neighbouring block, the wider count would increase as expected, but so would the count for the current block 21:02 CiaranG It could be made accurate, but I'm not really sure it matters 21:14 sapier well that flag adds the ugly flag and isn't as accurate as before too not sure if it's really a step forward ... how much time is wasted on a single object count? 21:14 sapier would it be a big loss of time if we did a complete rescan on any added entity? 21:15 sapier I assume it's 99.99% where nothing is done (but that's a guess only) 21:23 CiaranG I don't think doing a complete rescan when an object was added would be a big deal. That would still need an ugly flag though. 21:24 sapier true but that's there in your latest suggestion too :-( 21:24 sapier as I said that flag solution is ugly ... but for now I've read no solution not requireing some flag 21:26 CiaranG Yeah. Might as well just rescan if an object is added then. 21:27 sapier this should be as accurate as before or am I wrong about it? 21:27 CiaranG Well it's already more accurate than before, it wasn't even counting the unknown blocks before 21:28 CiaranG But yeah, it should be as accurate as possible. Doing the rescan isn't going to cost much. 21:28 sapier does it do now? 21:28 CiaranG Yes - 4th commit down: https://github.com/CiaranG/minetest/commits/master 21:28 sapier the bad thing about this loop was doing it everytime so we still should get almost same speedup as without fixing that regression 21:29 CiaranG (I'll squash and tidy all this if and when we get to something good) 21:29 CiaranG Yeah, before it was scanning 4096 21:29 CiaranG times 21:30 sapier now it's most likely something around 0 times 21:30 sapier well not exactly "round" ;-) 21:30 CiaranG Ok, I'll make it rescan when there are new objects 21:32 sapier maybe extracting the scan to a function to avoid duplicated code? 21:32 proller still fighting... 21:33 sapier fighting? 21:34 proller with imagined problem 21:34 sapier proller I sometimes really wonder where you get all that anger from ;-) 21:34 sapier or is this just a cultural missunderstanding? 21:34 proller from merging your changes 21:35 proller and this too 21:51 CiaranG Ok, pushed another. So now it's 4095.9999 times faster than before, less buggy, and doesn't break any mod compatibilty 21:51 CiaranG (subject to me testing it) 21:58 celeron55 looks like yet another ancient protype-grade piece of code has finally taken it's final form 8) 21:59 sapier "final"? :-) 22:00 celeron55 "acceptable to the germans" 22:01 sapier I don't know that phrase but I take it as positive now ;-) 22:03 * celeron55 looks at git history 22:04 sapier well the last one on master requires fixing a regression ... last weeks I feel like people only start reviewing patches once they are merged :-( 22:05 celeron55 looks like the original code (written by me) was originally the way you're changing it to now but then i decided to change it to the unoptimized version when trying to quickly deal with the dungeon master spawning problems 22:05 celeron55 (that was 27 months ago) 22:06 sapier did you find the reason for those problems? 22:07 celeron55 i can't remember anything from that far back 22:07 sapier :-) was worth a try 22:08 proller celeron55, how many kilowatts of power was fired with this code!11 22:09 celeron55 in any case 0.3 has always had the optimal version 8) 22:09 celeron55 proller: think of all the warm air provided to kittens! 22:09 sapier true you're guilty for increasing global warming by at least some nanodegrees ;-) 22:09 sapier maybe less :-) 22:10 celeron55 actually it makes zero difference because if that code wasn't using the power, then it would have been simply used for rendering :P 22:11 sapier servers don't do rendering :-) 22:11 celeron55 there are like 5 minetest servers in existence 22:11 sapier so you admit it? ;-) 22:11 celeron55 and 5000 clients 22:11 celeron55 and the clients saved power because their power hungry GPU was idle while the cpu was busy executing that coode 22:11 celeron55 code* 22:12 celeron55 so actually you're the ones causing global warming! 22:12 proller 26 servers online!!! 22:12 sapier *g* ok if you count all those ppl giving up playing minetest because its too slow there are even more saved kw ;-) 22:13 celeron55 yes, maybe we should add some more power-saving loops 22:13 * ShadowNinja chuckles 22:13 sapier *g* right now I'd be more interested in gaining performance for android devices 22:14 ShadowNinja while(true) sleep(INT_MAX); <-- Best power saver. 22:14 celeron55 abort(); <- even better 22:14 sapier we're quite close to playable on almost all of my devices but 10 fps is a little bit low 22:14 ShadowNinja Hehe. 22:15 sapier IRC 25 fps is called fluid ... for my tests about 15 are enough to be at least a little bit playable for a minetest style game 22:18 proller ShadowNinja, 02:17:49: ERROR[ConnectionSend]: Bind failed: Socket and bind address families do not match 22:18 proller ipv6_server = 1 22:18 proller try it yoursel 22:18 proller f 22:18 kahrl and what is bind_address? 22:19 proller 02:17:49: ACTION[main]: Server for gameid="minimal" listening on 0.0.0.0:61660. 22:19 proller default empty 22:19 kahrl oh ok 22:19 proller 02:17:49: INFO[main]: Connecting to server at [::1]:61660 22:19 proller it must listen :: if no bind_addr 22:19 proller and ipv6_server=1 22:20 ShadowNinja Ok, so the default address for IPv6 isn't created properly? 22:20 proller yes 22:20 ShadowNinja It uses 0.0.0.0? Or ::1? 22:20 proller listening on 0.0.0.0:61660 for server 22:20 proller [::1]:61660 for client 22:20 ShadowNinja Ah, ok. 22:20 proller client ok, server wrong 22:20 kahrl couldn't we retire ipv6_server and replace it by bind_address=:: 22:21 proller but not ::, in C must use define 22:22 ShadowNinja kahrl: Yes, but that would require a fair amount of work as sockets, conns, and the like all take a ipv6 bool. 22:23 proller in6addr_any 22:23 kahrl proller: I meant let the user define bind_address=:: in minetest.conf 22:23 sapier conns just passes that parameter there ain't much to do 22:24 sapier user can already define :: as bind address 22:24 proller 02:24:21: ACTION[main]: Server for gameid="minimal" listening on :::64635. 22:25 proller 02:24:21: INFO[main]: Connecting to server at [::]:64635 22:25 proller fail ;) 22:25 proller connect must be to ::1 22:26 sapier hmm guess that ipv6 code requires some rework as it connects to specified bind address 22:28 proller same for ipv4, you can listen 0.0.0.0 and cant connect to it 22:28 sapier ok so we've got same bug in ipv4? 22:29 proller yes 22:29 sapier It's gonna be hard to fix this for ipv6 .... quite a lot ways to write :: 22:29 proller 02:29:30: ACTION[main]: Server for gameid="minimal" listening on 0.0.0.0:59421. 22:29 proller 02:29:30: INFO[main]: Connecting to server at 0.0.0.0:59421 22:29 sapier but we could just translate to binary and check the binary representation 22:31 sapier all notations have to translate to char[16] = { 0 } 22:31 sapier or byte{16] 22:32 sapier so two bugs in there 1. ipv6 setting doesn't switch server to ipv6 and second if you specify a bind all address you can't directly connect (independent of ip version) 22:42 proller no, only second 22:44 sapier first one isn't there? 22:45 proller yes 22:50 kahrl what code actually tells the client to connect to bind_addr? 22:51 sapier server->start 22:51 CiaranG If anyone can spot any more problems with #1169 that would be good 22:51 ShadowBot https://github.com/minetest/minetest/issues/1169 -- Update ABM object counts when triggers add objects by CiaranG 22:51 sapier as of that point the address is passed till socket 22:52 sapier CiaranG: I suggest letting it settle down till tomorrow and then merge it 22:53 CiaranG Yeah, I'll test it more tomorrow, I suggest definitely not merging it until I say I've done that 22:54 kahrl sapier: ah I was wondering how it got from there to the client 22:55 kahrl but address = bind_str in game.cpp:1140 does that