Time Nick Message 03:16 paramat celeron55, hi, i found a bug with custom skybox, causes segfault (core dumped) with no error message, when switching from "skybox" to "plain" or "regular", details and code are here https://gist.github.com/paramat/b93f0d78319a23f47815 the mod repo here https://github.com/paramat/stack 07:54 raffahacks hello, why does mt crash with segmentation fault on armv7 allwinner a20? thanks 07:58 raffahacks can anyone help? 08:13 raffahacks nobody? 08:16 sfan5 raffahacks: make a debug build, run it with gdb, pastebin the output of 'bt full' after it crashes 08:16 raffahacks ok thanks 09:34 celeron55 paramat: Fixed 14:13 sapier can someone tell me where we create the sign texture? the one with text in it 14:39 sapier hmm doesn't seem to be a minetest feature does anyone know what mod is responsible for doing this? 14:40 sfan5 'signs' mod 14:40 PilzAdam sapier, there are 3 mods that do that 14:40 PilzAdam they all use entities and [combine 14:41 sapier I managed to track down vanessae's server spawn issues to this particular feature ... I'm at about 15fps till those texures are loaded ... then speed drops to 1fps 14:42 sfan5 using multiple [combine 's is very inefficent 14:42 sapier btw I've got a bunch of performance fixes that require review .. they manage to increase those 1fps to 5fps 14:42 sfan5 (but the only thing possible) 14:43 sapier usually I don't believe in "the only thing possible" if this only thing is crap ;-) 14:43 VanessaE heh 14:43 sfan5 [combine was not designed to run up to 100 times 14:44 sapier what about adding some sort of caching mechanism? 14:44 sapier we don't have to combine 100 times if nothing changed 14:46 VanessaE are you saying the compositing is re-run every frame?O_o 14:46 sapier sometimes replacing cpu by memory usage is more then worth it, e.g I managed to increase speed of some functions called multimilion times within 10 seconds by a factor 4 ... just by using 256k memory 14:46 sapier of course 256k is a lot 14:47 sapier but considering the amount of ram provided even by slow devices it's nothing 14:47 sapier VanessaE there are even more quite stupid things in minetest 14:47 VanessaE sapier: sure, but that doesn't answer my question ;) 14:48 sapier true :-) ... I don't know if it's done every time but I'd not be surprised 14:48 VanessaE with a proposal THAT stupid, I refuse to assume the affirmative here., 14:49 VanessaE which means with the new full-color signs it's gonna get a little worse isn't it 14:52 sapier well ... signs could be disabled ... compared to other things I've seen the last days those are minor issues 14:52 sapier drawing code is full of things that called "endless loops" withing high performance code 14:53 VanessaE seems like compositing is something that belongs strictly at startup 14:53 VanessaE and perhaps even server-side 14:53 VanessaE well maybe not 14:53 sapier doing things like iterating through maps ot lists of unknown size to lookup a single value is just insane 14:53 VanessaE but definitely NEVER in the render pipeline 14:53 VanessaE (not the way minetest does it that is) 14:55 VanessaE compositing should be done one time and one time only - at the moment the Lua code calls for it to be done. from then on the final composited image should be used, since that is the only image the client has a handle to anyway 14:55 VanessaE (I would have assumed that's what was being done anyway) 14:56 nore VanessaE, I would have said: when the client try to display the image for the first time 14:56 VanessaE nore: perhaps, but that means the rendering pipeline has to call for it. 14:56 nore put it in a cache, and delete images older than something like 10 mins in the cache 14:57 VanessaE that's a good idea 14:57 nore VanessaE, that's not a problem if it's only done once 14:57 VanessaE hell even a few seconds is probably too old 14:57 VanessaE (but your point stands0 14:57 VanessaE ) 14:58 nore a few seconds is perhaps not the best idea: see the spawn of your server (creative): the displays change with ~30s period 14:58 VanessaE this is true 14:59 VanessaE 10 mins is fair 15:12 sapier lol I never realized nodes "growing" on android by no but it's in there for quite some time 15:14 sapier #1356 is a set of patches speeding up android port quite a lot, effect on pc is mesurable too (by gperf) but I didn't notice it on playing 15:15 ShadowBot https://github.com/minetest/minetest/issues/1356 -- Perf fixes june 2014 by sapier 15:15 sapier please really READ the code it might contain hidden bugs 15:17 VanessaE inb4 proller claims 1000 lines of useless spacing changes ;) 15:17 VanessaE (I'll pass on reading it because I won't understand it anyway) 15:18 sapier Most likely that one is to review by experienced coders only 15:18 sapier of course there may be coding style issues too but the more critical ones will be issues I didn't realize on optimizing 15:18 VanessaE *nod* 15:19 VanessaE btw if the textures are all-white now it's because of the same issue as some others had - they would have been all-black before, 15:19 proller sapier, how you test your changes? 15:20 sapier I'm gonna provide a new android build soon for anyone to check ... as I said I managed to get 4-5 fps on your spawn instead of 0-1 ... even while the sign bug is still present 15:20 VanessaE but kaeza inverted the font to make the coloring work (now it works like a stencil), which is probably why it whites-out instead of blacking-out,. 15:20 sapier proller define test? 15:21 VanessaE sapier: hit me with the new build when you get a chance and I'll try it out (for me, the signs' text worked fine in the last test). Also, did you already revise how you were making the inventory images? 15:21 sapier last build did contain the screenshot hack but in it's new drastically faster version 15:21 PilzAdam sapier, could you please pin a note next to your monitor that says: "Spaces after ," 15:22 sapier next to which screen PilzAdam ? ;-) 15:22 PilzAdam all of them 15:23 sapier I'm gonna fix it but plz try to read the code and find cases I may have missed on doing my optimizations 15:26 sapier Maybe someone even knows a better way of optimizing it, some of those locations are still bottlenecks 15:30 sapier PilzAdam: I didn't find anything else except that memset in first commit ... any other space I missed? ;-P 15:31 PilzAdam also add spaces around binary operators 15:31 sapier where? 15:32 PilzAdam in the same memset line 15:32 sapier that's not a binary but a plain operator ... and yes I fixed that one too ;-P 15:33 PilzAdam "plain operator"? 15:34 sapier binary operators are & | and things like that to me 15:34 sapier but not * / + - 15:34 PilzAdam binary operators are operators with 2 "sides", e.g. + - * / % 15:35 sapier ok so your naming is the sides ... well I distinguish as of type of operation 15:35 PilzAdam wikipedia: "Binary operation – Not to be confused with Bitwise operation." 15:36 sapier & | ~ <<(c) >>(c) 15:36 sapier are binary 15:36 sapier ok bitwise .. obviously I got confused too ;-P 15:37 PilzAdam I get about 4 FPS more with your branch in a "standard" minetest_game world 15:37 PilzAdam maybe a bit more 15:37 sapier what's your base fps rate? 15:37 PilzAdam I fixed the view range 15:38 sapier 4 fps more would be great 15:38 PilzAdam what do you mean by "base fps rate"? the conf setting? 15:38 sapier no 4fps more starting from 100fps or 10fps 15:39 PilzAdam 30 FPS (+4 with your branch), view range is 100 15:40 sapier wow that's about 10% 15:40 sapier I didn't expect it to be more then a few % on pc 15:40 VanessaE PilzAdam: try it ay Vanilla spawn 15:40 VanessaE at* 15:41 VanessaE no fancy pipes there, just signs and regular nodes 15:41 PilzAdam VanessaE, it would be 0 FPS vs. 0 FPS ;-) 15:41 VanessaE there's literally nothing there that should theoretically slow the client down (sapier's discovery aside that is) 15:41 PilzAdam oh, no pipes 15:42 sapier PilzAdam: I managed to get from 0 to 4 ... wonder if it's not a percentual improvement but a fixed 4fps improvement ;-) 15:44 PilzAdam VanessaE, the blocks load too slow 15:45 VanessaE O_o 15:45 PilzAdam sapier, also without your branch, it "started" at 26 FPS, and then slowly got faster, while youre branch started at about 36-38 and then dropped to 34 FPS 15:45 VanessaE that server's quite well-tweaked to load super fast, wtf 15:45 PilzAdam VanessaE, whats your block send distance? 15:46 VanessaE whatever the default is. 15:47 sapier well I replaced some dynamic things by fixed ones ... no idea what sideeffect on memory allocation this might trigger 15:47 VanessaE server's disk, CPU, and network load look good, so unless it's another setting I have to change, it must just be the pipe between you and Canada where my server is 15:48 PilzAdam I get about 30 sec lag on /status, and Im the only client on 15:49 VanessaE it's instantaneous for me. 15:49 PilzAdam don't you sit like 5 meters away from the server? 15:49 VanessaE nope 15:49 VanessaE I just said, the server's up in Canada 15:50 VanessaE it's like 800km from me or some such 15:50 VanessaE it's fast as hell for me here. blocks load fast, commands execute instantly 15:50 PilzAdam maybe they send the data to europe over the mars or so 15:50 VanessaE haha 15:50 VanessaE you were on 30005 right? 15:51 PilzAdam yes 15:51 VanessaE weird. 15:51 VanessaE sapier: sounds like a glitch in the network code? 15:52 sapier hmm 15:52 sapier 30s is long ... very long 15:52 PilzAdam rtt min/avg/max/mdev = 114.287/119.825/133.762/7.109 ms 15:53 VanessaE PilzAdam: strike that, it's more like 1600km away. 15:53 sapier those numbers don't hint at base network code to be involved 15:53 sapier they'd be higher if there was a lower layer hang for that time 15:53 PilzAdam hm, now its fast suddenly 15:53 sapier strange 15:54 VanessaE server stats do show a small spike in network transmission. maybe a media download? 15:55 PilzAdam wtf, after ~ 30 seconds it starts to download something with 300 KiB/s (previously it was at ~ 60), and I dont recieve any new blocks 15:56 PilzAdam any idea wtf its downloading? 15:57 VanessaE no clue at all 15:57 VanessaE unless it's just downloading more world? 15:57 VanessaE (and you can't see it?) 15:57 PilzAdam Im pretty sure it doesnt load mapblocks 15:57 sapier what else? 15:58 sapier entity data? 15:58 PenguinDad The same thing happens to me on Vanilla 16:00 sapier if I remember correct I updated the wireshark dissector, you could have a look at what is downloaded ... you may need to change it a little bit to work for ports other then 30000 and 30001 16:00 PilzAdam umm, wtf, it keeps downloading even if I exit minetest 16:00 sapier just replace the port numbers 16:00 VanessaE I can't even begin to guess ..... 16:00 VanessaE wtf? 16:00 VanessaE ok that's clearly not minetest then. 16:00 PilzAdam why does it start when I enter your world then? 16:01 sapier or someone managed to abuse minetest for pushing a trojan ;-) 16:01 VanessaE beats the hell out of me 16:01 PilzAdam is Minetest distributing malware? ;-) 16:01 VanessaE virus? :) 16:01 sapier well as of code security I'd not be surprised 16:01 sapier but I thought we'd not be important enough to be worth it 16:01 VanessaE what are you running anyway? 16:02 PilzAdam hm? 16:02 VanessaE os. 16:02 PilzAdam Kubuntu 12.04 16:02 VanessaE hm, ok 16:02 VanessaE *shakes head* I just don't know wtf 16:03 VanessaE unless there's some thread in minetest that doesn't "die" when it exits? 16:03 PilzAdam maybe some threads keep running after the windows disappears? 16:03 VanessaE ninja'd :) 16:04 VanessaE I note that my network.....wait 16:04 VanessaE are you using cURL? 16:04 sapier possible but unlikely 16:04 sapier wait 16:04 PilzAdam yes, I use curl 16:04 VanessaE something's zonking my CPU hard 16:04 sapier what irrlicht version do you have? 16:04 VanessaE and network too 16:04 VanessaE look at the network grapj 16:04 VanessaE graph 16:04 VanessaE http://digitalaudioconcepts.com/vanessa/hobbies/minetest/stats.html 16:04 PilzAdam sapier, 1.7.2 16:05 VanessaE blue is non-minetestserver stuff 16:05 sapier hmm ok so wrong direction 16:05 PilzAdam VanessaE, it doesnt happen on "German Landrush server" 16:06 sapier pilzadam I guess best way to find out is using wireshark and that dissector in contrib 16:06 VanessaE hm, whatever it was isn't showing up clearly in `top` now. 16:06 VanessaE PilzAdam: that's fair, but there's really nothing I can do to *cause* it, let alone stop it so I don't even know wtf 16:07 PilzAdam sapier, and how do I do that? 16:08 sapier within util/wireshark there's a file minetest.lua 16:08 sapier place it in /usr/share/wireshark/ (on debian) could be some different folder on your distribution 16:09 sapier lua dissectors aren't run as root user so you need to record network traffic and view it with wireshark in non root mode later 16:09 sapier and if server is not on port 30000 or 30001 you need to change minetest.lua to be used for that port too 16:10 sapier it's next to bottom of file, just look for 30000 16:13 PilzAdam I dont get any interfaces to listen when not running as root 16:13 sapier yes you need to record as root 16:13 sapier and open the recorded file later as non root 16:14 sapier that's ugly I know 16:14 sapier maybe someone knows a better way to do it but I don't 16:19 ShadowNinja sapier: I think there is, you have to give wireshark special permisions though. 16:20 ShadowNinja I remember a wiki page being linked. 16:20 sapier I see ... guess that'd not be a n issue if wireshark is already run as root 16:21 PilzAdam sapier, ok, what do I do with the record now? 16:22 sapier just open with wireshark started as regular user 16:22 sapier if you did adjust the port number in minetest.lua to match the servers port number it's supposed to decode minetest protocol 16:25 PilzAdam is /usr/share/wireshark/minetest.lua automatically loaded, or do I need to set a setting for that? 16:26 sapier if it's there it's loaded automaticaly 16:26 sapier unless your distribution disables that by default ... debian doesn't 16:29 sapier I'm a really lucky one seems like my android device is one of those very rare devices that are capable of doing render to texture 16:30 celeron55 oh, related to android; i checked that it runs on nexus 5, if nobody's tested it on that yet 16:30 PilzAdam doesn't seem to work 16:32 celeron55 how about -X lua_script:/path/to/minetest.lua 16:32 celeron55 i think that was how i used it when i did, but i can't remember anymore 16:33 celeron55 at least that is how my current wireshark man page tells to do it 16:33 PilzAdam ah, that works, celeron55 16:37 PilzAdam I have tons of "Server: Split message xxxxx chunk xxx/227" 16:38 sapier that's fine 16:39 sapier large files are split to sup 512 bytes packets 16:39 sapier sub not sup 16:40 PilzAdam but why do I even get these files? 16:40 sapier entity listings are split too 16:40 sapier everything being sent bigger then 5xx bytes is split 16:41 sapier for what I know that's nodedef, entitydefs, detached inventories and inventories 16:41 PilzAdam and how do I see what command is split? 16:41 sapier If I remember correct it's show eiter on reception of first or last chunk 16:41 ShadowNinja sapier: Why char zero = 0;? And use a vector for the attachments, just store ints in it instead of vector2ds. 16:42 sapier I don't use the vector any longer 16:42 sapier that's the optimization ... I don't know why a vector 2ds was used for id mapping anyway 16:42 ShadowNinja sapier: I know, but you should. Just use indexing instead of scanning on the vector. 16:42 sapier NO 16:43 sapier that scan is done millions of times for each node just do find out for most of them that there is no mapping 16:43 ShadowNinja sapier: That way it will be fast without taking up a bunch of memory or having a fixed size. 16:43 ShadowNinja sapier: Don't scan it. 16:43 ShadowNinja sapier: Use std::vector::operator[]() 16:44 sapier if you use vector[] operator on non existent id it's gonna cause an exception 16:44 sapier I haven't tried but I assume exception handling to be way more slow then even do scanning 16:45 ShadowNinja No, vec[vec.size() + 1] extends the vector and returns a T&. 16:46 sapier and what will vec[vec.size() +10000] do? 16:47 ShadowNinja sapier: The same, until you run out of memory. 16:47 sapier you can try it but for what I figured out memory operations are very slow on android 16:47 ShadowNinja But obviously int arr[100]; arr[1000] is a even bigger issue. 16:48 PilzAdam sapier, I think its entity data 16:49 ShadowNinja sapier: Add that is a seperate commit. It should be a one line change and will save a lot of memory. 16:49 sapier ShadowNinja: I don't believe using a vector will be faster then using preallocated memory ... in best case it's not very much slower 16:49 VanessaE what entities could there be aside from a few dozen signs? 16:49 ShadowNinja sapier: It will be slower, but it shouldn't be much slower. 16:49 PilzAdam VanessaE, seem to be your signs that are being send 16:49 PilzAdam the [combine texture strings seem to be rather huge 16:50 sapier ShadowNinja: difference between old code (using a vector) and new is a factor of about 4 16:50 VanessaE PilzAdam: can't be helped I guess. :-/ 16:50 sapier it's slightly different to what you suggest so I don't know the exact impact of your suggestion 16:50 ShadowNinja sapier: Yes. Still use the indexing methon instead of vector2di, but start the ints in a vector. 16:50 PilzAdam VanessaE, seems like the signs cause FPS drops and a lot of traffic 16:50 PilzAdam 2 reasons to not use them 16:51 sapier yes shadow but what's the benefit of saving at best 200kb of ram to taking twice as much time for a function callend about 1 million times per second? 16:52 VanessaE if they cause "a lot of traffic" that's clearly a bug in the engine 16:52 ShadowNinja sapier: http://pastebin.ubuntu.com/7613834/ 16:52 VanessaE the damn things are static 16:52 ShadowNinja sapier: You still keep the rest of the diff and all or almost all of the performance increase. 16:53 VanessaE but wait 16:54 sapier btw if you do a vec[20] to a vector beeing 10 elements only that's not gonna create a new element but throw a out of bounds exception 16:54 VanessaE why is there any traffic at all? 16:54 VanessaE you've already got all of the textures it takes to build them 16:54 VanessaE and the compositing strings are sent to the client 16:54 VanessaE they can't possibly be THAT big 16:54 PilzAdam VanessaE, the texture string has 14 bytes per letter 16:54 VanessaE yeah, so that's what, a couple kB per sign? 16:54 sapier wait 16:54 sapier even worse 16:54 sapier it doesn't 16:54 PilzAdam how much chars is the maximum for signs? 16:54 sapier Portable programs should never call this function with an argument n that is out of range, since this causes undefined behavior. 16:55 VanessaE PilzAdam: 6 or 7 rows by around 30 chars per row, give or take 16:55 VanessaE so about 3k per sign, maximum 16:55 PilzAdam and you have a lot of signs 16:56 sapier ShadowNinja: please re-read wat I did I think you haven't fully understand what I really did there 16:56 sapier I most likely wouldn't understand it on first read either 16:56 VanessaE since most signs are no more than about half full, figure 100 signs around the spawn, that's 100 * 3 / 2 = 150 kB of sign data 16:56 VanessaE that's nothing from nothing. 16:56 ShadowNinja sapier: I do. It does seem that you'll have to use something like push_pack or extend there though... 16:56 VanessaE you should have had that brought in in half a second 16:57 VanessaE textures for the signs are only 496 k 16:57 ShadowNinja sapier: Try it with resize(). 16:57 sapier ShadowNinja: what I needed there was a way to lookup with constant access time 16:58 ShadowNinja sapier: vector::operator[] is constant-time. 16:58 sapier yes but only if you don't have to check and resize prior using it 16:59 sapier and the only way to avoid this is creating it in it's max size ... well a vector with size USHRT_MAX*num_elements is in no way smaller then u16 m_attachements[USHRT_MAX] 16:59 PilzAdam VanessaE, in wireshark I see 300 kB per sign, if Im not mistaken 16:59 sapier PilzAdam: entities are sent cummulative 16:59 sapier not one by one 16:59 sapier decoding of those blocks isn't complete 17:00 VanessaE PilzAdam: 7 lines * 30 chars per = 210 chars, * 14 byes per = 2800, that's not even 3k, so where's the other two orders of magnitude coming from? 17:00 ShadowNinja sapier: What defines USHRT_MAX? 17:00 sapier 0xFFFF 17:00 VanessaE is it all the discarded textures from the compositing? 17:00 ShadowNinja sapier: No what defines it/where is it defined? 17:00 sapier it's defined in limits.h 17:01 sapier or climits on c++ syntax 17:01 VanessaE (well 210*14 = 2940 but I was just estimating) 17:01 ShadowNinja sapier: C guarantees that shorts will be at least 16-bit. But can shoorts be 32-bit? 17:02 PilzAdam oh wait, it sends each split package about 18 times 17:02 VanessaE wat 17:02 VanessaE well that's one order of mag 17:04 PilzAdam I have 4 or 5 split packets with ~540, 554 bytes each 17:05 PilzAdam and some parts are send up to 18 times 17:05 VanessaE how much of the data in those packets is, itself, composed of repeats as well? 17:05 PilzAdam that makes 21 MiB if I can type correctly into my calculator 17:05 VanessaE or put it a better way, how much of it is made of up data that signs_lib legitimately creates and how much of it is the engine being stupid? 17:05 PilzAdam *~540 parts 17:06 celeron55 sapier: i'm reading through the patchset 17:06 celeron55 https://github.com/sapier/minetest/commit/f129dce3004babc5d92c7ecbc79bdea2085bb24e#diff-39ed02ccc671fe3b6931967be58c4ed6R165 17:07 celeron55 this has side effects? 17:07 PilzAdam VanessaE, 496 bytes per part are from the texture string 17:07 PilzAdam thats almost everything 17:08 PilzAdam but I wonder why it sends each part 10 to 20 times 17:08 celeron55 or is addArea called from anywhere else 17:09 celeron55 yes it is 17:09 celeron55 this is likely to screw up at least MapVoxelManipulator::emerge() 17:09 VanessaE PilzAdam: I could *possibly* believe 20k per sign, that's in the realm of possibility given how complicated these signs are, but still.. 17:10 celeron55 i don't remember what the details are about how that is supposed to work though 17:10 PilzAdam VanessaE, all the signs are in the 4 split packets á 300 k 17:12 celeron55 sapier: there is a clear distiction between these two and the commit breaks it: https://github.com/minetest/minetest/blob/master/src/voxel.h#L323 17:12 celeron55 also this comment https://github.com/sapier/minetest/commit/f129dce3004babc5d92c7ecbc79bdea2085bb24e#diff-e9d009d06bbf893e52773d13058e1f73R538 17:13 sapier well celeron55 the interesting thing is NOT doing it causes tests to fail 17:14 sapier I thought about deleting that define but didn't do it yet because I wanted to know if this was used by anyone 17:14 celeron55 i think we should be very careful with this because this code is from 2010 and hasn't ever caused known problems 17:14 VanessaE PilzAdam: well at least it explains some of the download time, but it doesn't explain the FPS sagging 17:14 sapier I didn't find any location where it's been used 17:15 PilzAdam VanessaE, thats a different issue 17:15 celeron55 sapier: addArea() is used in MapVoxelManipulator::emerge() 17:15 sapier using it would be difficult too as it's almost immediatly replaced by emerge 17:15 celeron55 which is not included in tests 17:15 sapier ok so I need to do additional checks 17:15 VanessaE PilzAdam: yep, I know. just pointing it out. 17:16 VanessaE different issue, but related. 17:16 VanessaE PilzAdam: can you give me a paste(bin) of one of the signs' composite strings? 17:16 VanessaE like say something from the spawn that I would have some chance of recognizing 17:16 sapier still removing that emerge loop is one of the most effective cpu improvements ... about 10-20% of total improvement 17:17 sapier so if we don't need it we shouldn't have it in there 17:18 PilzAdam VanessaE, do a print(texture) there: https://github.com/PilzAdam/signs/blob/master/init.lua#L261 17:19 sapier MapVoxelManipulator::emerge just calls VoxelManupulator::emerge? 17:19 sapier ahh there's another implementation 17:21 celeron55 i'm fairly sure MapVoxelManipulator hasn't been used anywhere since a long time; it's an automatically allocating and fetching version of the manual one 17:21 celeron55 so it could be removed 17:22 celeron55 if it *is* removed, then the interfaces related to VOXELFLAG_NOT_LOADED and VOXELFLAG_INEXISTENT must be respecified 17:22 sapier maybe that's best option instead of keeping some slow compatibility mode for something not used at all, I'm gonna recheck it and do this later 17:22 celeron55 because otherwise they will be left to a state where nothing matches each other (comments, code, old code) 17:23 sapier ok that's why I asked for review, I had to fix some code I'm qite new to and was only pointed at by profiler 17:25 celeron55 also 17:25 celeron55 https://github.com/sapier/minetest/commit/37a7f928457ef58b33bc29612505f69d08ec20a1 17:25 celeron55 this like this should have a comment stating that it is simply an optimization with no other effect 17:25 celeron55 also other things like this 17:26 celeron55 because it takes time to figure out if it's actually doing something different logically 17:26 celeron55 for anyone reading the code that is 17:27 celeron55 s/this like this should/thing like this should/ 17:29 celeron55 otherwise i didn't find problems, but of course i didn't read it fully or test it at all 17:46 sapier thanks celeron, I'm adding the requested comments and re-check the addArea thingy 17:49 PilzAdam sapier, any idea why Minetest sends the parts up to 20 times? 17:50 VanessaE trying it now, sapier... 17:52 sapier depends 17:52 sapier if your ack is lost minetest will resend the data 17:52 VanessaE sapier: 0 fps :) 17:52 sapier if your ack is delayed for too long, same thing will happen 17:53 sapier and if you usually have a fast connection and enter some stall state minetest will assume a ack to be lost after some ms in worst case 17:53 VanessaE but it works and the item rendering is certainly faster 17:54 PilzAdam sapier, its only the entity packets that are split, and 20 time per part, that sounds like bad tuning to me 17:54 sapier to me too ... the tuning algorithm is quite simple there's way for improvement 17:55 sapier -way + room 17:55 VanessaE and...crash :) 17:55 sapier I basically tested it for media transfer as there's a lot of traffic 17:55 sapier I don't like crashes ;-) 17:56 celeron55 is it confirmed in some way that this really is a protocol problem instead of something high-level? 17:56 celeron55 seems like an easy misconclusion 17:58 PilzAdam celeron55, does high level handle splitting of packets and resending when not getting an ack? 17:58 celeron55 no 17:58 celeron55 so it is confirmed then 18:01 VanessaE sapier: ah, there it is. yep, OOM again :D 18:01 sapier could you please upgrade your memory vanessae? ;-) 18:02 VanessaE sapier: could you please send me about $200 for a nice tablet? ;) 18:02 sapier or just use another game 18:02 sapier or way less entities ;-) 18:02 VanessaE :P 18:03 sapier I used about half a megabyte to get that performance boost ... so either upgrade your cpu or your memory ;-) 18:03 VanessaE or stop using that ugly screenshot hack :) 18:03 VanessaE this time I was just walking casually down the street :) 18:03 sapier that one doesn't use any more memory than before now 18:04 sapier at least if I didn't add a bug 18:05 sapier I don't do a full screenshot any longer but just cut a piece in the middle, basicaly same as render to texture but node beeing placed in middle instead of lower left corner 18:05 ShadowNinja Comments on #1353? (Particularly the set/get_global thing) 18:05 ShadowBot https://github.com/minetest/minetest/issues/1353 -- Add strict module by ShadowNinja 18:06 sapier I'm against this 18:06 ShadowNinja sapier: Against the strict module? If so, why? 18:07 sapier I don't want to rewrite whole mobf just to add core.set_global and core.get_global for any part of mobf I splited to a separate mod 18:07 ShadowNinja sapier: Ah, so only that part. 18:08 sapier this is fine fas long as you have a single closed mod not having any dependencys to other mods but not if you have modpacks with closely linked code 18:08 celeron55 umm 18:08 ShadowNinja sapier: It is very clunky. 18:08 sapier it's just slow 18:09 ShadowNinja However you need something like that to avoid warnings when warn_init is set. 18:09 celeron55 sapier: so how many global variables you have that you set from a function at the first time and not from the global scope? 18:09 celeron55 hopefully none, because that is very bad coding style 18:09 sapier setting most likely isn't a big change ... but always get it is crap 18:10 ShadowNinja celeron55: That produces a error(). But setting globals from the main file scope produces warnings when warn_init is set. 18:10 sapier I'm gonna have to add about 50-100 lines of header code to get all of my global data to local variables in about 50-100 files 18:10 ShadowNinja Howefully you only export one or two globals though. 18:10 ShadowNinja Hopefully* 18:11 celeron55 you can't be having so many global variables because they're polluting the scope of other mods then 18:11 celeron55 and if they are so long that they don't, what's the point of having them as separate variables instead of in a table 18:12 sapier each of my components is a separate global namespace 18:12 sapier so about 20-30 components by now 18:12 celeron55 well then it's just better that you explicitly see what components each file uses? 18:12 sapier but not all of them are there 18:12 sapier so I have to check them for presence 18:13 sapier of course this can be done ... it's like minetest-> core transition ... no big deal but a lot of typewriting 18:14 sapier btw does this prevent global functions too? 18:14 celeron55 minetest -> core is just `sed -i -e "s/minetest\\./core./g"`, don't compare to that 18:14 sapier no it isn't celeorn 18:14 sapier because you always have to check if that minetest isn't just some comment or part of something else 18:15 sapier as I said not a big deal but some time 18:15 celeron55 hmm 18:15 celeron55 checking the precense of global things is actually a thing that is done sometimes in minetest mods 18:15 celeron55 because global things is how everything exports interfaces 18:15 celeron55 ShadowNinja: have you considered this? 18:16 sapier yes I try to avoid globals too but I use them for things that should be available global 18:16 sapier and as mobf has a lot of features that are used by different parts there are some global things in it 18:16 ShadowNinja This only error()s on things that are either errors or very bad style, that being using uninitialized globals in functions. 18:16 ShadowNinja celeron55: Yes, that's what get_global is for. 18:16 sapier have you tried mobf? 18:17 ShadowNinja You aren't warned about that by default though. 18:17 celeron55 so if we enable only the error on setting a new global from a function, there should be no issues (nothing else giving even a warning), but a lot of help still 18:17 ShadowNinja Also, mod namespaces (== minetest.get_current_modname()) are explictly ignored. 18:17 celeron55 and full compatibility to everything that does anything that is even remotely sane 18:17 celeron55 (i.e. anything except creating globals using functions) 18:18 sapier ShadowNinja: is it possible you do bug me on purpos with any of you changes ;-) 18:18 ShadowNinja celeron55: Getting a non-existent global in a function isn't allowed. I've only seen that done in the main file scope though. 18:18 SoniEx2 make it so you can use raw PNG data in textures 18:19 ShadowNinja celeron55: Do you think warn_init should be enabled? 18:20 sapier wait ... get_global(name) on a non existent name HAS to work ... it's supposed to return nil without any error message or crash 18:20 SoniEx2 as in, texture = io.open("your.png","rb"):read("*a") 18:20 celeron55 SoniEx2: say this at some other time 18:20 ShadowNinja Also a warning log level should be added, I looked at the log system but found it very ugly. 18:20 SoniEx2 altho I wouldn't use it that way 18:20 SoniEx2 celeron55, uhh ok... 18:20 celeron55 ShadowNinja: i don't think any of this should be enabled by default except maybe errors on setting global variables inside functions 18:21 celeron55 it's a modder's tool really 18:22 celeron55 making it easily enableable is important though so that modders see it and use it 18:23 celeron55 users are generally happier if buggy mods run despite of their bugs and don't flood their logs with warnings 18:25 celeron55 also, it is intentional that there is no warning log level, because i personally found it useless; you can just log then as errors or info depending on their severity 18:25 celeron55 them* 18:26 celeron55 ("warning" is really arbitrary because they can be completely ignoreable or very severe and almost everything will be a warning then, making it pointless) 18:28 SoniEx2 celeron55, add "notice" and "warning" 18:28 SoniEx2 then "notice" for the "good" warnings and "warning" for the "bad" warnings 18:30 celeron55 then there will be some arbitrarily chosen default level, and everyone will just use that for their messages because otherwise nobody will see them 18:30 celeron55 and all point was gone again 18:30 celeron55 it's good to be minimalistic 18:31 SoniEx2 ok make it so it has these levels: "debug", "info", "notice", "warning", "exception", "error" 18:32 celeron55 maybe the levels will be a floating point number which is randomized a bit on each startup; then nobody can use the number that is exactly a bit above the default limit? 8) 18:32 SoniEx2 most ppl'll use "warning" 18:32 SoniEx2 good ppl'll use "notice" or "exception" 18:32 ShadowNinja A lot of things should be moved from info, it's like debug. 18:32 SoniEx2 then you can make "warning" crash 18:32 ShadowNinja warning definitely shouldn't crash. 18:32 ShadowNinja Not even error. 18:32 celeron55 ShadowNinja: that's because for a long time it was the miminum level that was visible -> everything was put there 18:33 celeron55 now the minimum default level is something elese 18:33 SoniEx2 make "warning" crash because the modder is stupid for using "warning" 18:33 celeron55 else* 18:33 SoniEx2 not because of something else 18:33 ShadowNinja I think the minimum is action or error now. 18:33 SoniEx2 hmm 18:33 SoniEx2 make levels a bit mask? 18:34 SoniEx2 like PHP? 18:34 ShadowNinja But I don't like how levels are graduated. You can't enable info without enabling action for example. 18:34 celeron55 anyway this is mostly useless; a more useful thing would be a "subsystem" field in each log message 18:34 celeron55 then people could filter out whatever they want to see 18:34 SoniEx2 PHP is the answer 18:34 celeron55 plain levels don't help because it's just a competition to be most important 18:35 celeron55 you don't soolve that competition by adding more levels 18:35 celeron55 but by adding a second filtering term 18:35 SoniEx2 remove levels 18:35 SoniEx2 use regex 18:35 SoniEx2 or something 18:36 celeron55 ShadowNinja: yes, action is a bit weird 18:36 SoniEx2 so log("[error] ") and then regex "\[err(or)?\]" 18:36 SoniEx2 and then it gets [error] and [err] 18:36 SoniEx2 etc 18:36 SoniEx2 that could work 18:36 celeron55 that would be just silly 18:37 ShadowNinja FWIW, here's how I did it: https://github.com/ShadowNinja/LuaBot/blob/master/settings.lua.example#L8-L9 18:37 SoniEx2 celeron55, and convenient 18:37 celeron55 inconvenient 18:37 SoniEx2 because you can ignore mods 18:37 SoniEx2 and stuff 18:37 SoniEx2 and then you have infinite log levels 18:38 ShadowNinja Definitely not regexes. Pipe minetest to grep if you want that. 18:38 SoniEx2 the only drawback being speed/slowness 18:38 celeron55 SoniEx2: maybe you should now say the actual thing you started talking about instead of this log bikeshedding 18:38 SoniEx2 ok 18:38 SoniEx2 let's talk about textures 18:39 SoniEx2 can we shove raw PNG bytes in strings and use that as a texture? 18:39 celeron55 currently, no; but making an implementation of that would be easy (it would be impossible to free the textures, but that's the case for every texture currently) 18:41 SoniEx2 I would only use it during startup (even tho I can see stupid ppl not doing so...) 18:41 SoniEx2 no idea how to handle that... 18:41 celeron55 hmm... just adding a texture modifier called "png" would be a rather clean and trivial implementation 18:42 celeron55 but it would need base64 encoding or something like that 18:42 celeron55 that's how web browsers do it 18:42 SoniEx2 uhh 18:42 SoniEx2 what's the syntax for modifiers? 18:42 celeron55 i tried to find documentation about them, but couldn't; it seems they are not mentioned in lua_api.txt... 18:43 celeron55 i think there's something on dev.minetest.net 18:43 SoniEx2 something like [png? 18:43 SoniEx2 if so, [png;; 18:43 celeron55 can someone find this for me 18:43 SoniEx2 needs buffer overflow check 18:44 celeron55 here: http://dev.minetest.net/texture 18:44 SoniEx2 yeah ok [png;; 18:45 celeron55 hmm, indeed it maybe could use raw data with size 18:45 celeron55 that needs modification of the parser though which is not ideal 18:45 celeron55 but a more important issue is, how large fields do we use over the network for these names 18:45 SoniEx2 uhh damn :/ 18:45 celeron55 i'm betting 16 bit unsigned 18:46 celeron55 so they will be limited to 64kB 18:46 SoniEx2 hmm... 18:47 SoniEx2 make the server preprocess the string? 18:48 celeron55 and what about formspecs 18:48 celeron55 umm... i recall there was some weird escaping thing going on for the '['s there 18:49 celeron55 hmm... not even sure, i need to check 18:52 celeron55 wut, i don't even know for sure by looking at this code; we need to ask sapier 18:52 SoniEx2 ouch 18:52 celeron55 i guess the server probably should assign some kind of unique name for the texture and transmit the data some other way 18:53 celeron55 the details get complicated that way though 18:53 celeron55 and we need someone to actually figure it out 18:55 celeron55 this is actually ending up maybe such way that it should be generic for all media files and maybe the mod has to assign the unqiue name 18:56 celeron55 and use a special api for adding it 18:56 celeron55 then there is the question of how does the server know which client needs the data 18:57 celeron55 it doesn't really understand the concept of some client having a reference to a media file and some not (the references can be from multiple different kind of places) 18:58 celeron55 this is what i mean when i would like to just have them base64 encoded in the texture name, at least as an initial implementation for simple things 8) 18:59 celeron55 then again, if the use case is such that the media should be transferred to all clients anyway, it makes sense to go the special api route first 18:59 celeron55 which is the case for eg. a global map 19:00 celeron55 anyway, this is what the thing boils down to 19:00 SoniEx2 I see 19:00 SoniEx2 so it would need a minor rewrite 19:01 SoniEx2 well add a function that turns raw PNG data into an identifier 19:01 SoniEx2 then add a filesystem hack thingy 19:01 SoniEx2 then you can use that identifier as a texture path 19:02 celeron55 shoveling the media to the client is actually somewhat easy; it's already done in a highly custom way anyway; it's just inflexible from the modder's standpoint 19:02 celeron55 maybe it needs a new protocol packet distinct from the initial media transfer but that's minor 19:03 celeron55 you can basically just slap a name for a bunch of data and insert it into the client 19:04 VanessaE celeron55: btw, you said earlier that ^[ compositing strings seem to be limited to 64kB, yes? 19:04 VanessaE is that in all cases in which they're used? 19:26 celeron55 most 19:27 VanessaE ok 19:27 celeron55 or, well, that is the minimum; but sometimes it is 32bit (4GB) too, or sometimes it is a combined maximum of 4GB 19:28 celeron55 there's no easy way to scan through all occurrences of these 19:28 celeron55 for all i can know, there could be some that is maxed out at 256B 19:28 celeron55 but haven't seen one yet 19:28 VanessaE no worries, I was just thinking back to PilzAdam's comments about the size of those signs' texture strings. 20:01 ligeti Hello... can anyone please help me to figure out what is the (seems to be) random u16 number and 0x01 that comes after the channel number in the packet? I can't see anything that manipulate that in the source code but yet it is there... is it a bug? 20:02 ligeti I am testing the chat packets by the way ... 20:02 ligeti if anyone interested to investigate this please let me know... thanks 20:03 celeron55 you're certainly wrong about it being a bug 20:03 celeron55 but nobody can remember low-level protocol details like that from the top of their heads 20:05 celeron55 it's probably a RELIABLE-type packet: https://github.com/minetest/minetest/blob/master/src/connection.h#L294 20:05 ligeti thanks... checking 20:05 celeron55 which will contain either ORIGINAL or SPLIT 20:06 celeron55 which contains the actual high-level data 20:06 ligeti it is just a u16 ... so I think it is a check or something (I didn't check the response... checking now) 20:07 celeron55 just paste the packet data here but don't expect us to decode more than one packet for you 20:09 ligeti celeron55, so kind of you, but I am afraid that I figured it out already :) it was some sort of a sequence number ... that the server sends back (as a confirmation I guess) 20:10 celeron55 how far do you intend to implement the protocol yourself? 20:10 celeron55 and in which language 20:10 ligeti and by the way (I know this is not the place but...) great job, I don't usually see such a clean and clear code in the open source community 20:11 celeron55 i don't know if you can believe this but i have seen absolutely every possible kinds of comments about the code 20:11 ligeti well... I am testing the security :P and making a python bot to ... copy the chat from IRC to the clients (using the server) 20:11 celeron55 but thanks in this case, i guess 8) 20:13 celeron55 if you intend to make it not look horrible, you may want to release the protocol part or even the whole thing on the forums; i bet many people would like to mess around with it 20:13 ligeti well of course I will 20:13 ligeti :) 20:15 celeron55 i'm looking at the dates of our open pull requests and i can see a structure there: there are like 1.5 pages of recent not ancient ones, and the rest 1.5 pages are almost or more than a year old 20:15 celeron55 i think we should just close the other half of them as being too old to make any sense to consider 20:16 celeron55 nobody can expect them to be merged anyway 20:17 celeron55 and also set up a policy of closing PRs that are older than one year, because those make zero sense at all and unnecessary make the list look bad 20:17 ligeti I agree 20:17 celeron55 unnecessarily* 20:18 ligeti true 20:20 celeron55 ehm, altough, some of these are actually still very worth considering 20:22 sfan5 it could be helpful too see which ones a need a rebase 20:23 sfan5 I added the 'rebase needed' tag a while ago and went through all pulls. 20:26 celeron55 for example, this still needs discussion: https://github.com/minetest/minetest/pull/490 20:27 celeron55 i would propose that this would be added, but disabled by default 20:27 celeron55 so that server owners can use it if they want to do special things 20:28 celeron55 but it's utterly outdated to the extent that a rewrite is easier than a rebase 20:28 sfan5 yeah, that'd be nice 20:28 sfan5 but mods should be able to detect whether it is disabled 20:28 sfan5 it would make sense to just omit an automated upadate check instead of generating a warning every time 20:29 celeron55 mod updates are probably one of the most guestionable uses for that 20:30 celeron55 so i don't like it that you gave that as the first example 20:32 celeron55 what happened to this? https://github.com/minetest/minetest/pull/804 20:32 celeron55 it's just mysteriously forgotten without any comment explaining anything 20:37 celeron55 https://github.com/minetest/minetest/pull/683 20:37 celeron55 what was up with this? PilzAdam? 20:37 sfan5 celeron55: not mod updated, but only mod update _checks_ 20:37 celeron55 it's totally rebaseable with like no effort at all 20:38 sfan5 updates* 20:38 celeron55 i want that to be either merged or closed, is there a reason to not merge it? 20:39 celeron55 it seems to be doing a roughly right thing, but i haven't been involved with that issue 20:40 PilzAdam celeron55, maybe it breaks existing mods/games 20:41 sfan5 if we follow that principle we can put minetest into the same state as minetest_game 20:42 celeron55 can someone go and figure out if it breaks them or not? 20:43 celeron55 i certainly don't have time for that 20:43 PilzAdam it generally seems to good to remove special handling for certain things 20:43 celeron55 if nobody has, i'm going to close this and that part of minetest will be broken until infinity 20:43 celeron55 which will be sad 20:43 sfan5 celeron55: the ARM I have is not big endian: http://ix.io/cS6 20:43 sfan5 IIRC only arm64 can optionally be big endian 20:44 celeron55 what? is ARM little endian? 20:44 sfan5 gcc says so 20:44 celeron55 i've always thought it's big endian 20:45 sfan5 arm is little endian, armeb is big endian 20:45 sfan5 arm64 can be both 20:46 celeron55 whatever, changed my comment 20:46 celeron55 or should we even close these? 20:46 PilzAdam sfan5, a 20:46 sfan5 PilzAdam, b 20:46 celeron55 what sense does it make to have these hanging there when nobody is going to ever handle them 20:46 PilzAdam *32bit arm can be big endian too 20:46 PilzAdam and why is the enter key so damn close to delete? 20:47 sfan5 arm is little endian, armeb is the same as arm but big endian 20:54 sfan5 https://github.com/minetest/minetest/pull/1357 20:55 sfan5 Allow custom liquids to have drops - basically the same as #683 20:55 ShadowBot https://github.com/minetest/minetest/issues/683 -- Allow custom liquids to have drops by 0gb-us 20:56 Piggybear87 Tell #minetest-dev media is slow 20:57 sfan5 ^ PilzAdam 20:57 sfan5 (the thing above what Piggybear87 said) 20:59 celeron55 is this important? https://github.com/minetest/minetest/pull/641 21:00 celeron55 well, if it is, rebase and make a new pull request 21:01 sfan5 probably not 'important' but it definitely a good addition 21:01 sfan5 would someone care to ack to #1357? 21:01 ShadowBot https://github.com/minetest/minetest/issues/1357 -- Allow custom liquids to have drops by sfan5 21:01 OldCoder sfan5, is this a known issue? Hi BTW 21:02 sfan5 depends on your setup 21:02 OldCoder It didn't seem to happen until yesterday 21:02 sfan5 we know that media w/o remote_media is horribly slow 21:02 celeron55 sfan5: maybe it could be just added and then we'll keep our ears open for whether something breaks somewhere? 8) 21:02 OldCoder Yes. But what changed? 21:02 sfan5 celeron55: sounds good :P if anything breaks it is most likely the subgame devs fault anyway 21:03 sfan5 OldCoder: from which ver did you update? 21:03 OldCoder sfan5, I had a git that was a month or two old. Rebuilt from latest circa a day ago. Connected fine but nobody could connect to some worlds this morning. Then all evinced the issue. People in-game were fine. 21:04 OldCoder Restart corrected the problem. But it does seem to be media. 21:04 sfan5 IIRC there were no big changes to media stuff in the last month 21:04 OldCoder Checked with my colocation host; he says the network is fine today. 21:04 OldCoder And *all* people connecting from anywhere seemed to have the problem. 21:04 Piggybear87 OldCoder, I didn't connect. It hanged for about 5 minutes at media and I gave up. 21:05 sfan5 were you using remote_media? 21:05 OldCoder No; the point is, it worked for a while and stopped. Is the game no longer usable without curl? 21:05 OldCoder If so, that is the way it is; but useful to know 21:05 Amaz And *all* people connecting from anywhere seemed to have the problem. I can connect. 21:05 OldCoder Amaz, I have restarted 21:05 celeron55 https://github.com/minetest/minetest/pull/583 21:05 sfan5 it would be interesting to see the debug output 21:05 OldCoder It seemed to happen after worlds had been running for a while 21:06 OldCoder sfan5, I shall review now. Excuse me. 21:06 Amaz I can still connect. 21:06 OldCoder Amaz, I have restarted; thanks. 21:06 celeron55 do i have to make a decision on this? or does someone have some kind of comments 21:07 celeron55 the comments there seem to be saying that that key should be added to lua too, but it doesn't really matter whether it's added at the same time 21:07 OldCoder sfan5, the debug.txt looks fine. Should we simply assume that all servers and clients should turn on curl? Do most clients have this now? 21:07 sfan5 there does not seem to be a consent on whether the server owner should be able to disable this 21:08 OldCoder sfan5, are you addressing C55 or me? 21:08 celeron55 why does it matter 21:08 celeron55 the user could just use a magnifying glass on the screen for the same effect 21:08 sfan5 OldCoder: c55; almost almost all windows build have cURL, for the linux builds you can never know because many are self-compiled 21:09 OldCoder sfan5, I think we'd better assume that non-curl is not guaranteed to be usable at all. Until evidence of other problems shows up. May I PM for a reminder of how to set up curl? 21:09 * Piggybear87 isn't self compiling anymore, the ppa is faster and easier... Lol. 21:09 sfan5 even if #583 does not get added, https://github.com/minetest/minetest/pull/583#issuecomment-15694987 should be considered 21:09 ShadowBot https://github.com/minetest/minetest/issues/583 -- Add zoom (a la optifine) by EXio4 21:10 celeron55 but that hasn't been implemented, this has been 21:10 OldCoder sfan5, I have PMd regarding curl 21:10 sfan5 ok 21:10 celeron55 and also they conflict with each other unless a clear scheme to make them work together is designed 21:11 sfan5 you mean 'client-side zoom' vs. 'zoom effect triggered by mod'? 21:11 celeron55 maybe it could simply be OR or something 21:12 celeron55 this is probably very easily rebaseable 21:12 celeron55 but... what is the actual use for this 21:12 celeron55 this seems almost completely useless except for the first minute of playing around with it 21:13 celeron55 whatever, closing 21:14 celeron55 https://github.com/minetest/minetest/pull/546 21:15 celeron55 can this be done easily now that the menu uses Lua? 21:15 celeron55 ~tell sapier look at 546 21:15 ShadowBot celeron55: O.K. 21:17 sfan5 so.. can I merge #1357 now? 21:17 ShadowBot https://github.com/minetest/minetest/issues/1357 -- Allow custom liquids to have drops by sfan5 21:19 celeron55 i haven't looked at any games so i can't say 21:19 celeron55 take ten minutes to look at the most popular ones? 21:19 sfan5 ok 21:19 celeron55 if they don't seem to be broken, then just go ahead 21:20 sfan5 I think this was change in mt_game before the most games were forked from it 21:20 sfan5 changed* 21:20 sfan5 but I'll check 21:24 sfan5 seems to be fine, merge incoming 21:35 celeron55 i am playing around with the doxygen pull request... oh god: http://i.imgur.com/vO1auYd.png 21:35 celeron55 what is this 21:36 celeron55 this is actually pretty fun... but i have yet to try to find out if this is useful at all 21:36 ligeti celeron55, this is exactly... a headache! 21:38 celeron55 this graph tries to explain how the scripting api implementation interfaces with other code 21:39 celeron55 it's basically saying "it's a clusterfuck that mostly goes through the Server class to absolutely everywhere" 21:39 ligeti lol 21:40 ligeti I see 21:47 celeron55 okay, i have decided that this is useful 21:47 celeron55 the reason is... 21:47 celeron55 this graph that it generated: http://i.imgur.com/PsoQC48.png 21:48 celeron55 you can actually directly see from this what i had to dig from the code earlier today to sapier 21:48 celeron55 and i didn't even see everything that it shows 21:50 celeron55 you directly see which things use VoxelManipulator::addArea(), and you also see which of them are actually used by anything 21:50 celeron55 and i didn't notice those MeshMakeData ones at all previously 21:51 celeron55 it's beautiful! 21:55 paramat ive found an undocumented bug in latest 049dev, can anyone reproduce this?: the clouds disappear when camera pitch dips below roughly -30deg. occurs when player is above y=208 and comes and goes every 100-200n of altitude. bug also comes and goes with time. i discovered the required camera pitch is exactly that needed for the cloud layer to be out of view when player is at y=1, so perhaps this is caused by code that t 21:55 paramat urns off clouds when they are 'out of view' 21:55 paramat oh and thanks for fixing custom skybox =) 21:55 celeron55 i fixed it immediately because i made the bug in the first place 8) 21:57 celeron55 paramat: does the sky change color when the clouds disappear? 21:58 celeron55 hmm, apparently no 21:59 PilzAdam 200 sounds suspicious 22:00 paramat yeah perhaps its nore's fix for 'rendering glitches near edge of map'? 22:01 celeron55 i am fairly sure it's irrlicht that is messing things up because i am not aware of anything in minetest that would switch clouds on or off 22:01 celeron55 but maybe MT is giving some kind of wrong values to irrlicht, or isn't updating something in irrlicht 22:01 celeron55 it's not anything new if irrlicht simply has a bug though 22:02 celeron55 it's obviously some kind of frustum culling 22:02 paramat that's what i thought 22:02 celeron55 with a wrong camera position or something 22:03 celeron55 hmm, yes, it certainly is due to the "rendering glitches near edge of map" thing 22:04 celeron55 the harder question is, where should the fix go 22:04 celeron55 -space 22:04 paramat ah cool i guessed right 22:06 celeron55 i didn't test, but it seems very certain that it couldn't possibly have been broken before that 22:06 celeron55 someone would have complained about it 22:07 paramat yes i was surprised no-one noticed this, a recent bug ... shaders? i was going to ask RBA too 22:08 paramat if i see nore about i'll ask him if his commit causes this 22:08 celeron55 i will try that now 22:09 celeron55 yes, it works before commit 062de11b4cff30861dd4e9eb56f131d821f34b51 22:14 RealBadAngel camera offset is not my code 22:14 RealBadAngel my waypoint were suffering that also 22:14 paramat i've just switched from 048 stable to 049 dev of june 4th, so have no experience of when this bug first appeared 22:14 RealBadAngel i think thats nore's code 22:16 RealBadAngel oh, you already figured out that was nore ;) 22:17 paramat heh yeas nore's commit was my gut feeling =) 22:17 paramat (yeah) 22:21 PilzAdam paramat, is your good feeling reliable? please go through all issues marked as "bug" ;-) 22:22 paramat :D 22:25 celeron55 ~tell nore fix 062de1 or find someone to fix it! 22:25 ShadowBot celeron55: O.K. 22:26 PilzAdam has someone counted the bugs that nore produced with his commit? 22:26 celeron55 it's going to cause bugs indefinitely into the future because it breaks the simplicity of just drawing something on the screen in an irrlicht-standard way 22:27 celeron55 it's a maintenance nightmare 22:27 celeron55 i hope nore will continue maintaining it... but at least it's easy to remove 22:27 celeron55 just replace all the weird additions with 0 22:28 paramat is it because clouds are a different scene-node? 22:29 celeron55 almost everything is, why is that even a question 22:30 * paramat doesnt know what he's talking about :) 22:47 ligeti to view the error messages (derr_con for example) is it enough to run the server from terminal? 22:51 kahrl ligeti: for most error messages, yes (they should also be in debug.txt), but not for derr_con specifically 22:52 kahrl since derr_con is verbosestream, you have to run minetest with the --verbose parameter 22:52 ligeti yes thanks 22:52 ligeti thank you, this will help my testing a lot!!! 22:53 kahrl if you want to send verbosestream to debug.txt as well, set debug_log_level = 4 in minetest.conf 22:54 kahrl and then also make sure to delete debug.txt once in a while ;) 22:55 ligeti I am just running: ./minetestserver --trace --logfile ~/debug.txt 22:55 ligeti I don't want to use the default debug.txt 22:56 kahrl yeah, that works, you'll see derr_con on the terminal 22:56 ligeti I do now :) 22:56 ligeti thanks again 23:14 sapier1 to do 546 in lua we'd need to implement a slider formspec element, but I don't think that'd ne a big deal 23:19 cg72 ** 23:22 ligeti OK guys... goodnight, and thanks for all the help :) 23:22 ligeti bye! 23:55 VanessaE kaeza: see this channel's logs from today 10:41 am to ~2 pm EST.... summary: signs_lib's image compositing appears to be the cause of the FPS sagging at spawns on my servers, and the length of the strings used to do it causes a lot of network traffic for PilzAdam. Both issues imho are engine/client problems.