Minetest logo

IRC log for #minetest-dev, 2015-03-23

| Channels | #minetest-dev index | Today | | Google Search | Plaintext

All times shown according to UTC.

Time Nick Message
00:44 devmarth joined #minetest-dev
00:48 Warr1024 VanessaE: in case you're interested, #2536 is now a thing.
00:48 ShadowBot https://github.com/minetest/minetest/issues/2536 -- Anti-alias all 2D GUI Elements. by Warr1024
00:48 Warr1024 also, my PR number is 2 consecutive 2-digit perfect squares
00:53 VanessaE joined #minetest-dev
01:40 VanessaE joined #minetest-dev
01:45 * est31 got #2500
01:45 ShadowBot https://github.com/minetest/minetest/issues/2500 -- on_enter_node() and register_on_enter_node() methods
01:46 est31 or no, sorry #2400
01:46 ShadowBot https://github.com/minetest/minetest/issues/2400 -- Add /setpassword and /clearpassword logging by est31
01:57 Taoki joined #minetest-dev
02:28 est31 man, 100 things...
02:28 est31 minetest progresses quite fast
02:28 est31 and time flies.
02:28 est31 haven't I revoked its fly privilege?
02:29 est31 perhaps its using a hacked client.
02:29 est31 yes, that must be the reason.
02:45 est31 joined #minetest-dev
02:56 Zeno` joined #minetest-dev
03:23 est31 Zeno`, can you have a look at #2531, #2535 and #2537 ?
03:23 ShadowBot https://github.com/minetest/minetest/issues/2531 -- Fix cmake po detection bug by est31
03:23 ShadowBot https://github.com/minetest/minetest/issues/2535 -- Fix Android build on 32 bit by est31
03:23 ShadowBot https://github.com/minetest/minetest/issues/2537 -- Fix minetest.get_craft_recipe function by est31
03:23 est31 alot of fixing :)
03:28 Zeno` How did 2537 creep in?
03:29 hmmmm what's the difference between lua_newtable and lua_createtable?
03:30 hmmmm hrmm... I wonder if anybody depends on genelement IDs being consecutive
03:30 hmmmm give me one good reason why I shouldn't make them opaque handles instead
03:31 Zeno` well 2537 should be merged immediately
03:31 Zeno` the genelement handles?
03:31 hmmmm yeah
03:31 hmmmm the IDs returned by register_decoration and the like
03:32 Zeno` hmm, not sure
03:32 hmmmm for most things IDs can be used in place of names
03:32 Zeno` for lua_createtable() you need to know the number of elements in the table beforehand judging from the Lua doc (referring to your previous question)
03:33 hmmmm like for example let's say you're registering a decoration and you want it to occur in two biomes
03:33 Zeno` But... people rely on them being consecutive?
03:33 hmmmm you can either refer to the biomes by name
03:33 hmmmm or by ID
03:33 hmmmm the ID being the thing returned to your mod by register_biome()
03:33 Zeno` I would never have assumed they would be consecutive but maybe people do, I dunno :3
03:33 hmmmm I want to change that
03:33 hmmmm well, their fault if they do, it's undocumented behavior
03:34 Zeno` Yeah, of course
03:34 hmmmm you could always refer to a generation element by its name, if it's named
03:34 hmmmm but oftentimes they aren't
03:34 hmmmm for example, everybody names biomes, but nobody names ores
03:34 Zeno` I can't think of a *good* reason where I would even contemplate relying on them being consecutive
03:34 est31 Zeno`, doc sais that lua_newtable does the same as lua_createtable(L,0,0)
03:34 est31 the middle param is the allocated size
03:35 est31 as the table has one element, we allocate one
03:35 Zeno` est31, so it's just a convenience thing?
03:35 est31 yes
03:35 hmmmm that's nice to know
03:35 hmmmm I'm going to switch to lua_createtable for perlin noise map apis
03:35 Zeno` well, it's also a performance thing if you know the number of elements I suppose
03:35 est31 yes
03:36 hmmmm thank you
03:36 est31 np
03:37 est31 and about how it sneaked in, read the issue for 2537, #2530.
03:37 ShadowBot https://github.com/minetest/minetest/issues/2530 -- Error when using minetest.get_craft_recipe(item) in a lua file
03:39 Zeno` I'll merge it now if hmmmm agrees
03:39 hmmmm do't you mean 2537?
03:39 hmmmm 2530 is an issue
03:39 hmmmm and yes, +200
03:39 hmmmm LGTM
03:41 Zeno` ok done.
03:41 Zeno` also 2531 is good (I hated that particular file causing builds to fail)
03:42 Zeno` agree, hmmmm?
03:42 hmmmm yes
03:43 hmmmm you realize I can't really give valid input, right?
03:43 hmmmm those are the things that either work or don't, and i have no idea without testing it
03:43 est31 nrzkt already +1ed it.
03:43 Zeno` So he did...
03:44 Zeno` anyway, those 2 are pushed
03:44 est31 fine.
03:46 WarrTab If you're in the mood for reviewing pr's, I just opened #2536 today...
03:46 ShadowBot https://github.com/minetest/minetest/issues/2536 -- Anti-alias all 2D GUI Elements. by Warr1024
03:47 Zeno` I've partially reviewed it :)
03:47 Zeno` nice work
03:47 hmmmm it looks fine to me so far
03:47 WarrTab ah, thanks
03:47 hmmmm WarrTab, the last thing you pushed has problems :/
03:47 WarrTab Oh, which?
03:47 hmmmm angry people with pitchforks
03:48 WarrTab It shouldn't even have any real effect without being enabled in config...
03:48 hmmmm http://pastebin.ubuntu.com/10654682/
03:48 hmmmm it's enabled in the config by default
03:48 hmmmm in any case, I told the guy to disable the setting, and that worked for him
03:49 hmmmm I have no idea how I guessed the two things were interrelated but I turned out to be right
03:49 WarrTab That's pretty weird, was it just the log msg, or was there more?
03:49 hmmmm just the log message
03:49 WarrTab Looks like only one angry person w/ pitchfork so far
03:49 hmmmm well okay I exaggerated
03:50 WarrTab I'm sure it's not gonna be something everyone wants to enable yet.  I figure on-by-default probably requires a feature to "mature" a bit
03:51 WarrTab It may take some time to learn how it interacts with more obscure mod features...
03:51 hmmmm maybe you should change the defaults and push that?
03:51 hmmmm on the other hand, it's getting a lot of exposure and testing!
03:51 WarrTab ha, true
03:51 hmmmm ElectronLibre is the guy to talk to about that
03:52 WarrTab Maybe we should just put one checkbox on the settings gui for "enable experimental stuff" to get exposure
03:52 hmmmm it would help to set debugging log level to info so you can gather more information like the filename it was split from with the garbage text
03:52 hmmmm that's a really good idea actually
03:52 est31 yea
03:52 Zeno` est31, I don't know how to test #2535. I assume you've tested it on 64-bit and on the 32-bit f-droid build?
03:52 ShadowBot https://github.com/minetest/minetest/issues/2535 -- Fix Android build on 32 bit by est31
03:53 est31 I tested it on 64 bit, then there is nerzhul's CI which also tests it on 64 bit. I personally didn't test it on 32 bit, but f-droid people did.
03:54 Zeno` well it *looks* fine :)
03:54 est31 Zeno`, https://botbot.me/freenode/fdroid/2015-03-22/?msg=34774874&page=3
03:54 est31 begin of discussion: https://botbot.me/freenode/fdroid/2015-03-22/?msg=34774042&page=3
03:55 Zeno` well, I'm ok with it
03:55 Zeno` I like the experimental stuff as well :)
03:56 Zeno` s/stuff/idea
03:57 Zeno` Ok, I'll merge that based on it being tested by krt and the automated builds
03:58 Zeno` you ok with that reasoning, hmmmm?
04:00 Zeno` WarrTab, do my code comments make sense or am I being vague again? heh
04:00 WarrTab they make sense
04:00 Zeno` weird
04:00 WarrTab Actually, re: the s32 vs u32 thing...
04:01 WarrTab It really would only make sense to use u32 for all coordinates
04:01 WarrTab But rect<u32> then can't have negative width/height
04:01 WarrTab Which would represent mirrored/flipped transforms
04:02 Zeno` yeah, but once they are constrained it doesn't matter
04:02 WarrTab And all my callers seem to want to use rect<s32>
04:02 Zeno` convenience?
04:03 Zeno` I don't know about the history of that
04:03 WarrTab signed/unsigned disagreements are also the cause of a lot of bugs, esp things like buffer overflow vulns...
04:03 Zeno` what was causing the upside down cuboids?
04:03 WarrTab oh, 2 things
04:04 WarrTab One was a quirk of how txr->img seems to alter the original
04:04 WarrTab I didn't fix it, but avoided it, by avoiding repeated conversions using the cache
04:05 Zeno` I wonder why it does that
04:05 WarrTab On android, there's still the inversion issue from before
04:05 Zeno` maybe a performance thing
04:05 WarrTab The one I had caused was a 2d flip, i.e. after render
04:05 WarrTab The one I see on android is a 3d flip, i.e. totally diff coordinate systems
04:06 Zeno` oh. that's not confusing
04:06 Zeno` :/
04:06 Zeno` unless it's endianess related
04:06 Zeno` but that doesn't make sense
04:06 WarrTab I suspect that when you convert an image to a txr, the video driver does some crazy stuff, like reverse row ordering s la .bmp, or even compression
04:06 Zeno` possibly
04:07 WarrTab But trying to pull back from txr to image, you get no help in manyncases
04:07 WarrTab I resolved my android rendering woes by enabling the inventory image hack
04:08 WarrTab Turns out autodetection for it dodn't pick my driver as problematic
04:08 Zeno` hmm
04:08 WarrTab RTT works on my android
04:08 WarrTab But rtt bsck to image doesn't
04:08 WarrTab Which messes up [inventorycube, whose output is an image
04:09 WarrTab Oh, wait, the hack only fixes inventorycube if my scaling filter is ON
04:09 WarrTab Because in that case I'm using the cached image, not txr->img
04:09 WarrTab Never tested that bug with it off...
04:10 WarrTab I should probably give android a regression pass w/ filter off...
04:10 hmmmm Zeno`: sure
04:10 hmmmm I thought screen coordinates for irrlicht are relative
04:10 hmmmm that's why they're s32
04:11 hmmmm u32 is a dimension2d
04:13 WarrTab I could try making sx and sy u32, and might just need to worry about the cast @ getPixel...
04:14 WarrTab Either it's odd that getPixel takes s32, or it's just doing the implicit cast silently already.
04:15 Zeno` yes it implicitly casts
04:15 WarrTab I kind of wonder how slow getPixel/setPixel are; in my experience, they tend to be very slow, and have to check for all sorts of format conversions...
04:19 WarrTab Btw, take a look at the loop in src/client/tile.cpp line 904.  It's a very minor thing, but it seemed funny to me.
04:19 WarrTab It's converting RGBA<-BGRA
04:19 WarrTab It takes each u8 color component and swaps it with the other one
04:20 WarrTab Including swapping G with G, and A with A
04:20 WarrTab :-)
04:22 Zeno` kind of quirky
04:23 Zeno` I would have just put runptr += 4 at the end for a start
04:23 WarrTab me too
04:24 WarrTab So the body would be tmp = *runptr; *runptr = *(runptr + 2); *(runptr + 2) = tmp; runptr += 4;
04:25 WarrTab It feels weird to me to say ptr += 4; I'm used to always having a * sizeof(something) there
04:27 WarrTab I'll pull in those code review changes soon, maybe tomorrow.
04:27 Zeno` well sizeof(unsigned char) aka sizeof(u8) is guaranteed to be 1
04:28 Zeno` but you wouldn't do that anyway
04:28 WarrTab sizeof(u8) is more self-documenting, but I'm not a stickler for self-documenting code...
04:28 Zeno` even if it was u16 *runptr; you'd still do runptr += 4
04:29 Zeno` because pointer arithmetic honours sizes
04:29 WarrTab oh yeah, language quirl
04:29 WarrTab S/.$/k/
04:29 WarrTab I actually always hated that
04:30 WarrTab but when doing pointer walks, I seem to find myself walking with a pointer of s type different than the data elements
04:32 Zeno` yes, but you might be crazy
04:32 Zeno` hehe
04:32 WarrTab I probably am.
04:32 WarrTab No, wait, I actually have proof, come to think of it
04:32 Zeno` the whole loop doesn't need to be written using pointer notation and in this case maybe [] notation would be better
04:34 WarrTab https://gitlab.com/blindpass/gen2 <- proof of my crazy
04:34 WarrTab Zeno`: IIRC pointer walks instead of array walks is a micro-optimization.
04:35 WarrTab Pointer += 4 is faster than idx++, pointer = (idx * 4)
04:36 WarrTab actually, the readme at https://gitlab.com/blindpass/android/blob/master/README might be better, though it hasn't been updated to latest version
04:37 Zeno` using [] notation is equivalent
04:37 Zeno` there's no optimisation (honest)
04:38 WarrTab the whole "pointer walks are faster" actually predates most compiler optimizations... and a lot of cpu tech too
04:39 Zeno` but in C the [] notation is simply shorthand for a pointer dereference
04:39 WarrTab I'm thinking back in the 286 days
04:39 Zeno` pre-ANSI?
04:39 Zeno` I dunno about pre-ANSI C, but it's been like this since c89
04:40 WarrTab it's calculating the pointer that's theoretically slower
04:40 WarrTab Though not slower in practice of your memory controller is the bottleneck anyway
04:41 Zeno` No idea how... it produces the same ASM (and the asm is as I'd expect even for 286)
04:41 Zeno` but I'll research it later since it might yield some interesting point of history :)
04:42 hmmmm and xor eax, eax used to be faster too
04:42 Hunterz joined #minetest-dev
04:42 hmmmm stuff evolves
04:42 WarrTab Reminds me of http://underhanded.xcott.com/?page_id=15
04:42 Zeno` yeah that's true
04:43 Zeno` hang on, are you say incrementing the pointer by ONE might be faster?
04:43 Zeno` (or might have historically been faster?)
04:43 hmmmm lea edi, dword [ebx + ecx * 4]  vs.  add edi, 4
04:43 WarrTab No, saying that pointer += 4 would be faster than idx++ and using []
04:44 hmmmm I guess that is true in the strict sense of what happens
04:44 WarrTab But knowing gcc, it probably already optimizes that for you
04:44 hmmmm but the compiler might look into what it is you're actually doing and notice
04:44 hmmmm "oh, this guy isn't actually using the counter "i" as he steps through the array"
04:44 hmmmm "i can leverage this by advancing the pointer instead of incrementing the pointer and calculating the effective address
04:45 hmmmm s/pointer/counter/
04:45 Zeno` a[0] actually, internally, has always been "translated" to *a
04:45 WarrTab trying to micro-optimize like that could be bad, at best second-guessing the compiler, and at worst tripping it up
04:45 Zeno` that's it! I'm installing Turbo C
04:45 Zeno` first edition
04:45 hmmmm Watcom C
04:45 Zeno` Watcom is too advanced
04:46 hmmmm watcom used to be teh shit
04:46 hmmmm back in 1992
04:46 Zeno` it had better memory support
04:46 WarrTab man, I was still doing basic back then
04:46 Zeno` can't remember what it was called... (the tech)
04:46 hmmmm I was 1 year old =]
04:46 WarrTab Damn, you're pretty young
04:47 WarrTab I was 11
04:48 Zeno` we might be taling about different things about the micro-optimisation
04:48 Zeno` http://dpaste.com/2VCAEJ0  <--- those two snippets have always been exactly the same
04:49 hmmmm yea
04:49 Zeno` (apart from notational sugar)
04:49 hmmmm what warrtab is talking about is different
04:49 Zeno` I thought so... no wonder I was confused
04:50 hmmmm for (int i = 0; i != ARRAYLEN(thing); i++) { something(thing[i]); }
04:50 WarrTab Those snippets wouldn't be the same on 1980's technology, though ;-)
04:50 hmmmm vs. for (FOO *foo = *thing; foo != thing + sizeof(thing); foo++) { something(foo); }
04:51 WarrTab Though by today's standards they'd both be excruciating
04:51 hmmmm the latter is, at least in theory, faster because it requires less instructions
04:51 hmmmm though the compiler might look at the first snippet and decide you're not actually using the counter for anything other than array indexing and make it equivalent to the latter in the output
04:52 WarrTab In practice, your processor is an order of magnitude faster than RAM, so if your data is large enough for cache misses, you won't notice a diff
04:52 Zeno` I assert that they /were/ exactly the same in 1980 :P
04:53 hmmmm yeah
04:53 WarrTab If it's not larger than the cache, you won't notice the entire loop, probably
04:53 hmmmm in the C language, 2[runptr] == *(2 + runptr) == *(runptr + 2) == runptr[2]
04:53 Zeno` I think the optimisation would be doing runptr++ four times and four times only
04:53 hmmmm -funroll-loops
04:53 hmmmm fun fruit rollups
04:53 Zeno` (back in dem olden days)
04:54 WarrTab Loop unrolling is itself tricky
04:54 Zeno` actually in the olden days you would have made that inline asm lol
04:54 WarrTab fewer loop iterations, BUT uses more cache up, AND affects the branch predictor
04:54 Zeno` not in the olden days
04:55 * hmmmm hides
04:55 Zeno` I'm going to convert all this to bit twiddling
04:55 Zeno` that's how the pros do it
04:55 WarrTab Oh, ugh :-)
04:56 hmmmm guys
04:56 WarrTab RGBA = ((BGRA & 0xff00ff00) ror 16) | (BGRA & 0xff00ff)
04:56 hmmmm let's talk about schematic paths
04:57 hmmmm erm, nevermind
04:58 WarrTab Is there even an operator in c/c++ for binary barrel rotation?
05:00 hmmmm nope
05:00 WarrTab Boo
05:00 hmmmm gcc has excellent recognition of the standard ROL() ROR() macros and converts them from their expansion into the instruction
05:01 WarrTab ah, nice
05:01 hmmmm okay I think what I'm going to do is try to detect if the schematic path is relative of absolute
05:01 hmmmm if it's relative, I'll prepend the mod path
05:02 hmmmm anybody have a problem with this??
05:02 Zeno` I've optimised it: http://dpaste.com/1DR6C6R  can merge?
05:02 Zeno` schematic paths
05:02 Zeno` yeah, I think that's a good idea
05:03 hmmmm the thing is.... do we know if minetest.get_modpath() always returns an absolute path?
05:03 WarrTab I doubt it
05:04 Zeno` This is what I started looking at the other day and that's just one of the questions I tried to answer to myself
05:04 WarrTab I still run the thing on openbsd.  It, and other sort-of-ported-to platforms may use rel paths with run_in_place
05:05 hmmmm I think it is, IF running on a platform with path autodetection (i.e. the big four)
05:05 hmmmm warrtab is right, my KERN_PROC_PATH hack only works on FreeBSD
05:05 hmmmm I should fix this to work with the other 3 popular bsds
05:05 hmmmm also I should fix it so it works on valgrind...
05:06 WarrTab I doubt OpenBSD will ever willingly add an API to get the path of last exec
05:06 WarrTab "What executable image am I running" is a perfectly sensible question to ask on a spawn-paradigm platform like windows...
05:07 WarrTab Less-so on a fork-and-exec-or-maybe-overlay platform like unix
05:07 hmmmm alright
05:07 hmmmm it seems like there really is no way to find the full path on openbsd
05:07 hmmmm that's stupid...
05:08 WarrTab "the full path of what" is the key question
05:08 hmmmm full path of the currently running executable
05:08 WarrTab What you're really asking is "what was the path of my last exec() call"
05:08 hmmmm hopefully absolute path
05:09 hmmmm having an absolute path is absolutely necessay here otherwise my proposed solution just won't work
05:09 hmmmm necessary*
05:10 WarrTab I guess you could throw a hack in for the obscure platforms
05:10 WarrTab Maybe a path prefixed with ./ or something to force relative interpretation...?
05:10 Zeno` or maybe the full path is in argv[0]... who knows
05:10 WarrTab Though I guess that's still backwards from what you want
05:11 WarrTab Argv[0] could very well be an interpreter or launcher or hardlink or wrapper or any number of bizarre things
05:11 hmmmm openbsd doesn't have procfs, right?
05:11 hmmmm just checking
05:11 WarrTab I think execve or something lets you pass anything you want as argv[0]
05:12 Zeno` secret messages
05:12 WarrTab Openbsd actually recently ripped procfs support out completely
05:12 hmmmm awesome
05:12 WarrTab You could add a cmdline option like --abspath
05:12 hmmmm don't we have that??
05:12 hmmmm hrm
05:13 WarrTab We could trust argv[0] under MOST circumstances and use --abspath to work around the rest
05:13 WarrTab ./minetest --abspath=`pwd`
05:14 hmmmm you bring up an excellent point
05:14 hmmmm why do we even care about the path of the executable
05:14 WarrTab I think I might have used ./ as abs path in porting when I last played with BSD support
05:14 hmmmm why aren't we using getcwd()
05:14 WarrTab Yep
05:14 WarrTab For run_in_place, makes the most sense
05:14 hmmmm i don't know this is what celeron was doing and we all just went along with it and never performed any critical thinking
05:15 WarrTab For non-run_in_place, those paths oughtta be compiled in
05:16 WarrTab I think cwd == dir of executable is a reasonable assumption on most platforms
05:16 hmmmm that would also fix the freebsd valgrind problem
05:16 WarrTab Even on windows dbl-clicking an icon, runs the program by default from its own dir
05:17 Zeno` does anyone use run_in_place?
05:17 WarrTab I do
05:17 hmmmm me :)
05:17 Zeno` I dunno what it does
05:17 hmmmm i think the majority of people use run_in_place
05:17 WarrTab run-in-not-place is for root installs
05:17 Zeno` I've never used it and I don't do "root installs"
05:17 WarrTab Windows is ONLY run_in_place IIRC
05:17 hmmmm yep
05:17 Zeno` I have three different directories where minetest bin is actually
05:18 Zeno` all of them in my home dir
05:18 Zeno` and everything else in ~/.minetest/
05:18 Zeno` just works(TM)
05:19 WarrTab I actually run_in_place, where _place just so happens to be ~/.minetest, with a rats' nest of symlinks :-)
05:19 hmmmm here's the patch that added initializePaths:  https://github.com/minetest/minetest/commit/6b6c2d37ea1f9075c4fbf0d7e2d52e527e1f86aa
05:19 hmmmm we need to ask celeron what the reasoning behind this is before changing it
05:19 hmmmm also we need to expect that changing it to the proper behavior will break things
05:20 hmmmm celeron55:  i am highlighing your nick
05:23 Zeno` after looking at that function in porting (but the modern version) I wonder how my setup even works considering I don't use RUN_IN_PLACE
05:23 hmmmm how minetest works is nothing short of a miracle
05:23 WarrTab "use cwd" was how I originally fixed OpenBSD portability in https://github.com/minetest/minetest/commit/2636c92075196b4c2cd65327b1f839f1e8919b83
05:24 Zeno` oh // Get path to executable
05:25 Zeno` so it seems on linux that it still gets the executable even if !defined RUN_IN_PLACE
05:25 Zeno` I won't worry about it. Works, so *shrug*. Someone else can deal with that terrible function heh
05:27 WarrTab The entire concept of "path to executable" is really a Windowsism, and even on that platform, as of Windows 8 at least, programs, program data, and config go in 3 different places now.
05:28 WarrTab On unix, programs are generally meant to get data from compiled-in paths, cmdline, cwd, or ~/something...
05:29 WarrTab It's actually kind of weird to have minetest exec in ~/.minetest/bin instead of ~/bin
05:30 est31 what is ~/bin?
05:30 WarrTab Except I'm not even sure if MT compiles on OpenBSD with RUN_IN_PLACE=0 w/o patches and hacks
05:30 est31 on which os is it convention?
05:30 hmmmm https://github.com/minetest/minetest/issues/2527#issuecomment-84811738
05:30 hmmmm lol proller
05:31 est31 yea
05:32 WarrTab est31 no idea on the convention, but where else do you put stuff to add to $PATH?
05:33 est31 I don't have a user-wide path. but it is convention to have a ~/.$APPLNAME directory, mostly however for data
05:33 WarrTab Btw, re: red sun, it seems there are still some places in code that are using images w/ specific pixel offsets that get thrown off...
05:33 WarrTab Sifns lib was one, sun color is the other.
05:34 WarrTab 2 potential fixes I see so far:
05:34 WarrTab 1. Don't resize textures until they're bound to a mesh; could be complicated based on acces, though
05:35 WarrTab 2. Make the sun color thing relative to image size instead of absolute
05:35 Zeno` I have minetest in ~/minetest-build-debug ~/minetest-build-release and ~/minetest-build-stable
05:35 WarrTab est31 what's $APPLNAME?
05:35 est31 the application's name
05:35 * VanessaE peeks in
05:35 est31 I have alot of ~/.$omething directories...
05:36 Zeno` these aren't .skfjksjf dirs though
05:36 WarrTab so you have to type out the path for everything?  Or you have a lot of stuff in $PATH?
05:36 VanessaE WarrTab: red sun....you know, I had noticed something was a little "off" about HDX's sun texture yesterday -- seemed too red.  guess that explains it.
05:36 Zeno` I type the full path
05:36 VanessaE (I didn't think anything of it at the time)
05:37 VanessaE (I assumed my tone map just needed adjusted)
05:37 Zeno` (well I don't because I have scripts, but I effectively type the full path)
05:37 est31 WarrTab, I do ctrl+R
05:37 WarrTab vanessae: it needed not adjusted is the actual issue :-)
05:37 Zeno` I'm bisecting it now
05:37 VanessaE WarrTab: heh ok
05:38 WarrTab zeno: it's the image scaling thing
05:38 est31 yes its already bisected
05:38 Zeno` oh it's adready been bisected? ok
05:38 WarrTab As a short-term fix, we could set texture_min_size=1 in defaultsettimgs.cpp
05:39 WarrTab Apparently our default of 16 as "effectively disabled by default" wasn't quite disabled enough
05:39 WarrTab Friggin' 1px textures...
05:40 WarrTab Might be just as quick to fix the tonemap code though
05:40 WarrTab If anyone knows where it is...
05:42 WarrTab Ah, got it
05:42 WarrTab sky.cpp line 163
05:42 WarrTab That 511 needs to not be a literal
05:42 WarrTab It should be texture height - 1, I guess
05:43 WarrTab It's a 1-line fix; I'd do it myself, but not near a computer suitable for it
05:45 WarrTab To be REALLY correct, offset should be calculated separately for sun/moon, incase the have different size tonemaps
05:46 Warr1024 joined #minetest-dev
05:46 WarrTab Meh, maybe I'll whip up a pr
05:55 jin_xi joined #minetest-dev
05:56 Warr1024 btw, didn't know you could pull specific texels from a texture...
05:57 Warr1024 makes me wonder whether (1) sun/moon tonemaps don't work on android, or (2) we can use them to work around the texture->image issues we've been having with RTT
06:04 Zeno` a) I imagine that u8 *texels = (u8 *)m_sun_tonemap->lock(ETLM_READ_ONLY); would be more efficient  and b) why is the returned pointer not checked for NULL?
06:05 VanessaE ok what is with the HORRIBLE lag while crafting stuff?
06:06 VanessaE (in singleplayer)
06:06 Zeno` it's been optimised
06:06 VanessaE (I'm at f6f8250 at the moment)
06:07 Zeno` i was joking, but I don't see the lag?
06:09 VanessaE placing items in the craft grid results in them jumping back and forth between the grid and inventory
06:09 VanessaE the lag is small but it's enough to be REALLY annoying
06:09 * Zeno` looks again
06:10 VanessaE it's like there's no inventory prediction anymore
06:12 Zeno` inventory in the formspec or on the HUD?
06:12 VanessaE in the formspec.
06:12 Zeno` I don't see it and I'm using a debug build with no LuaJIT
06:12 VanessaE moving items from inventory slots to the crafting grid.
06:12 Zeno` (at HEAD)
06:12 * Zeno` tries a dbuilder game
06:13 VanessaE can you pull dreambuilder and see if it's just broken there?
06:13 Zeno` I'm testing an old version of dreambuilder... taking ages to start up heh
06:16 Zeno` I see it now with unified inventory (if that's what the mod is)
06:16 * Zeno` tries release build
06:18 Warr1024 are you testing on a server, or singleplayer?
06:18 VanessaE singleplayer
06:18 Zeno` singleplayer
06:18 VanessaE ninja'd :)
06:18 Zeno` so I was using the same as VanessaE
06:18 Zeno` heh
06:18 VanessaE Zeno`:  how old is "old"?
06:19 Zeno` ancient
06:19 VanessaE just wondering, in case it's u_i that's broken
06:19 Warr1024 ugh, my fix isn't working
06:20 Zeno` ok, let me look...
06:20 Zeno` VanessaE, 3f99e214d48a4eea12420a5ea97aa62c838c6e0b
06:20 Zeno` Warr1024, I suppose you could just avoid upscaling 1px images
06:20 VanessaE well that's not super old, but reasonably so.
06:20 Warr1024 Hm, I guess that could work.
06:21 Warr1024 I think that was proller's workaround
06:21 Warr1024 since I suppose 1px images won't experience blurring anyway
06:21 Zeno` I never look there (don't want to taint myself heh)
06:21 Warr1024 ugh, seems like a cop-out to special-case it :-)
06:22 Zeno` dunno if it's a cop-out
06:22 Zeno` :P
06:22 Zeno` probably an optimisation even
06:22 Zeno` VanessaE, I notice the lag with LuaJIT and release build also
06:23 VanessaE Zeno`: any chance this is a u_i bug?
06:23 Zeno` VanessaE, I'd be guessing without trying to find the cause of it :)
06:23 Zeno` But it never used to be like that
06:23 Zeno` Well, I don't think it did... I'm sure I would have noticed something that annoying
06:25 VanessaE it feels very much like using a chest on a laggy server
06:25 VanessaE or a crafting table in Realtest, on a bad day
06:25 Zeno` yes
06:28 Warr1024 #2538
06:28 ShadowBot https://github.com/minetest/minetest/issues/2538 -- Fix for sun/moon tonemaps: dont upscale 1px images. by Warr1024
06:30 Warr1024 someone should tell proller that there IS an "already fixed in freeminer" tag for issues: it's called him opening up a PR and sending the fix upstream :-)
06:32 Warr1024 ooh, guiscaling actually anti-aliases the menu background too; I hadn't noticed that I had covered that too.
06:33 Zeno` I don't like the extra parenthesis :P
06:35 Warr1024 paranoia about compilers that ignore standards when it comes to order of ops
06:36 Warr1024 and, frankly, novice devs who misread them
06:36 Warr1024 The guy who taught me that feared the former, but I've learned to fear the latter more often.
06:38 Warr1024 of course, you can fix any style issues you come across when you commit it, I suppose.
06:38 Warr1024 As long as you don't end up introducing a bug I get blamed for :-P
06:38 Zeno` https://gist.github.com/Zeno-/3e6e2ae6644e5c8c7e29
06:39 Zeno` Why? It's better to give you the fix so you get blamed for the bug isn't it?
06:39 Zeno` :p
06:39 Warr1024 composing 2 images together doesn't work very well when one of them is a high-res image from a texture pack, and the other is not texture-packed.
06:40 Warr1024 *looks* okay.  I take it it runs okay?
06:40 Warr1024 Not a fan of your extra whitespace either :-)
06:40 Zeno` Didn't test it
06:41 Zeno` what whitespace?
06:41 Warr1024 lines 14 and 15
06:41 Zeno` mistake :)
06:41 Warr1024 I do like the early return style, though, thanks.
06:41 Zeno` yw
06:41 Zeno` haha :D
06:42 Warr1024 I straight-ported my old code, and the old code couldn't do that.
06:42 Warr1024 I get complaints about return/break/continue use occasionally
06:42 Warr1024 flow control purists kind of hate them
06:42 Zeno` oh fix that opening brace as well?
06:42 Zeno` (for the start of the function)
06:42 Warr1024 but I hate indenting to the point where shit is all crammed on the rightmost few columns..
06:43 Zeno` yeah, purists would say you don't need early returns, continue, break, goto, etc
06:43 Zeno` but realists are a bit more... hmm, realistic? :)
06:43 Zeno` of course you don't *Need* them, but they sure make the code cleaner (especially the indentation levels)
06:44 est31 doublists are even more.
06:44 Warr1024 goto I don't use, myself; not so much because of dogma, as I just (1) haven't had to, and (2) can't remember label syntax in C/C++.
06:44 Zeno` goto use case is rare but there are valid cases
06:44 est31 not realistic but doublistic
06:44 Hunterz joined #minetest-dev
06:44 Zeno` wtf is doublistic? lol
06:45 Zeno` oh probably shouldn't use switch either... huge goto-like jump table... horrible
06:45 est31 mhh you are right, reals are better than doubles
06:45 Zeno` that has to be the worst joke I've ever head lmao :D
06:45 est31 reals are really uncountable though.
06:46 Zeno` that's why I don't use them
06:46 Zeno` integers are all that's required
06:46 est31 there are reals that no c program can output for any input.
06:46 est31 input which has an end.
06:47 Zeno` unreal
06:48 Zeno` Warr1024, "The guy who taught me was paranoid about compilers that ignore standards when it comes to order of ops"
06:48 Zeno` is he on medication now?
06:49 Zeno` lol, I find that really funny (sorry)
06:50 Warr1024 Zeno`: you get burned once, you learn to be careful
06:50 Zeno` well he missed an op
06:50 Warr1024 oh?
06:50 Zeno` if (((dim.Width) <= 1 || ((dim.Height) <= 1))
06:50 Warr1024 cute
06:51 Zeno` anyway it must have been a very bad compiler :(
06:51 Warr1024 there are no shortage of those, you just don't hear much about them...
06:51 jin_xi +1 for extra parens from both a lisper and user of many different languages all with subtly different rules for precedence
06:51 Zeno` the *really* bad ones might even ignore precedence of parenthesis
06:52 Warr1024 ha
06:52 Warr1024 jin_xi: thanks, nice to be appreciated for a change ;-)
06:52 Zeno` harsh crowd
06:52 Warr1024 I also don't really bother to learn the intricacies of order of ops for any particular language
06:53 Zeno` Me either
06:53 Warr1024 the "my dear aunt sally" ones aren't so bad, but the bit twiddling ones can be weird.
06:53 Warr1024 parens help me not have to worry about those.
06:53 Zeno` I just trust the compiler to do what I meant
06:53 Warr1024 some languages don't offer non-bitwise boolean ones
06:53 Warr1024 lol
06:54 Warr1024 no, compilers generally only compile what you type, not what you mean :-)
06:54 Warr1024 #pragma you know what I'm sayin', right?
06:54 Zeno` heh
06:54 Zeno` So they don't guess?
06:54 Zeno` stupid things
06:55 Warr1024 actually, sometimes they do, and that can be problematic.
06:55 Zeno` Well, guess is the wrong word. They should really look at the context and determine what I *really* meant to type but typed incorrectly and silently correct me
06:55 Warr1024 if you're working on something sensitive enough, like driver code, then the compiler's optimizations based on its guess of what you intended can be wrong...
06:56 Warr1024 When LibreSSL first forked from OpenSSL, there were a number of downstream projects to try to port it to other operating systems.
06:56 Warr1024 but these had problems, such as leakage of sensitive informaion
06:56 Zeno` you know my words in the last 10 minutes have been dripping with sarcasm, right?
06:57 Warr1024 one of the culprits was the fact that compilers like to optimize away bzero before free
06:57 Zeno` sometimes people don't realise when I'm being sarcastic... probably the nature of the medium we're communicating on
06:57 Warr1024 Zeno`: was that before or after the mention of extra parens?
06:57 Zeno` well, after that
06:58 Warr1024 well, just because you were being facetious about compilers trying to "guess" what you mean doesn't mean that they don't actually do that :-)
06:58 Zeno` oh, I do know :)
06:59 Warr1024 what's the story on the PR, btw?  Were you going to merge it, or kick back some code review comments, or pass it on for further review?
06:59 Warr1024 it's a bugfix, but probably not ultra-critical
06:59 Zeno` oh yeah.. forgot about that
06:59 Warr1024 I mean, a red sun is damn creepy, but it's not exactly a segfault :-)
07:00 Zeno` I suppose I can leave the extra indentation
07:01 Warr1024 I don't mind any of the changes you had proposed
07:02 Zeno` they make the PR less trivial
07:02 Warr1024 though I suspect I'll probably over-parenthesize future diffs too...
07:02 Zeno` and I'd then have to get approval from another dev :)
07:02 Warr1024 just typing the space after if and for is damn hard to do :-)
07:02 Warr1024 well, you can split the patch
07:02 Zeno` So I left it as-is because it's obvious that it's a trivial fix
07:02 Warr1024 submit the critical parts, and then do a style pass later
07:03 Warr1024 eh, it's not really difficult to understand the code either way
07:03 Zeno` correct
07:04 Warr1024 awesome
07:05 Warr1024 should we close 2527, or is there some level of confirmation of the fix necessar?
07:05 Zeno` yeah I'm doing it now but got distracted :)
07:06 Warr1024 awesome, only one more reported issue related to that upscale patch :-)
07:06 Zeno` does github have an API?
07:06 Zeno` would be nice to automate some of this
07:06 Warr1024 yeah, I haven't messed with it much though.
07:06 Warr1024 everybody who's anybody has an API :-)
07:06 Zeno` true :)
07:07 Zeno` Secure Connection Failed
07:07 Zeno` ok well I give up
07:07 Zeno` lol
07:07 Zeno` github has been really bad for me for the last couple of days
07:07 Zeno` pages not loading, things not being formatted, avatars displayed incorrectly, etc etc etc
07:08 Warr1024 yeah, I guess I'm done for the night too.
07:08 Zeno` I'd better cook dinner
07:08 Warr1024 I think guiscaling could use a bit of time to gather some reviews and testing...
07:08 Warr1024 later
07:08 Warr1024 thanks for the quick fixes, btw.
07:08 Zeno` bbl as well
07:22 blaze joined #minetest-dev
07:49 celeron55 hmmmm: the path detection code is indeed rather unconventional, but it has done its job of allowing users and developers to not care about CWD quite well
07:49 celeron55 i don't remember what the original case was that made me add that
07:51 hmmmm what would break if it were changed to only use cwd
07:51 celeron55 oh that commit actually does two things
07:52 celeron55 it adds RUN_IN_PLACE, AND implements it using a system that primarily uses the executable's path
07:52 hmmmm i see
07:52 hmmmm ahh
07:52 celeron55 hmmmm: maybe not, but it would probably break many user's setups and some build systems that have weird stuff going on with CWD
07:53 hmmmm so if somebody wanted to run minetest like projects/dev/minetest/bin/minetest it'd get the assets from the correct place
07:53 hmmmm right this is the correct "spirit" of RUN_IN_PLACE.. it's running relative to where the executable is supposed to be
07:53 celeron55 and it would start a fight of whether CWD should be in the root of minetest or in bin and what's the difference between a run-in-place and non-run-in-place versions regarding to that
07:54 hmmmm the only problem is that on some platforms, getting the executable path is hard
07:54 hmmmm it can't be done on OpenBSD, for example.  simply can't
07:54 celeron55 i'm not arguing that that's the only way to do it, but it has served us during the four years quite well if you ask me
07:54 hmmmm on FreeBSD, my sysctl code actually breaks valgrind
07:55 hmmmm and that's sort of a bummer
07:57 hmmmm okay I think I know what to do
07:58 celeron55 the code is ugly though
07:58 celeron55 but that's not a problem with what the code does
07:59 celeron55 (just a code-organizational issue)
08:07 est31 hmmmm, what about  /proc/curproc/file  ?
08:08 hmmmm procfs is not used by default on freebsd and netbsd; it doesn't exist on openbsd at all
08:08 hmmmm you cannot rely on the existence of procfs
08:08 est31 good to know.
08:08 est31 there is no $0 trick?
08:08 hmmmm nope.  on openbsd they expect you to use the cwd for these sorts of situations
08:08 hmmmm which obviously has problems
08:09 est31 I always start my minetest from my desktop
08:10 hmmmm god dammit l_mapgen.cpp is such a mess =]
08:10 hmmmm was out all day and I wanted to get some serious stuff done
08:10 hmmmm night all
08:10 est31 bye
08:12 est31 when its their philosophy, follow it.
08:12 est31 just dont force all users to it.
08:13 nrzkt joined #minetest-dev
08:25 Calinou joined #minetest-dev
08:37 SopaXorzTaker joined #minetest-dev
08:50 kilbith joined #minetest-dev
10:05 SopaXorzTaker joined #minetest-dev
10:07 est31 joined #minetest-dev
10:10 est31 finally, minetest is also available in the f-droid app store! https://f-droid.org/repository/browse/?fdfilter=mine&amp;fdid=net.minetest.minetest
10:15 rom1504 joined #minetest-dev
10:24 est31 and the proper URL is https://f-droid.org/repository/browse/?fdid=net.minetest.minetest
10:27 Calinou they have an IRC btw, #fdroid
10:54 Player_2 joined #minetest-dev
11:12 Zeno` joined #minetest-dev
11:13 Calinou joined #minetest-dev
11:27 FR^2 joined #minetest-dev
11:27 MinetestForFun joined #minetest-dev
11:34 Ritchie joined #minetest-dev
11:36 SopaXorzTaker joined #minetest-dev
12:22 Zeno` joined #minetest-dev
12:57 Zeno` kinda quiet
13:26 Zeno` nrzkt, are you awake?
13:26 est31 https://github.com/minetest/minetest/pull/2540#issuecomment-84995376
13:26 est31 seems so
13:27 MinetestForFun joined #minetest-dev
13:29 Zeno` github is not working for me very well :/
13:30 est31 send them a mail, or complain to support
13:30 est31 they are a corp
13:30 est31 I have a nasty github issue too
13:30 est31 but old one and I can live with
13:31 Zeno` I have
13:31 Zeno` :)
13:31 Zeno` The web side of github is basically unusable for me atm
13:32 est31 when did you ask them
13:32 Zeno` about 20 minutes ago
13:33 Zeno` it's been slowly getting worse for me over the last 5-7 days (on all 4 of my computers... browser doesn't matter)
13:33 est31 I'm 100 percent sure its the alf. can you reproduce it with non-alf accounts?
13:33 * est31 lost a bad joke again. where is it?
13:34 Zeno` lol
13:35 kilbith https://github.com/minetest/minetest/issues/2541
13:35 kilbith thanks for chasing the bug ^
13:39 Zeno` ?
13:41 nrzkt i looked at the code, the problem is serverside for me. It's not a network bug, the sent content is not right
13:43 Zeno` I'm sorry, but are you serious?
13:43 nrzkt the packet sending is a raw copy from asyncrunstep and the packet decoding is strictly exact, else everybody would have a bug. Then the only think possible is an object with wrong datas on server
13:43 Zeno` The server doesn't send packets?
13:43 nrzkt only thing*
13:43 nrzkt hmm, why do you say that ?
13:44 nrzkt the server send packets because the packet is handled and this exception is triggered
13:44 Zeno` because you said "the problem is serverside for me"
13:45 Zeno` I mean... it's the second time I've seen that bug report now
13:45 kilbith it's obviously, unsurprisingly not a server bug (tm) ...
13:45 nrzkt yes, the problem is on the datas written to the packet, but because the packet writing is trivial (pkt.putRawString(datas.c_str(), datas.size());)
13:45 Zeno` there was a very similar one yesterday
13:46 Zeno` Ok, let's put it this way.  Why do the servers suddenly "have the wrong data"?
13:47 nrzkt it's only into 1 world of this player, as he said in the pr
13:47 nrzkt then the condition is not matched every time
13:47 Zeno` Yesterday's bug report was from LazyJ as well?
13:47 est31 yes
13:47 nrzkt it's this report
13:47 est31 the one you wanted to rebase
13:48 Zeno` I wanted to rebase?
13:48 est31 the sun problem
13:48 est31 umm bisect
13:49 Zeno` so it's now fixed?
13:49 est31 I havent reproduced it
13:50 Zeno` wtf does the sun problem have to do with something the server sends anyway?
13:51 nrzkt est31 it's not related, the packet in this report isn't related to sun, it's ACTIVEOBJECT_REMOVE_ADD, sun is not an activeobject, right ?
13:51 est31 sorry perhaps I got sth wrong
13:51 * est31 needs sleep
13:53 est31 bye
13:53 err404 joined #minetest-dev
13:54 Zeno` I might have a break as well. I'm very confused atm lol
14:06 cd2 joined #minetest-dev
14:15 PilzAdam joined #minetest-dev
14:46 nrzkt PilzAdam: how signs_lib generate their names ?
14:48 PilzAdam https://github.com/VanessaE/homedecor_modpack/blob/master/signs_lib/init.lua#L442
14:49 PilzAdam basically a huge [combine
14:49 nrzkt is this a luaentitysao ?
14:50 PilzAdam yes, the texture is set to an entity
14:50 PilzAdam this is the only way to dynamically change textures
14:51 nrzkt the exception is triggered because of this call server side: https://github.com/minetest/minetest/blob/master/src/server.cpp#L757
14:52 nrzkt which refers to this: https://github.com/minetest/minetest/blob/master/src/content_sao.cpp#L353
14:52 nrzkt this is the long string forger
14:55 PilzAdam ObjectProperties::serialize uses writeU16(os, textures.size());
14:55 PilzAdam maybe the texture name contains more than 65000 chars?
14:56 PilzAdam oh wait, that is the number of textures
14:56 nrzkt yes
14:57 PilzAdam serializeString properly checks the string the length, so that isn't the problem
14:57 nrzkt yes, idem with long string
14:58 PilzAdam do you have a way to reliably reproduce it?
14:59 nrzkt at this moment no, because i don't have the user environment
14:59 nrzkt if we cannot read the size on client side, it's because there is nothing to read
15:03 nrzkt how can this be possible
15:03 nrzkt the serializer and the deserialize are correct, i don't see a problem on it
15:05 nrzkt the only place where we deserialize long strings are: deSerializeLongString
15:05 nrzkt is: https://github.com/minetest/minetest/blob/master/src/content_cao.cpp#L646
15:06 nrzkt then the num_messages is incorrect, because we have read the previous datas in the CAO
15:07 nrzkt https://github.com/minetest/minetest/blob/master/src/content_sao.cpp#L805
15:07 nrzkt it's written here, the message number and the message map
15:08 nrzkt err: https://github.com/minetest/minetest/blob/master/src/content_sao.cpp#L367 , not the playerSAO
15:11 Zeno` joined #minetest-dev
15:17 nrzkt hmm... the "Malformed packet read" is triggered by NetworkPacket, we want to read outside of the packet size
15:18 nrzkt this match the serialization error given by deSerializeLongString
15:20 hmmmm joined #minetest-dev
15:22 * VanessaE wanders in
15:23 DFeniks joined #minetest-dev
15:29 Zeno` It'd be nice if this could be reproduced somehow
15:36 VanessaE signs_lib's string size is kinda limited - I've tested it (under LuaJIT) to be able to handle some 3 or 4K in a sign (even though the sign can theoretically only display about 1k, and that's if they're all 'i' or something)
15:36 VanessaE so you can at least be confident that it's not running up against some serialization limit in Lua or so.
15:36 nrzkt i don't think it's related to size our packet size and buffer size are correct
15:37 VanessaE (that is, it's limited on input and on rendering to not go over that 3 or 4k, whatever it was)
15:39 VanessaE by serialization limit I mean, just for example, the known bug in LuaJIT where it can't handle more than 64k.
15:40 nrzkt in packets 16k or 4.2B , but generally 4.2B
15:49 VanessaE Zeno`: about the crafting delay...  could it be related to the get-all-recipes commits, since it only seems to happen under U_I and that mod uses those?
15:50 Zeno` VanessaE, I suppose it could be yeah
15:53 Zeno` strange, or not?, is that there is a possible memory leak in deSerializeLongString
15:54 Zeno` caused by clientpackethandler.cpp line 822
15:57 nrzkt 822 ? are you sure ? it's not the same packet
15:57 nrzkt https://github.com/minetest/minetest/blob/master/src/network/clientpackethandler.cpp#L822
16:01 Zeno` as I said, it's probably a coincidence but that is where the possible memory leak is occurring
16:01 Zeno` wtf
16:02 * Zeno` checks that he's at HEAD
16:02 Zeno` line 815
16:04 Warr1024 joined #minetest-dev
16:06 nrzkt you are not on the right packet zeno
16:06 nrzkt it's not this packet as the backtrace said it's ACTIVEOBJECT_REMOVE_ADD
16:06 nrzkt https://github.com/minetest/minetest/blob/master/src/network/clientpackethandler.cpp#L365
16:07 Zeno` I am saying that there is a possible memory leak caused by line 815 of clientpackethandler.cpp
16:07 Zeno` Well, I'm not saying it, I'm just reporting what valgrind is telling me
16:08 Zeno` and either it's a coincidence or not :)
16:08 nrzkt why ? std::string is not a pointer, and is not a pointer too
16:08 Zeno` it's the Buffer I imagine
16:09 nrzkt the buf[4] ?
16:09 Zeno` onl line 124 of serialize.cpp
16:10 Zeno` I'm not saying this *is* an error
16:10 Zeno` I saying that valgrind reports it
16:12 SopaXorzTaker joined #minetest-dev
16:12 nrzkt very strange why are we using Buffer<char> there ? instead of writing directly to std::string ?
16:12 Zeno` no idea
16:14 nrzkt it's useful as i see in my first test
16:15 Zeno` I'll run valgrind again
16:17 nrzkt Zeno` can you review https://github.com/nerzhul/minetest/commit/7ad167787eef6783daccfe6680a06a03905eb74d please ? I improve a little bit the interaction between Connection senders with the given packet by removing the oldForgePacket copy, replacing it by a reference
16:17 nrzkt this will improve a little bit more our network stack performance
16:26 Zeno` I'm more interested in fixing (potential) bugs than performance atm :)
16:27 nrzkt i agree with you, i only find this useful improvement when i look at the network stack today :)
16:27 VanessaE maybe a bug freeze needs to be declared?
16:28 VanessaE no performance changes, no features, strictly only bug fixes
16:28 Zeno` Not much point in optimising something that doesn't work lol (if there is a bug)
16:28 VanessaE I think we need a fairly long period with only this alloed.
16:28 VanessaE allowed*
16:29 Zeno` To be clear I'm not saying the bugs are network related; but there *are* bugs
16:29 nrzkt VanessaE, 0.4.12 is young. 1 month too early, 1 or 2 months more can be useful, bugtracking must be done in parallel of the devel
16:29 VanessaE and then at the end of said freeze, make a new release.
16:29 VanessaE nrzkt: so?  0.4.12 is a pretty nasty release (not as bad as 0.4.11, but bad)
16:29 Zeno` they may or may not be network related; either way they need to be fixed before worrying about optimisation IMO
16:29 nrzkt no problem :p
16:30 Zeno` hey 0.4.11 was very fast
16:30 VanessaE Zeno`: fast at crashing? ;)
16:30 Zeno` 50x faster than 0.4.10
16:31 Zeno` no :P
16:31 Zeno` but there were some major hiccups yeah
16:31 VanessaE but anyway I'm saying zero new features, not even the most trivial.  no performance tuning, nothing like that.  All efforts directed at fixing bugs, regardless of who made them, how they got started, or how big or trivial they are.
16:31 VanessaE and keep at it until enough are declared fixed that it's worth a new release.
16:32 nrzkt we don't have really new features on this devel version
16:32 VanessaE constant development is useless if it results in buggy code
16:32 Zeno` Does there need to be a "feature freeze" for this to happen though? It's common sense to fix bugs before optimising
16:32 kilbith Zeno`, "faster" is relative...
16:32 Zeno` kilbith, no... I have objective tests
16:32 kilbith on your i7, maybe yeah
16:32 VanessaE kilbith: yeah -- one function is 5x faster, another is 3x, another is 10x... that's already 18x. ;)
16:33 kilbith not the same output on my celeron
16:33 Zeno` no; CPU independent
16:33 Zeno` my profiling methodology doesn't care about cores or how fast the CPU is
16:34 Zeno` it's just "self cost (relative)"
16:34 Zeno` no more, no less, and there cannot be argument :P
16:34 kilbith the announced +20 FPS or +30 FPS on each of earlier commits was not noticable at all for me
16:34 kilbith your commits*
16:34 Zeno` FPS is a bogus measurement
16:35 kilbith this is what you claimed in the PRs
16:35 Zeno` I really quoted FPS gains?
16:35 kilbith yep
16:35 Zeno` If so I was wrong.
16:35 VanessaE kilbith: RAM performance will kill those FPS improvements believe it or not
16:35 VanessaE because so much of Minetest is CPU-bound instead of being handled by the graphics device
16:35 Zeno` I normally only ever quote cycle percentage relative percentages
16:36 VanessaE which in turn makes it depend on RAM and bus performance as well
16:36 kilbith but there was certainly an overall optimizing, i observe +10FPS between .10 and .11
16:36 Zeno` maybe at the start I got carried away, it's so long ago I can't remember. But, yes, FPS is not a valid measurement
16:38 Zeno` I can't imagine myself quoting FPS improvements and not qualifying the statement with "on my machine"
16:38 Zeno` but who knows... I am crazy after all
16:38 kilbith in *some* or your PRs
16:38 kilbith but anyways, doesn't matter now
16:38 kilbith *of
16:53 SopaXorzTaker joined #minetest-dev
16:55 Zeno` nrzkt: http://dpaste.com/3ZQS615
16:55 Zeno` may or may not be relevant... it could be just a coincidence as I mentioned
16:56 nrzkt 955 blocks ? it's huge
16:56 nrzkt This can explain some memory leaks on server, if the deserializeLongString has memory problems :(
16:57 Zeno` oh, those are particles
16:57 Zeno` should just disable that crap
16:57 nrzkt i go back home, see you !
16:58 Zeno` it's not the same possible leak as I got before
16:58 Zeno` oh, he's gone
16:58 VanessaE he'll be back
16:58 Zeno` 3AM here
16:58 Zeno` I think I must rest :)
17:00 roniz joined #minetest-dev
17:00 Zeno` http://dpaste.com/1R891VG
17:03 Hunterz joined #minetest-dev
17:05 jin_xi joined #minetest-dev
17:14 Wayward_One joined #minetest-dev
17:26 Jordach joined #minetest-dev
17:29 MinetestForFun joined #minetest-dev
17:38 Tablet_One joined #minetest-dev
17:39 Tablet_Two joined #minetest-dev
17:39 Krock joined #minetest-dev
17:41 ElectronLibre joined #minetest-dev
17:51 Tablet_One joined #minetest-dev
17:56 paramat joined #minetest-dev
18:01 paramat hi hmmmm please could you approve my generate_ores/decos PR? #2533
18:01 ShadowBot https://github.com/minetest/minetest/issues/2533 -- lua_api/l_mapgen: Fix volume of minetest.generate_ores/decorations to mapchunk volume by paramat
18:31 roniz_ joined #minetest-dev
18:34 rubenwardy joined #minetest-dev
18:40 est31 joined #minetest-dev
18:59 shadowzone joined #minetest-dev
19:04 misprint joined #minetest-dev
19:04 ekem joined #minetest-dev
19:10 shadowzone joined #minetest-dev
19:30 Tesseract joined #minetest-dev
19:38 FR^2 joined #minetest-dev
19:40 paramat left #minetest-dev
19:46 hmmmm joined #minetest-dev
19:55 MinetestForFun joined #minetest-dev
20:04 shadowzone joined #minetest-dev
20:06 casimir joined #minetest-dev
20:08 casimir Greetings. In just updated my minetest after a while. And I'm mildly shocked. Why do no-fancy leaves look that ugly? Why did it crash when I wanted to craft something, and why do I have damage-flash and sound when damage is turned of? What is happening to this game?
20:10 hmmmm do you have anisotropic, bilinear, or trilinear filtering enabled?
20:11 casimir No. It has nothing to do with this.
20:12 hmmmm you're sure you don't have them enabled?
20:12 hmmmm you shouldn't notice any 'ugliness' with leaves in that case
20:12 hmmmm could you take a screenshot of what you mean?
20:12 casimir I'm sure. Screenshot incoming.
20:13 hmmmm are you using a custom texture pack
20:14 casimir http://screenshot.ru/upload/images/2015/03/23/screenshot_12123900148dad8.png
20:15 hmmmm could you give a screenshot of the same scene with texture_clean_transparent = false?
20:15 hmmmm also what video card do you have?
20:17 casimir Ok, with this setting they look how they are supposed to. Is it new?
20:17 est31 VanessaE, you there?
20:17 hmmmm yeah it's new
20:17 hmmmm you weren't supposed to see any difference unless you had some kind of filtering enabled
20:18 hmmmm also can you give a backtrace of the crafting crash?
20:18 hmmmm as far as the last thing you mentioned:  i saw you are using 0.5.0-dev, not the master branch
20:18 hmmmm this is fixed in the master branch
20:19 kilbith casimir, no-fancy leaves disable the alpha channel in the texture, now you no longer see the odd black background on them
20:20 est31 VanessaE, I have bisected the issue you had concerns about, and it is 1b2f64473ed4f222d3b7f02df853730d4382105e.
20:20 est31 (the move stuff from craft field to inventory and back one earlier today)
20:21 casimir thank you hmmmm
20:21 est31 s/it is/its caused by/
20:22 casimir kilbith, I use a dark green background for that reason, and that looks much better.
20:23 kilbith well, now instead of having the patterns + the plain background on them, the leaves are just mixed
20:23 casimir About the crash, I have nothing in my logs.
20:23 MinetestForFun_ joined #minetest-dev
20:28 shadowzone joined #minetest-dev
20:35 est31 VanessaE, see #2544
20:35 ShadowBot https://github.com/minetest/minetest/issues/2544 -- Moving items into crafing grid and back got glitchy (regression) on dreambuilder
20:38 Warr1024 we probably never tested some of the filtering with non-fancy leaves because it doesn't really seem to make much sense to have fancy everything EXCEPT leaves...
20:38 est31 btw the optimisation commits that were merged recently are only about the other direction: output -> input
20:38 Warr1024 how are fancy leaves implemented?  Are they part of the engine, or part of _game?
20:39 Warr1024 seems like it would have been better to actually use a separate texture for leaves when non-fancy...
20:40 est31 my suspicion on 2544 is though that it only exposes a deeper issue. I had similar problems with pipeworks sorttube buttons already. there is even a feature request issue by me...
20:41 Ritchie joined #minetest-dev
20:45 Robert_Zenz joined #minetest-dev
20:54 Hunterz joined #minetest-dev
20:59 Hunterz joined #minetest-dev
20:59 paramat joined #minetest-dev
21:00 Hunterz left #minetest-dev
21:02 paramat damage flash when falling or underwater, when damage is disabled, is not fixed yet
21:03 paramat anyone know why my fork of master often says 0.5dev in the corner of the screen? i only use master branch
21:04 paramat version detection seems buggy
21:07 hmmmm is casmir using your fork???
21:08 paramat nope
21:08 hmmmm hmm
21:08 hmmmm anyway, about 2533
21:08 paramat i suspect casimir's screenshot is actually master branch, but displays 0.5dev on the screen as mine does
21:09 hmmmm there definitely is value in keeping area parameters for generate_decorations and so on
21:09 hmmmm so when you added it, people had to change their code if they used it already, right?
21:09 shadowzone joined #minetest-dev
21:09 hmmmm changing it back would be even worse now
21:09 paramat yes
21:09 hmmmm why not make it an optional parameter
21:10 hmmmm i'm still not sure what would make the most sense in terms of "do things inside a voxelmanip" apis
21:10 hmmmm it's very likely that whenever somebody is going to a). calculate lighting, b). update liquids, c). place ores and decorations they're probably doing it from the context of a mapgen voxelmanip
21:11 paramat i only know of one modder using generate_ores/decos, changing back would make their original code work, so better for them
21:11 hmmmm hrmmm
21:11 paramat but with minp, maxp this time as it should be
21:12 hmmmm i think we should make the two pmin/pmax parameters optional
21:12 hmmmm what about you?
21:12 hmmmm and getBlockSeed should use pmin as its position
21:12 paramat ..and default to minp/maxp
21:12 hmmmm right
21:13 hmmmm well minp/max would default to the inner edge of a mapgen voxelmanip
21:13 hmmmm but this way if somebody has a voxelmanip that isn't from the mapgen, they're able to make it work
21:13 paramat i'm sorta neutral but can't see a use for p1/p2
21:13 hmmmm well like i just said
21:13 hmmmm if somebody is decorating from within a non-mapgen voxelmanip
21:13 hmmmm then having a p1/p2 would be absolutely necessary
21:13 paramat ah
21:14 paramat okay i'll make it optional p1/p2
21:14 hmmmm you might be wondering why anybody would generate ores and decorations in a non-mapgen voxelmanip
21:14 hmmmm i am too, but you never know until it happens
21:14 paramat yeah
21:14 hmmmm things get used in very interesting and innovative ways
21:15 paramat and these optional p1/p2 should be checked for validity and sorted
21:15 hmmmm heh I think I just thought of a potential use for modifying hud in an on_generate callback
21:15 hmmmm well
21:15 hmmmm we'll change all the push_v3s16s to check_v3s16s in a different commit
21:16 paramat yeah, as i don't know how to check validity
21:16 paramat i'll just sort
21:16 paramat #2543
21:16 ShadowBot https://github.com/minetest/minetest/issues/2543 -- Mgv6: Use heightmap in placeTreesAndJungleGrass() by paramat
21:17 hmmmm v3s16 pmin = lua_istable(L, 2) ? read_v3s16(L, 2) : mg.vm->m_area.MinEdge + v3s16(1,1,1) * MAP_BLOCKSIZE;
21:17 hmmmm like that
21:17 paramat ah okay
21:18 hmmmm 2543 looks good
21:19 paramat oh and blockseed should be either p1 or default minp?
21:19 hmmmm just make it minp
21:19 hmmmm erm, p1 after sorting
21:19 hmmmm it should be "the minimum coordinate that generation is going to happen at"
21:20 paramat ah okay
21:22 roniz joined #minetest-dev
21:22 DFeniks joined #minetest-dev
21:26 VanessaE est31: I am here now.  I see the issue you filed.
21:26 * VanessaE sighs
21:27 est31 as I said it might have only exposed an already existing issue better I'm not sure.
21:27 VanessaE possible
21:30 paramat hmmmmm when you left c55 made me mapgen manager, but i said 'only while hmmmmm is gone', and your name remains on the wiki. i'm not too bothered either way but would it be useful to share the position such that i can reduce your workload by doing the simpler stuff? not sure it makes much difference anyway as i need your approval for PRs
21:30 VanessaE that needs added as a line item to #2524 then
21:30 ShadowBot https://github.com/minetest/minetest/issues/2524 -- Issues with new network code
21:31 hmmmm it doesn't matter
21:31 VanessaE or at least referenced.
21:31 hmmmm what matters is the code
21:39 jin_xi non mapgen vmanip is still necessary if you want to do anything fancy, ie lua generated, unless you do the whole mapgen in lua
21:44 paramat yep
21:48 VanessaE est31: come to think of it, even *placing* an object seems kinda laggy now.
21:48 VanessaE I don't recall e.g. pipeworks pipes having a visible lag between placement and the autorouter kicking in.
21:50 est31 there is such a lag
21:50 est31 I had it for technic cables on VE-S enough times
21:51 est31 ofc only when the server is under load too
21:51 VanessaE yeah but in singleplayer, in a test world that's totally idle?
21:51 paramat now pushing 2543, will notify when done
21:53 est31 is that the same issue btw?
21:53 ElectronLibre left #minetest-dev
21:53 est31 could you confirm that the commit from my report introduces the placing lag?
21:56 VanessaE sure, lemme check
22:00 paramat push complete
22:00 VanessaE I've rolled back to 038d3a31 (one commit before 1b2f644), and am not seeing nearly as much placement delay or glitchiness now.
22:00 VanessaE s/glitchiness/crafting grid glitchiness/
22:00 VanessaE so that should be enough to confirm your report
22:04 VanessaE added my comments to 2544
22:04 hmmmm well
22:04 hmmmm it seems to be a pretty big problem
22:05 hmmmm i think maybe the offending commit should be reverted until it's solved
22:05 hmmmm as for the clean_transparent_textures, we can solve that problem by setting it to disabled by default
22:06 hmmmm i tested these commits too and they seemed okay at the time :(
22:50 devmarth joined #minetest-dev
22:55 paramat left #minetest-dev
23:33 devmarth joined #minetest-dev

| Channels | #minetest-dev index | Today | | Google Search | Plaintext