Time Nick Message 01:20 VanessaE oh G*d this sign-on lag has GOTTA STOP 01:20 VanessaE EVERY. SINGLE. SIGN-ON. 01:20 VanessaE causes everyone else to lag out 01:25 VanessaE well? 01:25 VanessaE what's the deal? 01:25 VanessaE does anyone give a shit about playability anymore? 01:25 VanessaE or is it just all about code now? 01:55 hmmmm oh wow that's neat 01:55 hmmmm so I was just running around randomly spamming torches 01:55 hmmmm not a lot mind you, and with no mods at all 01:56 hmmmm error trying to store object id=blah over 49 objects deleting 01:56 hmmmm and then all of a sudden an entire couple rows of nodes disappear and in their place, the dropped node cubes show up in their place 12:25 celeron55 https://github.com/fogleman/Craft 15:53 thexyz it seems that `rename` on Windows is not atomic 15:54 thexyz http://stackoverflow.com/questions/167414/is-an-atomic-file-rename-with-overwrite-possible-on-windows 18:00 celeron55 i'm somewhat uncomfortable with the possible performance regression of removing the texture atlas 18:00 celeron55 the more i think it, the more likely it seems to be a big deal 18:02 ShadowNinja Well, it didn't work. And IIRC it broke shaders. 18:02 celeron55 it was just laziness; of course it can be made to work 18:03 celeron55 a proper test should be made with an as complicated as possible (newest worls aren't loadable with an old enough version, so we should find the newest possible backup of a busily built world) 18:03 celeron55 +world 18:03 ShadowNinja Well I never noticed a big difference, but if you think there is one you could try. But I think Minetest has oter issues that would improve performance a lot more than a texture atlas. 18:03 ShadowNinja +if fixed 18:04 celeron55 there is an issue with that testing though - the texture atlas implementation wasn't built for these hundreds or thousands of registered nodes and it can't optimized that 18:04 celeron55 we'd need one that will make as many texture atlases as is needed for all nodes 18:04 celeron55 optimize* 18:30 celeron55 http://paste.ubuntu.com/6552467/ 18:30 celeron55 this allows one to see the amount of meshbuffers being drawn 18:30 celeron55 it's basically the amount of draw calls 18:31 celeron55 the amount of drawn blocks is profiled in another place in the code; by these it's somewhat easy to see how many excess calls are made 18:34 celeron55 ideally texture atlasing would put everything in one block to one meshbuffer, or at maximum to as many meshbuffers as there are texture atlases (if the block contains textures from every atlas) 18:35 celeron55 i consider a busy place in the eden subgame a reasonable test case for this; i get like 31 meshbuffers per block (which is the amount of textures in a block) 18:36 celeron55 that's bound to be the bottleneck on at least some hardware, if not all 19:06 celeron55 this should simulate the performance of a perfect texture atlas: http://paste.ubuntu.com/6552637/ 19:07 celeron55 oh actually no, wait 19:08 celeron55 well yes, it's good enough for that 19:09 celeron55 i'm pretty sure something is wrong though; it shouldn't look so bad 19:15 celeron55 ah, got it 19:15 celeron55 http://paste.ubuntu.com/6552684/ 19:15 celeron55 now it looks sane (=everything is grass, simulating that everything comes from the same atlas) 19:17 celeron55 VanessaE: try that on your client when being on your server's performance hogging places 19:33 sapier I don't understand much about texture atlas but isn't irrlicht supposed to cache those textures and only pass references? (at least that's what I'd expect from a reasonable sane 3d engine) 19:37 celeron55 the thing is that GPUs are incredibly slow at switching textures to render with 19:37 celeron55 and there's a large overhead in each call to the GPU otherwise too 19:38 sapier ok and solution is using one texture using scaling cropping and offset? (just guessing right now) 19:38 celeron55 yes, that's what texture atlas means 19:38 celeron55 or really we need to use many to accomodate all the stuff in a fully modded minetest, but anyway 19:39 celeron55 the point is, less textures means probably way more performance 19:39 sapier therefore we need n*sizeof(biggesttexture) within texture atlas 19:39 sapier or use different texture atlasses for different sized textures 19:40 celeron55 we can simply put any sized textures in any atlas; there's nothing forcing any similarity to them 19:40 celeron55 that's what minetest originally did, but then it got broken and nobody wanted to fix it and it got removed 19:40 sapier but offset calculation will be way more difficult 19:40 celeron55 it's calculated when it's generated; it's very simple 19:40 celeron55 and minetest has the framework for transferring those offsets around 19:41 celeron55 well, at least had 19:41 sapier ok but doesn't this only work in a simple way for eqal sized textures? 19:42 celeron55 i don't understand why you're asking so much 19:42 sapier because I want to know what needs to be done 19:42 celeron55 it worked fine and simply took any kind of textures, and wasn't that complicated 19:42 celeron55 just look up the commit that removed it 19:42 sapier it worked fine as long as noone used hdx textures 19:43 celeron55 you can't put many HD textures in atlases because the texture size in GPUs is limited 19:43 sapier hope that's the only problem 19:44 celeron55 well there were some bugs afaik 19:44 celeron55 but no design bugs; just implementation bugs 19:45 sapier Of course I don't understand details of it but I assume texture atlas to be a "huge" texture containing real textures aligned in a grid am I right about that? 19:45 celeron55 anyway the removal commit is 8161ab573fd6f8a45b3986278ce7fc1596140526 19:45 celeron55 aligned in whatever way 19:46 celeron55 = a huge texture containing multiple small ones; it's a texture atlas no matter how you do it other than that 19:46 sapier ok so in worst case a atlas contains a single texture 19:47 sapier and atlas contains information about position and size ... guess that should work 19:47 celeron55 basically, instead of transferring around pointers to textures, you transfer around a pointer to a texture plus "UV" coordinates to the texture 19:47 celeron55 and then bind the texture according to those the vertices when actually drawing stuff 19:47 sapier +size of texture to do apropriate scaling 19:47 celeron55 to the vertices* 19:47 celeron55 sapier: minetest has TextureSource 19:48 celeron55 instead of giving out textures from it, it can give out texture+uv structs; that's what the AtlasPointer was about 19:49 sapier of course ... how does texture atlas handle texture compression? do we use it at all? 19:49 celeron55 no 19:49 celeron55 https://github.com/minetest/minetest/commit/8161ab573fd6f8a45b3986278ce7fc1596140526 19:49 sapier ok so no need to think about it 19:50 PilzAdam hmmmm, https://gist.github.com/PilzAdam/7896988 19:51 PilzAdam this seems to be reproduceable (i.e. it crashes on every server shutdown) 19:51 celeron55 however before jumping into doing it, we should have benchmarks based on the code i pasted initially 19:51 celeron55 this http://paste.ubuntu.com/6552684/ 19:51 daswort hi i compiled MT from git but i still get an empty online mod repo in the UI. and i don't get messages on STDOUT about anything related to the ingame mod-repo viewer. 19:51 sapier I'm just thinking about what needs to be done 19:52 PilzAdam daswort, do you have curl support compiled in? 19:53 daswort is there a flag for it? i used the DRUN-in-place-FLAG 19:53 daswort but curl is installed anyway. 19:53 sapier then you don't havce curl 19:53 sapier DENABLE_CURL=1 19:53 PilzAdam it should say something like "USE_CURL=1" in the in-game pause menu 19:53 PilzAdam (or in --version) 19:53 sapier really use? 19:54 sapier I allways mix it up 19:54 daswort USE_CURL=0 19:54 PilzAdam sapier, the cmake flag is still ENABLE_CURL 19:54 daswort okay 19:54 daswort another problem is that the public server list stays empty, is that related? 19:55 PilzAdam yep 19:55 sapier same 19:57 daswort will recompile, BTW why isn't that standard? 19:57 sapier because not everyone has curl installed 19:58 celeron55 it not being automatically enabled if curl is installed is a bug 19:58 celeron55 it's not fixed because people are apparently lazy 8) 19:58 sapier others consider it a sane preconfiguration 19:58 daswort well why does wget not work? it is installed everywhere (well windows…) 19:58 sapier as minetest doesn't bother to ask about connecting to internet 19:59 celeron55 asking about connecting to the internet in 2013, when entering a public listing in a game? 20:00 celeron55 are you nuts? 8) 20:00 sapier it doesn't connect on enter but on startup 20:00 sapier especially in 2013 after everyone got aware of actual done surveillance! 20:01 sapier but I know that depends on everyones personal opinion 20:05 specing daswort: forget it, the mod ui is nearly useless since not many mods are listed there 20:05 specing you will have to manually download most of the mods 20:06 sapier if a mod isn't listet there it's the modders problem 20:06 specing lol 20:07 celeron55 the server list is quite objectively useful though 20:07 sapier mmdb uses SAME login as forum so adding a mod and uploading a mod is a matter of minutes so there's no reason to not do it 20:07 daswort Pretty much a chicken egg situation. (BTW: The Egg was first) 20:07 PilzAdam sapier, no, its the usability of the web interface 20:08 PilzAdam its not good currently 20:08 PilzAdam iqualfragile marked that as "wontfix", though, so.... 20:08 celeron55 8D 20:08 daswort relevant? → https://dpaste.de/tOFn 20:09 sapier what are you talking about pilzadam? did you ever use it? 20:09 specing sapier: since the mod db was introduced recently, one of you will have to go and manually add all mods to it that can be added 20:09 PilzAdam sapier, I want it to get the mod from github, a tag or branch or whatever 20:09 sapier so because of YOUR personal believes the mod ui is bad? 20:09 specing waiting for modders to do it will turn players into skeletons before it becomes even remotely complete 20:10 PilzAdam I dont want to upload new versions for every single commit I make 20:10 daswort I suggested qualfragile a maintainer feature, so people can become maintainer if devs don't care (and license allows it). 20:10 sapier so because of your lazyness you refuse mmdb's peer review process? 20:10 PilzAdam sapier, basically yes 20:11 sapier sane reason for sure ! 20:12 sapier btw 1030 modstore improvement is still waiting for a single coredev to agree 20:12 sapier or deny for some reason ... by now it's constantly ignored 20:13 sapier https://github.com/minetest/minetest/pull/1030 ... for the lazy ones 20:14 PilzAdam "achiev" 20:14 sapier "moon" 20:14 sapier a little bit more details plz 20:15 PilzAdam its achieve 20:15 sapier where did you find it? 20:15 PilzAdam third line of the diff 20:15 celeron55 lol 20:15 PilzAdam eh, 2nd line of the additions 20:15 VanessaE celeron55: without the "fake it, all grass" patch, solid meshbuffers drawn = 1869 (and 60 transparent ones) at the "bad" spot in my creative server (looking north from the spawn). your all grass patch does not apply, however. 20:16 PilzAdam also everytime you dont put spaces after , in the function parameter list a kitten dies 20:16 sapier so we're now doing language correctness checks ... good god 20:16 celeron55 VanessaE: well apply it manually or something; maybe you have some slightly interfering branch in use or something? 20:16 thexyz what's the point of making all those generic reusable classes/functions if no one is going to use them? 20:17 VanessaE celeron55: I'm working off clean master at current HEAD, with only your benchmark patch in place. 20:17 PilzAdam thexyz, its fun to code them 20:17 sapier what are you talking about thexyz? 20:17 VanessaE I'll apply it manually. 20:17 thexyz also what editor has this syntax "-- @function [parent=#modstore] getscreenshot" (just curious) 20:18 sapier lua markup 20:18 thexyz sapier: you made a "Generic implementation of a filter/sortable list" but the doc is really confusing 20:18 thexyz if it's generic then I guess you think people will be using it or something? 20:18 sapier ok I'm gonna remove the doc 20:18 PilzAdam lol 20:18 sapier guys are you aware you're complaining about a doc added where none was before?????? 20:18 thexyz okay.. 20:18 thexyz I'm not complaining about the doc 20:19 sapier you're not? 20:19 PilzAdam sapier, how about writing proper doc? 20:19 thexyz I am not 20:20 sapier I am not capable of writing proper doc ... neither anyone else writing minetest seems to be 20:20 thexyz I guess it's fine though 20:20 sapier but you're welcome to help improving it 20:20 sapier btw that class was key to implementing search tab with minimal effort 20:21 thexyz I'm just afraid this code will be hard to maintain 20:21 VanessaE ok, let's try this again. 20:21 sapier and I guess it will be quite usefull for implementing version specific filtering too 20:22 sapier if someone is willing to review I'll try to add docs ... but last weeks I have feeling will to review anything is almost completely lost 20:23 sapier any suggestions how to improve the filterlist doc? 20:24 daswort compiled with curl and it is still empty (both list and repo) 20:24 VanessaE holy moses that made a mess out of the world. solid meshbuffers are now down into the 425-460 range (depending on my view pitch), with 43 or so transparent, and a LOT of the world is missing :) but that which I can see is mostly made of grass. 20:25 VanessaE at any rate, it's clearly faster. 20:25 VanessaE like, 4x so. 20:25 PilzAdam daswort, you have USE_CURL=1 now? 20:25 sapier daswort did you look at output of cmake? 20:26 daswort -- CURL_INCLUDE_DIR = CURL_INCLUDE_DIR-NOTFOUND 20:26 daswort -- CURL_LIBRARY = CURL_LIBRARY-NOTFOUND 20:26 VanessaE celeron55: ^^^ 20:27 sapier missing curl devel package? 20:28 daswort v libcurl-dev ? 20:29 PilzAdam its libcurl4-gnutls-dev on ubuntu 20:30 VanessaE ok, gotta run. hope those numbers are useful. 20:31 daswort p libcurl4-gnutls-dev same on debian 20:31 daswort could someone add the part about curl on the "compile MT" wiki site? 20:35 daswort What is the advantage of LuaJIT? 20:36 celeron55 VanessaE: quite vague, but at least it made some kind of a clear difference 20:36 PilzAdam daswort, its at least 2 times faster than normal Lua in executing mod code 20:36 sapier if I'm not completely wrong use curl is described in readme 20:37 sapier I am completely wrong 20:37 celeron55 8D 20:37 PilzAdam at least the dependency is listed there 20:37 daswort great, but uses it less or more resources? PilzAdam 20:37 sapier depends 20:38 celeron55 as a player, there doesn't really exist a reason to not use luajit 20:38 celeron55 for developers lua gives better error messages for now in certain cases though 20:41 celeron55 sapier: can you fix the readme and the wiki for curl usage? 20:41 daswort is there a flag for luaJIT or does it take it automatically if it is there? 20:42 sapier I usually manually replace it .. but I guess there's an official way too 20:42 celeron55 daswort: it should take it automatically when you run cmake 20:42 celeron55 it will print out stuff if it finds it 20:43 daswort thanks for your help 20:51 sapier https://github.com/minetest/minetest/pull/1045 20:51 PilzAdam sapier, its ENABLE_* 20:52 kaeza sapier, also, BUILD_CLIENT and BUILD_SERVER 20:52 sapier (20:57:30) PilzAdam: it should say something like "USE_CURL=1" in the in-game pause menu 20:52 sapier ohhhhh 20:53 PilzAdam sapier, the cmake flag is still ENABLE_CURL 20:53 PilzAdam I have the feeling that you only read every second line from me... 20:53 PilzAdam also curl is used for more than connecting to the serverlist 20:54 PilzAdam also what kaeza said 20:54 sapier the warning is about pinpointing to "AUTOCONNECT" 20:56 PilzAdam ... and there are too few "--------" ;-) 20:57 daswort a note about luajit would be helpful on the wiki page :) 20:57 sapier shall I fix all other inconsitencys of --- too ? ;-P 20:57 PilzAdam why not? 20:57 sapier don't complain about Lua later 21:00 PilzAdam what are all the "=1" at the end? 21:01 PilzAdam and maybe add "Set via cmake . -D