Time Nick Message 01:24 Pulec_MC hello! 02:14 hmmmm hiho 02:15 hmmmm alright, stand back ppl 02:15 hmmmm i'm going to do some minetesting 02:22 Pulec_MC watchout1 02:34 VanessaE uh oh 04:33 Nate123 has anybody else tried using "animals_modpack" on the latest dev build? I'm not getting anything to spawn on my pre-existing map. 04:46 Nate123 "gives vo?ice to Zeno"?? Does that mean I don't have a voice yet 04:46 Nate123 ? 04:49 Wayward_One Nate123: we can still see your messages, if that's what you mean 11:02 Zeno` Slow day 12:15 gregorycu Yeppers 12:15 gregorycu I went into work today, it was good 12:20 Zeno` hah :) 12:25 Zeno` Any objections to merging #2172? It has now been tested using French 12:25 ShadowBot https://github.com/minetest/minetest/issues/2172 -- Allow filter and mipmap drop down menues to be translated by Zeno- 12:26 sfan5 Zeno`: looks good 12:26 Zeno` ok, cool. Thanks sfan5 12:26 Zeno` will merge shortly 12:45 gregorycu Zeno`: I think I found something unusual 12:45 gregorycu I believe we store a lot of our node data in column major format, but our access patterns assume row major 12:46 Zeno` err 12:46 Zeno` so why aren't there issues? 12:46 Zeno` everything should be row major (IMO) 12:47 Zeno` nobody uses column major without a reason 12:49 gregorycu Can you look at VoxelArea::index 12:49 gregorycu And just make sure I'm correct 12:49 gregorycu My poor mind is tired 12:51 Zeno` link 12:52 gregorycu Are you on linux? 12:52 Zeno` yeah 12:52 Zeno` why? 12:52 gregorycu /home/zeno/minetest/src/voxel.h 12:52 Zeno` lol 12:52 gregorycu ;) 12:53 gregorycu One sec 12:53 Zeno` you're just trying to stop me being lazy 12:53 gregorycu I'm sorry sir, it won't happen again 12:54 Zeno` that's row-major 12:54 gregorycu https://github.com/minetest/minetest/blob/master/src/voxel.h line 277 12:54 gregorycu No it aint' 12:55 gregorycu Every change in z is amplified by length_y * length_x 12:55 gregorycu The z's should all be clustered together 12:56 Zeno` nah, that's row-major with the expression written backwards to how you'd normally see it 12:57 gregorycu Sounds like you're doubting me 12:57 Zeno` I am 12:57 Zeno` :) 12:57 gregorycu I'm going to paste it here without the offsets 12:57 gregorycu s32 i = (s32)(z)*em.Y*em.X + (y)*em.X + (x); 12:57 Zeno` yeah, that's row-major 12:57 gregorycu If I were to increment z, how much would i get incremented? 12:58 Zeno` em.Y*em.X 12:58 gregorycu Right... 12:58 gregorycu um... 12:58 gregorycu So that's column major... 12:58 Zeno` it really should be written x + y*em.X + z*em.Y*em.X 12:58 gregorycu Ok 12:59 Zeno` or maybe I am confused 12:59 gregorycu But em.Y*em.X is still the difference between zs 12:59 Zeno` it certainly looks like row-major to me 12:59 gregorycu The order doesn't confuse me 12:59 gregorycu From wikipedia: In row-major order, the last dimension is contiguous 12:59 gregorycu The last dimension here is z 13:00 gregorycu Which means an increase of 1 to z, must be an increase of 1 to i 13:00 gregorycu Instead it's a whole jump away 13:00 Zeno` where are the row-major references in the code then? 13:02 Zeno` http://en.wikipedia.org/wiki/Row-major_order 13:02 Zeno` look at the Row-Major Order e.g. C table 13:03 Zeno` also note the "(Note this is the opposite of Cartesian conventions.)" 13:04 gregorycu Are you saying wikipedia is being inconsistant? 13:04 gregorycu "In row-major order, the last dimension is contiguous" 13:05 gregorycu The last dimension here is z 13:05 gregorycu Look at the address calculations 13:06 Zeno` int char a[xd][yd][zd]; 13:06 Zeno` wait, using 2 dimensional 13:06 Zeno` int char a[rows][cols] 13:07 Zeno` hmm 13:07 Zeno` now I've confused myself lol 13:07 gregorycu It happens when you're wrong 13:07 gregorycu The next stage is acceptance 13:07 Zeno` nah, I want to stay in denial 13:07 nrzkt oh, this calcul can be optimized 13:08 gregorycu The good news is that we assume column major in many places 13:08 Zeno` so let's look at http://en.wikipedia.org/wiki/Row-major_order again 13:08 Zeno` given int char a[rows][cols]; what would you expect the formula to be 13:08 nrzkt please factorize em.X 13:09 gregorycu For row major? 13:09 Zeno` yeah 13:09 gregorycu i = r * cols + c 13:09 nrzkt s32 i = (s32)(z-off.Z)*em.Y*em.X + (y-off.Y)*em.X + (x-off.X); must become 13:09 nrzkt s32 i = ((s32)(z-off.Z)*em.Y + (y-off.Y) *em.X + (x-off.X); 13:10 nrzkt s32 i = ((s32)(z-off.Z)*em.Y + (y-off.Y)) *em.X + (x-off.X); sorry 13:10 Zeno` er ryes 13:10 Zeno` err yes* 13:11 nrzkt same line 308: i += a.Z*extent.X*extent.Y + a.Y*extent.X + a.X; must become i += (a.Z*extent.Y + a.Y) *extent.X + a.X; 13:11 gregorycu To be honest, I'm looking at the definition of row-major is terms of the maths 13:11 Zeno` yeah, so this all row-major? 13:11 gregorycu Not the terms row or column 13:12 gregorycu What nrzkt is posting is column-major 13:12 gregorycu What I just posted was row-major 13:12 Zeno` yeah ok 13:12 Zeno` you're right 13:12 Zeno` I am tired 13:13 gregorycu On the plus side, I'm wrong, a lot of code assume column major 13:14 gregorycu So, it's surprising for the casual observer, but not slow 13:14 Zeno` perhaps that's so it's consistent with opengl? 13:14 Zeno` geez, there needs to be more comments 13:14 Zeno` i.e. why decisions were made etc etc et 13:15 Zeno` and a comment saying "this is column-major" 13:15 Zeno` so tired people don't get confused 13:15 Zeno` I do remember this now when I was rewriting something 13:16 Zeno` one of the blit functions I think 13:16 gregorycu How do I undo the most recent commit? 13:16 Zeno` in master? 13:17 gregorycu No, in a branch 13:17 T4im if you locally did a commit and want to change it, change the file, add it to the index and git commit --amend 13:17 Zeno` git reset --hard HEAD~1 to nuke it forever 13:17 gregorycu No, I pushed it, like the fool I am 13:18 T4im then you can over-push it with git push -f 13:18 gregorycu What does that do? Undo the last push? 13:18 gregorycu Oh, do the reset, then that? 13:18 T4im in combination with zeno's snippet yes 13:18 gregorycu ok 13:18 T4im reset works locally only, the force-push makes it happen on the remote side 13:19 T4im note: with --hard the file vanishes that you changed 13:19 gregorycu yay! It's gone 13:20 gregorycu THank you 13:21 Zeno` yeah, it's relatively "dangerous" 13:21 Zeno` but often what you want 13:22 Zeno` I would not do it on upstream/master for example 13:22 Zeno` people would kill me 13:22 T4im well dangerous :P I think short of gc-pruning and rm -rf .git you cannot loose a file so easily in git 13:23 gregorycu Anyway, I have a PR coming that speeds up Profiler::ave by a factor of 10 13:23 gregorycu Takes it from 1% down to 0.1% 13:23 T4im --mixed and paramterless is often usefull too 13:23 Zeno` T4im, that's all true. I meant "dangerous" in a casual sense heh 13:24 T4im :D 13:24 Zeno` some of the Profiler things should be surrounded by #ifndef #endif IMO, but that's for another day 13:25 Zeno` #ifndef NDEBUG* 13:25 Zeno` gotta fix assert first :) 13:26 gregorycu #2173 13:26 ShadowBot https://github.com/minetest/minetest/issues/2173 -- Speed up Profiler::ave by a factor of 10 by gregorycu 13:26 gregorycu I'm off to bed, have fun 13:28 Zeno` nrzkt, still no problems with the new network code 13:28 Zeno` I'd say it's baked and ready to merge. Better check with sapier though 13:31 Zeno` bbiab 13:38 vitaminx hi everyone, i've got some weird problems with minetest-server 13:38 vitaminx debug_log_level = 3 and profiler_print_interval = 10 13:39 vitaminx however, profiler output just stopped after an hour running - there is no new output in debug.txt 13:39 vitaminx and for some strange reason there are also no messages from "Emerge Thread" after an hour or so 13:40 vitaminx they just stopped logging for no apparent reason and the only debug messages i get now are from "ServerThread" 13:40 vitaminx weird, no? 13:41 vitaminx any idea? 13:53 vitaminx apart of that everything seems normal, players dont notice anything, new players connect normally... 14:13 vitaminx no one? never happened to anyone that the profiler stopped logging? 14:58 shadowzone Hello Zeno` 14:58 Zeno` hi 15:18 nrzkt hi zero 15:18 nrzkt sorry i didn't have time to answer . Thanks for your message, PR2 is quite good and is nearly ready for review :) 15:18 kilbith Zeno`, not zero 15:19 nrzkt Zeno*, sorry i have a guildmate which name is Zero :p 15:19 Zeno` I'd like to see Wayward_One's performance profile before committing the network code, though 15:19 Zeno` I've asked him to produce one (with instructions) 15:19 kilbith (you can use the autocompletion with [Alt] key) 15:20 nrzkt i'm using pidgin, no autocomplete :p 15:54 Wayward_One Zeno`: profile is almost complete 15:54 Zeno` Wayward_One, no rush :) 15:54 Zeno` how long are you letting it run for? 15:55 Wayward_One how long does it need? i was thinking at least 40 minutes 15:55 Zeno` yeah, that's probably long enough 15:56 shadowzone What for? 15:56 Wayward_One ok 15:58 Wayward_One shadowzone: #2145 15:58 ShadowBot https://github.com/minetest/minetest/issues/2145 -- Multi-second lag in default singleplayer game 15:58 shadowzone Oh. 16:24 Wayward_One Zeno`, just finished, but there seems to be two outputs, one much larger than the other. shall i paste both? 16:24 Zeno` two? 16:24 Zeno` what are they named? 16:24 Zeno` There should only be one, but maybe it got split 16:25 Zeno` Highlander: There can be only one 16:25 Zeno` heh 16:26 Wayward_One oh, nvm, the first whas when i exited due to one of these: ERROR[main]: ServerMap::loadMapMeta(): could not open/home/mint/minetest/bin/../worlds/newtest/map_meta.txt 16:26 Wayward_One -h 16:28 Zeno` Wayward_One, depending on how large it is, GitHub may not be the best place to "paste" it 16:29 Wayward_One yeah, i'm uploading it to my dropbox 16:30 Wayward_One here it is: https://www.dropbox.com/s/988wurahjnuucud/callgrind.out.28254?dl=0 16:31 Wayward_One should i put it on github too? 16:36 Zeno` well, it's pretty big :) 16:36 Zeno` yeah put the link on github so others can look at it (mention what it is... callgrind output) 16:37 Wayward_One ok, yeah, that's what i meant :P adding now 16:38 Zeno` Also, your CPU 16:39 Zeno` also, check minetest.conf num_emerge_threads if it's there 16:41 Wayward_One My CPU? as in the type...? 16:41 Zeno` Wayward_One, seems to be a fairly good snapshot. I'll look at it more closely tomorrow as it's 3AM (almost here) 16:41 Zeno` yeah, CPU model name 16:42 Wayward_One ok, sounds good :) 16:43 Zeno` maybe someone else will look at it and find a solution before I wake up :) 16:51 Zeno` Wayward_One, thanks for producing that file 16:51 Zeno` it will be helpful 16:56 Wayward_One no problem :) 19:39 ShadowNinja Look good? Fixes MB/s -> MiB/s: http://sprunge.us/KecK?diff 19:39 ShadowNinja Alternatively it could actually use MB/s. 19:40 ShadowNinja (ditto for KB/KiB) 19:43 rubenwardy It it currently /1000 or /1025 ? 19:43 rubenwardy Oh, /1024 19:43 rubenwardy Nevermind 19:44 Calinou ShadowNinja, yes, please do 19:44 Calinou needs to be fixed in translations though, will be done over time 19:44 Calinou (French is Kio/Mio/Gio/…) 19:55 hmmmm ShadowNinja: Oh please don't do that 19:55 hmmmm I can't stand seeing "KiB" 19:57 hmmmm and you say "fixes" like KB/s and MB/s is wrong 19:57 Calinou /1000 is a standard… 19:58 ShadowNinja hmmmm: It is wrong. It uses MiB/KiB but displays it as MB/KB. Aither it should calculate MB/KB or it should use the proped postfix. 19:58 Calinou more than Windows using /1000 and showing “KB” to the user 19:58 ShadowNinja Either* 19:58 hmmmm KB and MB have come to mean different things in different contexts 19:59 hmmmm Hard drive manufacturers started using it to mean the definition that better suits their needs 19:59 hmmmm and then everybody else bends over backwards because of that? 19:59 hmmmm and creates a brand new set of units 19:59 hmmmm when I see "KB" and it's related to network traffic, I expect it to mean 1024 bytes 20:00 ShadowNinja Well, /1000 is standard for other measurements, like meters and liters. 20:00 hmmmm people who change the abbreviations to "KiB" and "MiB" are pedantic nutjobs that belong on wikipedia and have too much free time 20:02 ShadowNinja *sigh* 20:02 ShadowNinja Welp, back to the stash it goes.