Time Nick Message 08:46 sapier thxyz what's typical size of that FMBitset? 08:47 sapier with size I' meand number of elements in there .... and prior someone notes I know thexyz isn't here right now ;-) 08:48 VargaD hi sapier 08:50 sapier VargaD: how's your investigation progressing? :-) 08:52 VargaD I have compiled freeminer, it is incredibly slow, just like minetest (I'm a 4 year old Atom N450 netbook because of christmas) 08:52 VargaD but still more playable than minecraft :) 08:53 sapier :-) yes we think about speeding up build from time to time but by now everyone was to frightended about even trying, especially as there ain't a guarantee it's even possible 08:54 VargaD yes the build is also slow, but I don't think that it can be faster 08:54 VargaD building C++ with optimastions is slow 08:54 sapier reducing header coupling sometimes helps but it's a lot of work with limited result 08:54 VargaD maybe building with clang make is a bit faster 08:55 VargaD that is the easiest way :) 08:55 sapier not maybe this is already prooven 08:55 sapier it's about 1/3 08:56 VargaD I don't think it is good to minetest to move reduce the size of headers 08:56 VargaD it make many optmasatons impossible and LTO is still experimental 08:57 sapier as I said noone is really working at this (as far as I know) 08:59 VargaD What do you think about thexyz's performance improvement in ABM? 08:59 sapier and header size reduction would be more decoupling minetest subsystem from each other adding defined interfaces between them ... minetest actually hase come far from the monolithic block it once was. reducing coupling is a open issue that has to be done by some time in order to cleanup basic design 09:01 sapier seems interesting, I just wonder why he used a vector, as of speed pov a int array would be even faster, especially as char isn't native datatype on any of our supported architectures 09:02 sapier of course this would add another 7 bytes of overhead 09:02 sapier (on 64 bit os) 09:10 VargaD I'm not convinced that it make minetest faster 09:11 VargaD I still don't know exactly what does this code do 09:12 VargaD We need to benchmark that code somehow, to decide which way is faster 09:12 sapier if I understand thexyz correct he already did this 09:12 VargaD using bitset istead of set should be much faster 09:14 sapier that his first commit 09:14 VargaD yes I see 09:15 VargaD in the next commit he replaced it to his own bitset implementation 09:16 VargaD the content size seems compile time constant, so it would be better to use a data structure that is allocated on stack 09:17 VargaD less pointer use should make to code faster and do less allocations 09:17 sapier yes that's the part I'm not conviced to be really faster too 09:17 VargaD FMBitset could be a template with size given in template argument 09:18 sapier templates aren't liked very much ;-) there are some things they're usefulll but at this very special location? 09:23 VargaD how do you make a general bitset data structure that has compile time constant size? 09:24 sapier I'm not sure it is required to be compile time constant 09:25 sapier guess this is one of the times you have to decide general <-> speed ;-) 09:26 VargaD How much ActiveABM do we allocate? 09:27 sapier guess noone is using abms very much as they are known to be slow 09:27 sapier but that's my personal view only I could be wrong about that 09:29 VargaD so ActiveABM is somethink a mod can attach to some nodes? 09:30 VargaD and it is also slow, so we allocate a few of them 09:30 sapier yes 09:30 sapier the problem starts once you attach a abm to a common node 09:30 sapier e.g. dirt, cobble 09:31 sapier as you can specify a chance and time this can kill performance 09:31 VargaD when you attach ActiveABM to a common node that class allocated many times? 09:31 sapier e.g. if you do it once a second with chance 1 on dirt ;-) 16x16x16 calls to that abm if a single block of dirt is active 09:32 sapier usually there are more blocks active 09:32 VargaD oh 09:33 VargaD std::bitset has compile time size and also use less memory, trash cache less, maybe that is a good enough solution 09:34 sapier possible but thexyz must have tested something, I'd like to know what he found out 09:41 VargaD wow freeminer has a lot of commits notv merged to minetest 09:41 VargaD Why do they forked minetest? 09:42 sapier because proller didn't want to do the work necessary to clean up a commit for merge to minetest ... and to be fair he started his work at a time where minetest development slowed down due to lack of time of core devs 09:43 VargaD it would be nice to unite development again... 09:43 proller because average time of pull approve is half year 09:44 sapier most of prollers commits where interesting, but most contained absolutely unrelated features within s a single pull request, often a usefull one and a controversial one in same 09:44 thexyz yes what? 09:44 thexyz std::bitset's count() is O(N), that's why I wrote my very own bitset 09:44 proller sapier, because i try to do something instead of speaking 09:45 sapier proller I wont explain this again I already told you community development is only about 50% of coding 09:45 VargaD thexyz: oh I see 09:46 thexyz if you feel like improving it then do that but since my profiler isn't complaining about this piece of code anymore and I don't see anything terribad about it I'm not feeling like changing this stuff to allocate on stack 09:46 sapier thexyz why do you use a vector instead of allocating memory and access per [] 09:46 VargaD thexyz: how do you test performance? 09:46 VargaD Do you have a mod that triggers this code? 09:47 VargaD allocation memory and using vector isn't different in preformance 09:47 thexyz no, I've tested this in a separate app and then just run through profiler with fix and without 09:47 VargaD it is much safer to use vector 09:47 thexyz to confirm that bitset's .count is indeed O(n) 09:48 VargaD the only improvement I see is to make size compile time constant so it isn't allocated at all 09:48 thexyz sapier: well I just felt like it, there's less code and no difference 09:48 VargaD but maybe that isn't worth to hassle to use template 09:48 thexyz VargaD: maybe, I didn't think about using a template 09:49 sapier what complexitiy is [] for std::vector? 09:49 VargaD O(1) 09:49 thexyz constant 09:49 thexyz what's with this question 09:49 sapier hmm ok forget about the array :-) 09:50 VargaD it is a template, the compiler generates exactly the same code, it isn't worth to wite code that handles memory allocations 09:50 VargaD when you compile it is exactly the same 09:50 sapier I assume a good compiler will do the int alignment too 09:51 VargaD only when you ask it 09:51 VargaD but alignment won't do much here 09:52 VargaD this can't be vectorased anyway 09:52 sapier reading a char is in worst case read, shift, mask 09:53 sapier writing is even worse ... shift read, mask, set, write 09:53 sapier but this is highly dependent on architecture and compiler 09:53 VargaD I don't think that works like that, the cpu should handle that well, maybe it is worth to try 09:54 sapier as I said this depends on architecture and compiler, I know for sure mips for example can't do single byte writes 09:55 sapier at least the version I work with ;-) 10:00 sapier wow x86 is quite comforable on this .. if compiler does compile sane code 1 2 4 8 are atomic (as long as aligned correctly for those >1) 10:02 VargaD do we run minetest server on mips? 10:02 VargaD :) 10:03 sapier don't know if anyone has a mobile device ;-) 10:03 sapier my phone is arm 10:03 VargaD those are arm 10:03 VargaD some routers are mips 10:04 sapier yes mips isn't very common these days 10:04 VargaD loongson is also mips 10:04 sapier but usually we use x86 and there it's not an issue 10:09 VargaD does freeminer and minetest world/network compatible? 10:10 sapier world yes network ... I think they still are but freeminer may have switched to enet already thexyz can tell more about this 10:10 VargaD they have a lot of interesting improvements 10:11 sapier minetest decided to switch to tcp for reliable communication instead of using enet but right now noone is working at it 10:11 proller .. and newer will.. 10:11 VargaD enet has a udp based reliable communicatino as far as I remeber 10:12 proller ant its work! 10:12 VargaD probably, many project using enet 10:12 VargaD and they work fine 10:12 proller minetest have wat wtf based communication 10:12 VargaD that is quite a bad thing :( 10:13 VargaD it would be nice to port enet to minetest 10:13 proller my server sometimes resends 100+ pps 10:13 VargaD sapier: I'm willing to do the port, but will you accept a clean pull request? 10:13 sapier we discussed this about 100 times the last week I wont discuss again 10:14 sapier it's not up to me to accept it but I'd start with something less controversial then enet ;-) 10:15 sapier enet has some issues too ... no ipv6 support, compatibility break, one man show, 10:15 VargaD oh I see 10:17 VargaD it is a good idea to use TCP in a realtime game? 10:17 sapier but enet works way better then current network code, yet breaking compatibility to anything we need to be sure it's the way to go for next years, obviously not everyone is convinced enet is way to go ... and no it's not only my opinion 10:17 sapier thought is UDP/TCP combination 10:18 sapier of course TCP only isn't an option 10:18 proller need in UDP/TCP/SCTP/RTMP/etcMP combination!!11 10:18 proller we need more protocols! 10:18 VargaD SCTP isn't widely suported :) 10:19 proller linux+*bsd okay 10:19 sapier linux+windows are required ... bsd macos androind are benefits we take if we have chance 10:20 VargaD Why don't you use boost or C++11? Sorry for my silly questions sapier :( 10:20 proller okay. we must implement gre! open ppp session to minetest server an make p2p net with other clients. 10:20 sapier .... didn't read the bad b word ... 10:21 sapier c++11 is beeing thought about but for now visual studio 2010 usage stops us from using it 10:21 sapier proller plz write your tirades to #minetest 10:21 VargaD yes visual studio is quite bad in C++11 10:23 VargaD Thank you for your patience sapier 10:25 sapier I try to help where I can varga but keep in mind minetest is a project with more then one core devs and there are different opinions about some issues 10:27 sapier as you might have noticed networking code and pull quality are most controversial points right now, 3d engine and security have been others in past ... and using json for everything (maybe code too ;-P) is a all time favourite ;-) 10:29 VargaD I see there are a lot of developers and many branches on github 10:29 sapier as I said coding is at most 50% of time ;-) most time you will spend on defending and persuading ppl your variant is really best 10:30 VargaD minetest is a remarkable application, I'm sure we can solve the issues 10:30 sapier take it a neverending strugle for perfection ;-) 10:31 VargaD of course but commits should be clean and perfect :) 12:29 * specing digs extra:john_minetest 13:34 Jordach wrong channel john. 13:59 sapier you can see fps in one of the debug tabs john_minetest 13:59 sapier it's a little bit hidden 14:02 sapier where is a win32 build? 14:03 sapier as far as I know we don't do official builds some "latest" in forum usually is a fake ;-) it's only latest for a small time ;-) 14:04 sapier but as far as I know that fps fix doesn't have any effect on windows 14:04 * sfan5 puts a kitten on john_minetest's head 14:05 sapier not the windows one ;-) 14:07 sapier true 14:11 RealBadAngel if some1 wanna build something then maybe this repo? https://github.com/RealBadAngel/minetest 14:12 RealBadAngel theres code that generates normal maps on the fly 14:19 sapier ok guys I started working at UDP/TCP protocol handling, I intend to write this in a 100% backward compatible way using dual protocol handling for transition time 14:43 VargaD sapier: can I help you in implementing the new network protocol? 14:59 sfan5 sapier: does that mean if packetdata.startswith("\x4f\x45\x74\x03"): else: ? 15:09 sapier no it means it will support old as well as new clients 15:10 sapier transportation method is unrelated to packetdata on proper layered environments 15:10 sapier thanks vargad but this task isn't big enough to be split in usefull parts 19:04 RealBadAngel sfan5, can you make win build with this? https://github.com/RealBadAngel/minetest/commit/a48d0e9bed5d478e1b9c468484eb81420ffed28b 19:09 RealBadAngel hi PilzAdam 20:56 Calinou there is some prediction stuff in Minecraft, but not much 20:56 Calinou CraftBukkit is very server-side focused 20:56 Calinou (Bukkit is an API.) 21:08 Calinou the client can't get new models: they are all _hardcoded_ (yes) 21:08 Calinou same for textures and sounds 21:08 Calinou sounds can be played by server at various volumes and pitches, without requiring separate files 21:14 thexyz yes 21:14 thexyz also, google is your friend 21:15 thexyz I see 21:15 thexyz sadly this is not related to minetest core development 21:15 RealBadAngel afaik both client and server require mods 21:15 Calinou google isn't your friend 21:15 * Calinou rolls eyes 21:15 RealBadAngel so for modified server you need modified client 21:15 RealBadAngel with very same mods 21:17 RealBadAngel it may had changed already, im not playing mc for a long time 22:20 iqualfragile RealBadAngel: last time i looked modding support even in craftbuckit was not satisfying 22:29 RealBadAngel so anybody to test: https://github.com/RealBadAngel/minetest/commit/a48d0e9bed5d478e1b9c468484eb81420ffed28b.patch ? 22:43 kaeza wish I could, but my crappy card does not support normalmaps :( 22:54 RealBadAngel kaeza, this code generates them on the fly 22:57 kaeza http://pastebin.com/Z0MPAgUe 23:01 RealBadAngel git am ? why not git apply ? 23:03 RealBadAngel http://stackoverflow.com/questions/12240154/what-is-the-difference-between-git-am-and-git-apply 23:05 kaeza do you have to enable anything besides "Generate normalmaps"? 23:05 kaeza (and "Shaders") 23:05 RealBadAngel shaders, bumpmapping, generate normalmaps 23:05 RealBadAngel disable filtering (at least for 16x textures) 23:05 kaeza nope, all black 23:06 RealBadAngel do you have any errors compiling shaders?