Time Nick Message 01:19 paramat hi hmmmm i followed your advice and used bright nodes enabled in all biomes, but can't get noise varied decoration density to work. i suspect i have the wrong format here https://gist.github.com/paramat/05d14c973db2dfc080cb because changing or even removing the noise parameters has no effect, decorations have a constant density with average separation of roughly 8 01:21 hmmmm oh pfg 01:21 hmmmm you have the wrong key for the noiseparams 01:21 hmmmm it's not np, it's noise_params 01:21 hmmmm lol 01:21 paramat oh cool 01:21 hmmmm i just cross checked with my test decoration script 01:22 paramat thanks 01:22 hmmmm i assume that means lua_api.txt is wrong 01:23 paramat i made a start on default biomes for mgv5/v7 https://github.com/paramat/minetest_game/commits/mgv5biomes trees are placed as saplings, papyrus and cacti are 1 node high, pine trees are coming soon 01:24 paramat erm lua api txt has no documentation for biome API? 01:30 paramat hmmmm you were asking for an idea of how to make schematics. making them in-game and then saving is good and intuitive, but the probability list is awkward. how about the player crafting then placing nodes with built-in chosen probabilities, maybe as meta-data? these are then read when saving the schematic 01:43 paramat not crafting ... better to have a tool that when used on a node reduces it's probability from 255 in steps of say 16 01:47 paramat that could be done in lua, core code then reads node metadata as per-node probabilities 02:13 paramat agh! decoration noise parameters are indeed correctly documented in lua-api.txt, how embarassing, i had assumed they weren't and didn't look 02:30 hmmmm paramat, yeah, the biome api is not there because it was never officially 'released' 02:31 hmmmm you're right about the node probability thing, a tool would work well there 02:32 hmmmm thing is that can all be done in lua... I wrote the worldedit mt schematic commands, but i'm sure somebody more devoted to worldedit could improve it 02:32 hmmmm i hoped somebody would come along and improve it anyway but it seems like nobody has 02:33 hmmmm either way, probability y-slices are completely unimplemented by anybody as far as i know 02:33 hmmmm (this is how you have a tree have variable heights, for example) 02:33 paramat i will use that certainly 02:34 hmmmm the tree model I've been using right along doesn't have y-slice schematics because I'd have to create a new one 02:34 hmmmm y-slice probabilities i meant to say 02:39 paramat hmmmm, line 2676 https://github.com/minetest/minetest/blob/master/doc/lua_api.txt#L2676 can the per-node probability list be added here too, currently it seems y-slice list only 02:55 paramat bbl 06:03 Zeno` for comment: https://github.com/Zeno-/minetest/commit/8bae5c9f520417c9cc6c3269f4125882b70ac199 06:16 kahrl Zeno`: I don't have the energy to look at it in detail right now, but is const MapNode& really an improvement over MapNode? 06:16 hmmmm of course not 06:16 kahrl I mean MapNode is just a 32 bit number 06:17 kahrl also v3s16 is essentially just a 48 bit number 06:17 Zeno` No it's not 06:17 Zeno` It is now, yes 06:17 kahrl Zeno`: once the compiler has inlined and optimized the copy constructor, it is 06:18 Zeno` Well I can get rid of all of those 06:18 Zeno` the real thing I was looking at was copyFrom 06:19 Zeno` but you know what? Making the v3s16 does make an insignificant difference 06:20 Zeno` making it const& 06:20 hmmmm maybe on 32 bit machines 06:20 Zeno` Maybe that's it 06:21 Zeno` It'd make a small difference on 64-bit as well with unaligned data 06:21 Zeno` Not that I'm really concerned about micro-optimisation 06:22 hmmmm unless you're doing something really odd intentionally, you're always going to have things aligned properly 06:22 Zeno` correct 06:23 Zeno` The only big speed difference is voxel.cpp changes anyway 06:23 Zeno` Which is probably all I'll put in a PR when I get to it 06:24 Zeno` (my branches are not PR worthy most of the time, which is why I didn't make it a PR yet hehe) 06:24 kahrl from what I can tell it looks correct 06:28 Zeno` I don't think gcc constructor optimisation is doing a good job heh 06:28 Zeno` I'll look at the asm more closely later tonight 06:29 hmmmm yeah people often take gcc optimization for granted but i've been quite disappointed often 06:32 Zeno` It does a good job 99.99% of the time 06:32 hmmmm what would you expect it to do with code like 06:32 hmmmm if (strlen(foo) < sizeof(buf)) strcpy(buf, foo);? 06:33 hmmmm it outright refuses to inline both and optimize the result no matter how hard you cajole it to inline common string functions 06:33 hmmmm just an example, but i've seen other issues similar to this 06:34 Zeno` I guess... but strlen iterates and strcpy (in glibc at least) is a single CPU instruction (after some fancy byte aligning stuff) 06:35 hmmmm are you sure gcc uses that? 06:35 Zeno` did last time I looked 06:35 Zeno` about a year ago 06:35 hmmmm on modern architectures it's faster to write risc-y code rather than rep mov* instructions 06:36 Zeno` it's a SIMD instruction I think 06:36 hmmmm by modern I mean like even the athlon 64 optimization guide recommends you to prefer a mov/cmp/jxx sequence over rep movsb 06:36 Zeno` hmm not that 06:36 hmmmm string SIMD functions? 06:37 Zeno` nah, I was thinking of something else 06:37 hmmmm well i'm not aware of any such things in SSE2 or prior 06:38 hmmmm oh 06:38 Zeno` Maybe I'm thinking of BSD libc... I can't for the life of me remember, but I do remember looking at it 06:39 hmmmm what i was looking at in particular was more along the lines of 06:39 hmmmm strcpy(foo, bar); foo += strlen(bar); 06:39 hmmmm the latter strlen could be trivially optimized into a single subtraction if strcpy() were inlined 06:39 Zeno` I was thinking of memcpy() and not strcpy() as well lol 06:40 hmmmm yeah, that's a little different... 06:40 Zeno` yeah ok, that's something I would expect 06:40 hmmmm microsoft visual C inlines memcpys by using the rep mov** way 06:40 hmmmm like 06:41 hmmmm mov ecx, len///shr ecx, 2///rep movsd///mov ecx, len////and ecx, 3///rep movsb 06:41 hmmmm at least as of 2008 06:41 hmmmm kind of disappointing 06:43 paramat `=i have segfaults each time 06:43 paramat oops 06:44 paramat .. i try to use manually coded schematics https://github.com/minetest/minetest/blob/master/doc/lua_api.txt#L2678 06:44 paramat `=P 06:45 Zeno` I still think passing the v3s16 stuff as const& is better even if it's not faster, just so it's obvious they're not modified 06:45 Zeno` perhaps gcc is more aggressive with const& optimisations as well (who knows) 06:48 paramat so i have noise-varied decoration density working but now manually coded schematics segfault with seemingly nothing suspicious in verbose debug.txt, my code https://gist.github.com/paramat/b5ecdfd28296bed6e582 06:49 hmmmm you know zeno`, a value v3s16 might be faster due to cache locality 06:49 Zeno` It might be 06:49 hmmmm what if the v3s16 you're referencing is in an object on the heap that happens to fall out of the cache rather quickly 06:49 hmmmm whereas on the stack it'd be better 06:50 Zeno` I'll remove those but I'll check the asm as well (just for my own interest/learning) 06:50 Zeno` yes, that's true 06:50 hmmmm or maybe if all the pieces of data it's working with are on the stack in the same cache line, freeing up cache to be used for something different 06:50 Zeno` since they're tiny objects you're most likely right 06:50 hmmmm hey paramat, do you have a backtrace? 06:51 hmmmm i don't doubt there's a problem with schematics because i did a lot with them recently 06:54 paramat i don't know what a backtrace is, you want to see the end of debug.txt? 06:54 paramat there were no error messages 06:55 paramat i haven't tried a 'debug build' 07:19 Zeno` no time like the present to learn :) 07:30 paramat yeah i probably will soon 08:30 Zeno` weird. I didn't even realise I was disconnected 10:19 Zeno` any comments on #1707 ? 10:19 ShadowBot https://github.com/minetest/minetest/issues/1707 -- Right mouse button behaviour for craft/inventory by Zeno- 10:29 Megaf Zeno`: I don't undertand that 10:29 Zeno` ? 10:30 Megaf I don't get what you mean 10:30 Zeno` It changes how "auto drop" works 10:30 Zeno` e.g. at the moment right click (mouse) on something in yuor inventory and drag it around, over empty slots and also non-empty slots 10:30 Zeno` observe the behaviour 10:31 Zeno` the patch changes that behaviour to only work if you right-click, release, and right-click hold 10:33 Megaf Zeno`: I have never noticed that... 10:33 Zeno` e.g. at the moment right click (mouse) (and hold it*) on something in yuor inventory and drag it around, over empty slots and also non-empty slots 10:33 Megaf Why would I drag an item arround with right click :S 10:33 Zeno` it was added a few months ago and I think it's terrible 10:34 Megaf Who are taking such stupid decisions? 10:34 Megaf common 10:34 Megaf first we can no longer build where we stand, and now this 10:34 Megaf they are just turning minetest in another thing that is no longer minetest 10:35 Megaf changing its all default behaivour 10:35 Zeno` this new patch changes the behaviour as well, but it's much closer to how it was before 10:35 Megaf Zeno`: Can't you totally disable that? 10:36 Megaf I see no point in keeping that 10:36 Zeno` *shrug*, click, hold, click-hold requires a conscious decision. If you don't do it will behave as before 10:36 Megaf usually we want to make room in our inventory, instead of illing everything and using all the space 10:36 Zeno` well, it can be handy for dividing up items but as it is (before the patch) it's totally broken (IMO) 10:37 Megaf Zeno`: I actually have been thinking on another thing. At the moment when you left click an item in your inventory you take it and hold it, I think it should only grab if you keep the left button pressed, and let it go when you drop it 10:37 Megaf or something like that 10:38 Zeno` well that's a similar issue 10:38 Zeno` atm the left and right mouse buttons behave differently 10:38 Zeno` which is crazy 10:39 Megaf I like the wayt right click graps half of the stack, that is quite useful 10:39 Zeno` here is the commit: https://github.com/minetest/minetest/commit/f6321e277bc423a0878ae239a73ad2cd6393106c 10:39 Zeno` yes, my patch still does that 10:41 Zeno` https://github.com/minetest/minetest/pull/1661 10:42 Zeno` There was more discussion that I cannot find 10:42 Zeno` ShadowNinja said he'd support things if it behaved the way my PR behaves 10:42 Megaf I upvoted already 10:48 Zeno` Here we go: https://github.com/minetest/minetest/pull/1704 10:48 Zeno` see ShadowNinja's comment on Oct 1 10:48 Zeno` and that is what my patch does 10:51 Zeno` so, effectively, SN has already said ok to my patch 10:51 Megaf all right 10:51 Zeno` But I'd like confirmation heh 18:44 Krock src\main.cpp(1112): error C2065: 'argc': Undeclared identifer 18:45 Krock src\main.cpp(1112): error C2065: 'argv': Undeclared identifier 18:45 Krock compiling fails on MSVC 18:47 Krock oh great. an '#ifdef _MSC_VER' is there around the code 18:57 Krock sfan5, could you use this patch http://pastebin.com/EfxsBebb please to fix compiling issues under windows? 19:38 * Krock wonders if PilzAdam could fix it insted because there's a total silence 19:47 * RealBadAngel wonders if PilzAdam is an active contributor... 19:48 RealBadAngel i havent saw any PA's code since ages 19:52 RealBadAngel PilzAdam, what are your plans? 20:08 kilbith *active blocker 20:10 Amaz No need to wonder about that kilbith! 20:10 kilbith lol