Minetest logo

IRC log for #minetest-dev, 2013-12-15

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

All times shown according to UTC.

Time Nick Message
00:08 Taoki sapier: Rebased fog code on latest master. Was probably hard to test it since the other changes were pretty old
00:10 sapier no gave exactly same errors as that version you based it ... but I didn't want to test the old errors
00:11 Taoki Errors? I don't get any compile errors with it here
00:12 sapier no minetest core error
00:12 sapier s
00:13 Taoki Ok. I don't see any other errors either
00:20 Miner_48er joined #minetest-dev
00:27 Taoki sapier: Anyway, is it getting delayed this time too? Or can you agree to merge it?
00:29 sapier yes I do agree but you need a second one to agree
00:35 djdduty joined #minetest-dev
00:44 Taoki joined #minetest-dev
00:47 werwerwer joined #minetest-dev
01:02 VanessaE Taoki: the sounds in my game come from freesound.org.  They are all cc-by-sa or public domain or cc0.
01:03 Taoki VanessaE: Awesome. Any links to the exact door sounds?
01:03 VanessaE (at least, the ones I added to homedecor)
01:03 Taoki I assume it's a big website so
01:06 VanessaE ohe sec
01:06 VanessaE one sec*
01:07 VanessaE hrm
01:07 VanessaE I thought I had a record of that here somewhere
01:07 VanessaE hang on, lemme look
01:08 VanessaE http://freesound.org/people/Slanesh/sounds/31768/
01:08 VanessaE this might me one of them
01:08 VanessaE freesound kept a record of my downloads
01:08 VanessaE http://freesound.org/people/j1987/sounds/106116/
01:09 VanessaE and this one for the gates
01:10 VanessaE the interesting thing is there's some popular video, I forget exactly what, which uses that door closing sound at the very end as well :)
01:11 VanessaE at least I think so.  anyway the door sound is cc-by-sa, the gate sound is cc0
01:19 VanessaE I just pushed some attribute info to homedecor git for that, just to make sure :)
01:29 OWNSyouAll joined #minetest-dev
01:29 sapier left #minetest-dev
01:37 Taoki Thanks
01:38 VanessaE no prob
01:39 VanessaE you may find the ones I post-processed for Homedecor's use to be more suitable than the raw sound files on freesound.org, as they've already been trimmed, time-compressed/extended, and normalized as needed.
01:40 Taoki Yeah. Mostly interested for the credits
01:40 VanessaE ohok
01:40 Taoki I'm hoping to get them into minetest_game for the default doors too. With extra sound effects such as for player damage, if the current Lua API allows for that
01:56 bas080 joined #minetest-dev
02:07 RealBadAngel joined #minetest-dev
02:09 RealBadAngel hi
02:09 RealBadAngel how do you like the effect? http://i.imgur.com/WLLIlyZ.png
02:09 VanessaE hi
02:09 VanessaE nice
02:11 RealBadAngel this is done only in shaders, no extra files needed. and works with default textures
02:12 VanessaE on-the-fly normalmap generation
02:12 VanessaE nice
02:14 RealBadAngel its just some math, 1st gausian blur on the texture then sobel 3x3 filter
02:34 djdduty joined #minetest-dev
02:34 djdduty joined #minetest-dev
02:34 OldCoder joined #minetest-dev
02:36 kaeza /home/diego/src/minetest/po/lt/minetest.po: warning: Charset "CHARSET" is not a portable encoding name.
02:42 kaeza also I found something interesting... mt_game seems to be leaking a few globals it probably shouldn't
02:58 kaeza http://pastebin.com/PDt2ZCwQ
03:03 VanessaE eek
03:07 kaeza for anyone interested in running the test, add this at the top of builtin/builtin.lua: http://pastebin.com/UNRzB24F
03:16 kaeza what the: [globalchecker] new global n at @/home/diego/src/minetest/bin/../builtin/falling.lua:161
03:56 diemartin joined #minetest-dev
03:59 Zeitgeist_ joined #minetest-dev
03:59 Zeitgeist_ joined #minetest-dev
04:18 hmmmm hmmmm
04:18 hmmmm hmmmmmm
04:18 hmmmm hmmmmmmmmm
04:19 hmmmm did the SimpleThread->JThread replacement thing get tested yet?
04:19 hmmmm I want to merge it already
04:22 hmmmm also if sfan5 is around I'd like to know what the status is on the playerlist tab, and if he could merge all of what he has into a single pull request
04:23 hmmmm anyway, it seems I was wrong about the reason why the cave shadows exist.  I was screwing around with it a little this morning and I couldn't get it fixed
04:24 hmmmm I was considering maybe we should add a "slow but perfect map" option that re-generates discrete structures that would have been cut off instead of writing them to neighboring chunks
04:29 us}0gb joined #minetest-dev
04:49 ShadowNinja hmmmm: IIRC john_minetest tested it.
04:50 hmmmm jon_tests_minetest
04:50 mrtux joined #minetest-dev
06:12 nore joined #minetest-dev
07:42 darkrose joined #minetest-dev
07:42 darkrose joined #minetest-dev
07:46 nore does Minetest discard map changes if it runs out of memory while trying to save the map?
08:29 Miner_48er joined #minetest-dev
08:36 proller joined #minetest-dev
09:11 Calinou joined #minetest-dev
10:27 Akien joined #minetest-dev
10:45 bas080 joined #minetest-dev
11:07 Akien joined #minetest-dev
11:31 john_minetest joined #minetest-dev
11:41 ImQ009 joined #minetest-dev
11:49 thexyz nore: I don't think modern software can handle out-of-memory errors
11:49 thexyz AFAIK on Linux malloc (by default) never fails
11:50 nore dunno... I generated a lot of map
11:50 thexyz and then when you try to access this memory and is out of it OOM killer is coming for you?
11:50 thexyz so if that's the case then you can't do anything
11:50 nore and it worked fine, but when saving, my computer went swapping to hell
11:50 nore and then, the map was almost completely ereased
11:51 nore (and FYI, I have 8GB RAM and 16GB swap...)
11:51 thexyz was the process killed?
11:51 nore there was nothing in debug.txt except the usual start messages
11:51 thexyz was the process killed though?
11:52 nore I reckon it was, since there was no "singleplayer leaves game" line in debug.txt
11:52 nore I don't know if it was really killed though
11:52 thexyz you can check /var/log/messages or /var/log/syslog
11:53 thexyz or some other /var/log/ file for "killed process"
11:54 nore thexyz, I can't see that since I got "radeon: The kernel rejected CS, see dmesg for more information." since then, which flooded my /var/log/messages (Minetest does it quite a lot...)
11:57 nore and a grep -R "killed process" in /var/log gave nothing
11:59 Taoki john_minetest: Yeah
12:01 celeron55 fun fact: sqlite can handle out-of-memory errors and it is unit tested for doing that always properly
12:02 celeron55 (or otherwise automatically tested... "unit test" is a bit too specific)
12:02 EdB joined #minetest-dev
12:11 thexyz what would be a good way to make the player jump when he collides with a node? (when running forward)
12:12 Taoki thexyz: There was a trampouline mod on a server once, maybe that helps
12:12 thexyz I need a client-side modification
12:16 EdB left #minetest-dev
12:18 Taoki john_minetest: Ok. Thanks
12:18 sapier joined #minetest-dev
12:19 sapier hello
12:20 PilzAdam joined #minetest-dev
12:23 sapier John_minetest did you check the simplethread removal branch yet?
12:24 sapier the one you asked how to test yesterday
12:27 jin_xi joined #minetest-dev
12:30 rubenwardy joined #minetest-dev
12:31 sapier thanks
12:36 sapier hmmmm I'm merging the simplethread removal now
12:37 Taoki sapier: [14:19:22] <john_minetest> Taoki: I tested it. Runs fine and looks good. <<<< Regarding the colored fog, just so you know there's another +1
12:38 Taoki Since that was before you re-joined
12:38 Taoki Need to go for a bit now also, brb
12:38 sapier ok so test + one core dev comlete another one to agree and it's in
12:40 sapier come on guys taokis changes are quite fine isn't here anyone to agree to it?
12:43 sapier taoki?
12:59 nore Taoki, I do like it too
12:59 nore john_minetest, and no, it does not require shaders
12:59 nore sapier, ^
12:59 sapier nore is this an agreement?
13:00 nore yep... (I did not really check the code style though; it looked fine at first glance)
13:02 Taoki sapier: Back. Yes?
13:02 nore sapier, leave me a few seconds to test it though
13:02 sapier ok I'm gonna add a setting to make pilzadam happy too
13:03 Taoki Fine by me. I suggest enabling it by default though
13:03 sapier yes
13:03 Taoki A setting might be unneeded for something this small. But if anyone (like PilzAdam) really hates it for any reason, I don't mind.
13:04 Taoki Note that the code is easy to tweak, and will be tweaked and improved in the future. It's important for it to be in at the current stage, so future changes to the sky can also include the directional coloring system
13:04 ImQ009 joined #minetest-dev
13:06 nore ok, it still works... ;) I'm ok for it
13:06 sapier why are there so much commented bright_dawn values in there?
13:07 nore Taoki, however, I have an idea: what about using a texture to know the color of sky depending on view yaw and time?
13:11 Zeitgeist_ joined #minetest-dev
13:12 nore sapier, is that normal? https://github.com/minetest/minetest/commit/e9e9fd7c3f12bc5119b567ad37527d777859dbc0#diff-1dc3934293fad6b8769890134ac51c21R69
13:13 sapier normal?
13:14 smoke_fumus joined #minetest-dev
13:14 Taoki nore: RBA will add such a texture later
13:14 sapier oh the missing constructor value ... that's been a warning
13:14 Taoki It's a different feature planned for the future
13:14 nore the "mapgen debug info" line that changes in a commit about threads
13:15 Taoki Going to be away for an hour, hopefully I'm not needed for the code merge now
13:15 nore Taoki: ok, didn't know that
13:15 sapier it's a style fix only, at least it's supposed to be one
13:15 sapier shouldn't change behaviour at all
13:16 nore ok, didn't know that... it just looked weird in that commit
13:16 sapier you're right looks suspicious
13:16 sapier should've noted this in pull request comment
13:22 sapier taoki can you verify I did do it right https://github.com/sapier/minetest/tree/colored_fog
13:29 PilzAdam sapier, why do you change the whole minetest.conf.example?
13:30 Taoki sapier: Can you provide a link to the diff against master please, so I can see the actual changes?
13:30 Taoki Will check them in 45 minutes at most or so
13:30 PilzAdam sapier, do you read the settings in a function  that is called for every frame?
13:30 thexyz what's the point of adding a setting no one will use
13:31 sfan5 Taoki: https://github.com/sapier/minetest/compare/colored_fog
13:31 Taoki thexyz: PilzAdam doesn't seem to be fond of the colors. He and others might want to turn it off, not sure
13:31 Taoki sfan5: Thanks, will see later
13:31 thexyz alright, let me correct myself
13:31 thexyz what's the point of adding a setting only PilzAdam (who always bitches about random things btw) will be using?
13:32 Taoki Anyway, if PilzAdam is ok with it going in (even if he doesn't really like the feature), the setting might not be needed. I don't want my feature to upset any of the users or developers, so it prolly depends on him
13:32 Taoki BRB again
13:33 PilzAdam I dont understand why nobody sees how bad this looks
13:33 thexyz maybe because it actually looks fine and you're the wrong one?
13:34 PilzAdam clouds that change the color all the time looks good?
13:34 PilzAdam john_minetest, the fog isnt the problem at all
13:35 PilzAdam if you look at the moon at sunset and move the camera up the clouds change their color from blue to red
13:36 PilzAdam the color of the clouds should not depends on yaw, it should depend on the position
13:37 sapier but this is a minor issue usually you wont even notice this if you don't know it
13:37 sapier guess you're primed for this issue as it was worse in prior versions (according to comments)
13:37 PilzAdam people even noticed that the sky is black when looking down and the looking up fast
13:38 sapier ppl keep running through world constantly looking up and down?
13:39 rubenwardy_ joined #minetest-dev
13:41 sapier yes it's not perfect for sure but it's a huge improvement to in game atmosphere
13:41 PilzAdam it only looks good as long as you dont move the camera too much
13:42 sapier with "too much"  beeing angle switches above 180° ...
13:43 PilzAdam too much means more than ~ 20°
13:43 sapier guess thats a subjective feeling
13:45 sapier but I added a setting to disable it anywa
13:45 sapier y
13:46 PilzAdam eh, why is the fog so near when I look up and then down again?
13:46 Taoki PilzAdam: So colors don't change if you're looking fully up or down, and rotating the view. That looked even worse
13:46 Taoki And BRB again, I'm here back and forth ATM
13:48 sapier PilzAdam: https://github.com/sapier/minetest/commits/colored_fog can you verify this works for you
13:49 sapier fog beeing near is not a issue of colored fog it's there for non colored too
13:54 PilzAdam why dont we just make the color independend from the yaw and give the fog same color as the clouds?
13:55 sapier because its all about the direction dependent color it'd be strange to look at cold moon and have bright sunset colors
13:56 PilzAdam then let the moon rise a bit later
13:56 PilzAdam (IRL the color doesnt depend on yaw either)
13:56 sapier this removes the most pressing issue only, clouds and fog don't glow in oposit direction of sunset
13:57 sapier it does!
13:57 sapier did you ever see clouds in east glow as bright as those in west at sunset?
13:57 PilzAdam the problem is just that we cant set the color of parts of the fog
13:58 PilzAdam sapier, but the clouds in the west dont change the color if you look at the east
13:58 sapier and that's why fog is direction dependent it's best we can get without dynamic lighting
13:58 PilzAdam but dont do it for clouds, it looks really bad for clouds
13:58 sapier you don't see the clouds in west if you look east ;-)
13:59 zat joined #minetest-dev
13:59 PilzAdam then a cloud above you or so
14:00 sapier due to my testing color change becomes really noticable once you have "sun" or moon on screen ... you have to look very carefull to see a change before
14:01 Taoki sapier: https://github.com/sapier/minetest/compare/colored_fog looks good to me.
14:01 sapier of course hardware lighting doing the colours would be way better (as always) but taokis solution is already close and maybe it can be tweaked even more
14:02 PilzAdam sapier, have you seen my 2 comments on your change?
14:02 Taoki I still don't believe a setting is needed. Unless PilzAdam really really hates the change and can't live with it as is (which is ok, though a matter of taste which also justifies the setting)
14:02 sapier not yet where do I find them?
14:03 Taoki sapier: Hardware lighting will come later. Soon... :)
14:03 PilzAdam <PilzAdam> sapier, why do you change the whole minetest.conf.example?
14:03 PilzAdam <PilzAdam> sapier, do you read the settings in a function  that is called for every frame?
14:04 sapier first is a cleanup it's not whole just some minor whitespace fixes ... second ... good point need to find a better way to do it
14:04 Akien joined #minetest-dev
14:05 thexyz "read settings" is just a single map find() call
14:06 Taoki PilzAdam: But yeah, this is why looking up changes the colors: Imagine there's no yaw dependence, fog color is blended only based on the direction you look in. If you look toward the horrizon, it's all fine. Now look completely up however. If you turn your view 180* in place, the entire sky changes color in a bizzare way
14:06 Taoki I hope that makes sense, harder to explain without showing the 3D motion
14:06 sapier depends on map size how fast this is thexyz
14:06 sapier ok not exactly guess map uses hashing
14:07 thexyz O(log N)
14:07 thexyz no, std::map uses red black trees
14:07 thexyz and std::unordered_map (c++11) uses hashes
14:07 thexyz but the other day I was told that unordered_map is actually slower ;_;
14:07 thexyz anyway
14:07 sapier I'll read it in constructor this setting isn't something to change ingame
14:08 iqualfragile joined #minetest-dev
14:08 thexyz I think you can do like 10 ^ 6 reads per second?
14:08 sapier why waste cpu instructions that can be used for better things?
14:08 thexyz so don't optimize where you don't need
14:08 sapier it's global step optimizations in there are never wasted
14:09 thexyz eh
14:09 thexyz it's pointless to argue anyway
14:09 thexyz feel free to do whatever you want with this
14:09 sapier true
14:09 thexyz but just know that there will be no change
14:09 PilzAdam Sep 19 20:02:44 <hmmmm>that is NOT just a binary tree lookup
14:09 PilzAdam Sep 19 20:02:57 <hmmmm>you forgot about the lock, all the string comparisons, then the conversion
14:09 PilzAdam Sep 19 20:03:05 <hmmmm>settings is *SLOW*
14:10 sapier no change? I admit the change isn't very big but it's not 0
14:10 Taoki Is this about the setting for colored fog?
14:10 thexyz SLOOOOOW
14:10 thexyz string comparisons! SLOOOW
14:10 thexyz well whatever
14:10 thexyz O(len * logN) if you want
14:11 thexyz by the way, does this shit support read write locks?
14:11 thexyz jthread, that is
14:11 sapier PA better this way?
14:11 thexyz eh, readers-writer lock is how it's called
14:11 sapier you're talking about jthread thexyz?
14:11 thexyz yes
14:12 thexyz I guess it doesn't
14:12 sapier no mutex and semaphores only
14:12 thexyz oh well
14:12 PilzAdam sapier, what way?
14:13 Taoki sapier: Anyway, as for the fog setting: Please ask PilzAdam if he really wants to turn my fog off in case it's merged. He said he doesn't like it, but I'm not clear if he really wants to be able to turn it off if it's added to minetest, or can live with it as is. Just looking to be clear is all
14:13 sapier I added a member to sky read it on construction and only check for that member instead of reading from setting
14:13 Taoki PA didn't tell me here, just that he doesn't like the current planding
14:13 Taoki **blending
14:13 PilzAdam sapier, thats better, yes
14:13 sapier I should push it true :-)
14:13 Taoki So we don't add the setting for no reason
14:14 sapier ok pushed to my branch
14:14 PilzAdam now why do you call the setting "disable_*"?
14:14 sapier if you want another name I change it ... I don't care about naming
14:15 sapier oops forgot a setting
14:15 sapier so what name do you prefere?
14:15 Taoki sapier: Yeah, setting the option to "true" to enable it makes more sense. But default it to true then
14:16 PilzAdam sapier, the same thing without "disable_" in front of it
14:16 sapier so I call setting colored_fog ? does everyone agree?
14:16 Taoki sapier: Old fog is colored too. "directional fog" would be more correct
14:16 Taoki directional_fog
14:17 sapier ok
14:17 Taoki or something like that
14:17 PilzAdam what Taoki said is bette
14:17 PilzAdam +r
14:17 sapier then "directional_colored_fog"?
14:17 PilzAdam and "Use weird color changes for clouds and fog when moving camera" as description
14:17 sapier it's not the fog that changes but it's color
14:18 Taoki In the end, it might be nice to have a setting to disable it. The current / old style doesn't look outright horrible either, some might like it more
14:18 sapier ok PA ... but I'll skip the "weird" ;-)
14:18 Taoki sapier: Yes, that's a correct name too
14:18 Taoki As for description, more correct would be "Make fog and sky colors depend on dun and moon direction"
14:18 Taoki **sun
14:19 Taoki Or something. But anything's fine by me
14:19 PilzAdam no! thats wrong
14:19 PilzAdam it doesnt depend on sun and moon, but on fov
14:19 PilzAdam thats why its so wrong
14:19 Taoki Ok. Your description without the "weird" then ;)
14:19 Taoki Yeah
14:20 Taoki Well not on FOV specifically. It depends on where the player's "crosshair" is pointed
14:20 Taoki FOV can be anything
14:20 Taoki I just use the rotation of the player's camera\
14:20 PilzAdam eh, s/fov/yaw & pitch&/
14:20 Taoki yaw & pitch, yeah
14:20 PilzAdam (I always mix up fov and yaw)
14:21 sapier # Make fog and sky colors depend on daytime (dawn/sunset) and view direction
14:21 Taoki I believe this is also the same thing Minecraft does. And no, that's NOT to say I did the same to copy MC :P Just that I noticed there how much it improves the visualls
14:21 Taoki Sounds good
14:22 salamanderrake joined #minetest-dev
14:24 sapier ok updated my branch
14:25 sapier argh
14:27 sapier ok that's it final call for comments if there aren't any issues I'm gonna merge it in 15 minutes
14:28 Taoki The latest decisions on the fog code are perfect by me, no comments there
14:28 sapier that's negative effect of forced push
14:28 sapier sorry john
14:30 sapier did anyone look for the chat crash by now?
14:34 sapier the setting is now called directional_colored_fog
14:34 sapier yes
14:35 sapier did you check the setting is doing what it's expected to do?
14:37 Taoki It looks like before right?
14:38 Taoki Ok, good then
14:42 Taoki Just so everyone knows: I'm working on adding extra sound effects for minetest_game. I added door open / close sounds, and am next working on adding sounds for flowing liquid sources. I'll see where I can find more effects to add
14:43 Taoki Minetest is still really lacking in the sound department, and I'm hoping to change that. Don't worry, not planning to add any intensive checks or anything annoying... just normal sounds that need to be there
14:47 sapier ok merging now
14:53 sapier any comments to this one https://github.com/minetest/minetest/pull/640 (core based surface detection)
14:55 sapier and this one might be usefull too https://github.com/minetest/minetest/pull/670
15:05 sapier returns y-value of first surface starting at bottom or nil if no surface found
15:05 sapier ;-) at least that's what is written within lua_api.txt
15:07 PilzAdam it looks for air, not the surface, though
15:07 PilzAdam oh, wait, theres a setting for that
15:07 sapier usually that's what is considered as surface
15:08 PilzAdam there is the problem with caves, though
15:08 sapier there's no perfect solution to the surface problem
15:09 sapier that's why you can specify min/max to look for it ... but if you have an idea to improve it you're welcome
15:10 PilzAdam search from the top?
15:10 hmmmm joined #minetest-dev
15:10 nore sapier, I have a question though... now that we have voxel manip, is it really useful?
15:10 sapier searching from top has issues with trees
15:10 sapier voxelmanip is a quite heavy thing it's only usefull if you need to verify more then 10k nodes
15:11 sapier and this is true for luajit only ... without luajit voxelmanip may be completely useless
15:13 iqualfragile https://github.com/minetest/minetest/commit/848f80b2e53155c76f598c2f7e0ebaff1faea8dc recompiling right now!!!
15:14 * nore too
15:15 Warr1024 joined #minetest-dev
15:16 Warr1024 I noticed that it looks like the server is loading the liquid_update setting only once on startup, then never checking it again.
15:16 Warr1024 Is this an important design feature?  It's preventing me from controlling liquid update speed via minetest.setting_set()
15:19 nore Warr1024: <hmmmm> settings is *SLOW*
15:20 hmmmm Warr1024, settings are meant to be settings
15:20 sapier liquid_update is nit supposed to be changed within game
15:20 hmmmm not variables
15:20 sapier change of settings is assumed to be active after restart only
15:20 Warr1024 ugh.
15:20 Warr1024 basically, I'm trying to freeze time.
15:21 Warr1024 there are only a handful of builtins I need to worry about.
15:21 Warr1024 the rest will be game content.
15:21 sapier *smile* try to freeze mobs ;-)
15:21 Warr1024 falling_node and builtin:item I already managed, since it's just velocities and accelerations.
15:21 Warr1024 naw, I'm working on a total conversion this time.
15:21 Warr1024 new game type.
15:22 Warr1024 the built-ins were pretty tricky, but I managed.
15:22 hmmmm you want to freeze water from within lua?
15:22 Warr1024 yep
15:22 hmmmm wait, why?
15:22 Warr1024 freeze, slow down, speed up.
15:22 hmmmm also I don't think you want to actually stop liquid updating
15:23 hmmmm I think what you actually want to do is control the viscosity of a liquid
15:23 Warr1024 that would be nice.
15:23 hmmmm which there's a per-node setting for
15:23 Warr1024 if I could make it infinitely viscous, it could be frozen that way.
15:23 Warr1024 viscosity doesn't affect flow speed
15:23 hmmmm but alas, you can't modify it outside of the so-called node registration phase
15:23 Warr1024 only walking speed within the liquid.
15:23 hmmmm you sure about that?
15:23 Warr1024 yeah, I messed with it a bunch for a different mod.
15:24 hmmmm i don't think that's true, but now that you say so it has me wondering
15:24 Warr1024 if you set it insanely high, it makes you actually walk *backwards*
15:24 hmmmm there's something that could use a rangelim()
15:24 hmmmm ANYWAY all this is beside the point
15:24 Warr1024 yeah.
15:24 hmmmm here's what I would like to eventually see for settings:
15:25 hmmmm I would like to see all of the settings called profiled in a single server step to determine how wasteful it is
15:25 hmmmm since there's the lock acquire, property lookup, property parsing, and so on
15:25 hmmmm then I'd like to change it so instead settings is like on gigantic global struct
15:25 hmmmm instant access to everything
15:26 Warr1024 it'd be nice if they could all change dynamically at runtime, and be parsed at change time instead of at lookup time or something, since they should change infrequently under any circumstances.
15:26 Warr1024 I've actually had some success changing time_speed.
15:26 Warr1024 though it only affects the day cycle animation.
15:26 hmmmm I really don't think the locks are necessary because settings are set hardly ever
15:26 Warr1024 basically I'm working on a strategy game.
15:26 hmmmm and under very controllable circumstances
15:26 Warr1024 you freeze time to order units around, then run it or fast-forward to watch the outcome.
15:27 sapier those locks are absolutely required unless you want to disable settings for async
15:27 nore Warr1024, to freeze liquids, you could put airlike nodes around to block them
15:27 hmmmm lol
15:27 Miner_48er joined #minetest-dev
15:27 Warr1024 ugh, that's not really a complete solution...
15:27 hmmmm whatever
15:28 hmmmm we can just change everything to use atomic accesses
15:28 sapier there's nothing like atomic access on x86 beyond setting an integer
15:28 hmmmm that's all we need
15:29 hmmmm for things such as strings, we can just swap around pointer values
15:29 sapier there may not be ANY check prior swapping
15:29 hmmmm and actually I think that's not accurate as of ivy bridge either, with the new transaction instructions
15:30 sapier e.g. minetestes queue handling if empty ... get from queue is useless if you want to parallize work
15:30 hmmmm meh I'll figure something out
15:30 sapier "if empty ... get from queue"
15:35 hmmmm if you have a reader on some string setting and you update the value out from under it, then so what?
15:35 hmmmm if you have a setting being changed in one thread and some consumer of that setting in another, don't you think that other thread is going to be one that doesn't care about the *real time* value of that setting?
15:35 sapier in worst case crash due to access of invalid memory
15:36 hmmmm since it'll probably be periodically checked
15:36 hmmmm yes but you're assuming people are swapping out other things related with the string setting
15:36 hmmmm at which point the limited scope of the settings lock wouldn't be of any use
15:37 hmmmm the actual std::string could be destroyed at a later point in time, I'm thinking of some kind of GC system
15:37 sapier no what on adding a setting?
15:37 sapier two threads adding a new setting simultanously
15:37 hmmmm yeah?  and?
15:38 sapier one starts map opperation but doesn't finish ... second starts and finishes
15:38 sapier first one continues with old data breaking everything
15:38 hmmmm oh no I want to get rid of the map operation completely
15:38 hmmmm I always thought the map lookup was silly
15:38 sapier and how do you want to do it?
15:38 hmmmm plainly access global settings from some kind of struct
15:38 sapier a struct?
15:39 hmmmm int update = g_settings->liquid_update
15:39 sapier so only predefined settings are available
15:39 sapier quite a limitation to now
15:39 hmmmm how's that a limitation?
15:39 sapier atm you can set arbitrary values
15:39 hmmmm are there any settings that are not predefined?
15:39 sapier more than a few
15:39 hmmmm like?
15:39 sapier any mod can define it's own setting
15:39 hmmmm they should do that in their own namespace
15:40 hmmmm I don't think it's right for them to modify minetest.conf's settings
15:40 sapier then you need to add a new minetest.set_mod_setting
15:40 hmmmm for the moment let's not consider backward compatibility
15:40 hmmmm just in theory, how this would work
15:40 sapier and you can remove access to your settings from scriptapi completely
15:40 sapier there's no need to have access to core settings for mods
15:40 hmmmm no, I think scriptapi should be able to access global settings
15:41 sapier why?
15:41 hmmmm because anything else would break the entire universe for one
15:41 hmmmm unless you think they should only have read access
15:41 hmmmm and then they write their own modifications to a mod-specific conf file
15:41 sapier switching to fixed settings already breaks everything so it's perfectly fine to rethink about core setting acces for scriptapi
15:41 hmmmm or rather, GAME-specific conf file (which already exists), aha
15:42 hmmmm I think I'd be able to make it work
15:42 hmmmm carefully enough to not break anything
15:43 sapier I don't think this can be done without breaking compatibility ... you can proof me wrong
15:43 hmmmm right
15:43 hmmmm we'll see
15:43 hmmmm but again, this won't happen for a while.  there are more pressing issues around right now
15:44 sapier I agree for that ;-)
15:44 hmmmm it's just needed to take minetest's locking to a more advanced level
15:44 hmmmm now as for readers on data types that would get deleted
15:44 hmmmm say you have a string setting that you set
15:44 sapier I don't think about removing locking on thinkig about advanced level ;-) more about making locking more sane
15:44 hmmmm the pointer is swapped out, you have someone using that string in another thread
15:45 hmmmm then you delete that std::string and everything explodes
15:45 hmmmm instead...
15:46 hmmmm add the std::string to some GC queue, atomically decrement the ref count, and then some thread (who, no clue) periodically checks it over and deletes anything with a 0 ref count
15:46 hmmmm dead simple and i don't see any problem with it
15:46 sapier no plz don't add gc to c++
15:47 hmmmm it's not real GC
15:47 sapier we'll have enough work to get basic threading issues to work
15:47 hmmmm and it'd be necessary to do what I'd like to do or else we'd have memory leaks or freed data while it's being used
15:47 sapier I'd be perfectly fine if you just return a value instead
15:47 hmmmm can't do that
15:48 hmmmm can't do that atomically, rather
15:48 sapier you can't do ref counting in a atomic way too
15:48 hmmmm why not?
15:49 sapier ref count ++ <threadswitch> replace <threadswitch> return replaced string --> old one counted up 1 too much new one missing 1
15:50 hmmmm hrmm
15:51 sapier need to lock that again ... so nothing is won
15:52 Warr1024 I was actually very tempted to add a setting that's just a multiplier for the dtime when doing the server env step, which as I understand it would control the true time flow speed... but that'd probably desync the client pretty badly at very low values, esp. zero...
15:52 Warr1024 If anyone's interested in stuff like pausing a server or a "bullet-time" mod or something, though, I can see if I can get it working OK and put in a pullreq.
15:53 hmmmm sapier, you increment the ref count only after you completed fetching the string
15:53 hmmmm oh
15:53 hmmmm nevermind
15:53 hmmmm crap,
15:54 hmmmm we need a 12-byte atomic swap now
15:54 Warr1024 maybe you can just use a message-passing mechanism.
15:54 Warr1024 i.e. the mod that wants to modify a setting just adds it to a quue
15:55 hmmmm we're talking about something different
15:55 Warr1024 then have a thread that polls that queue for settings updates every so often and applies them all
15:56 Warr1024 ah, thought you were still talking about ways to deal with the lock overhead around setting atomicity.
15:56 Warr1024 in general though, it's probably OK to keep thread-local caches of values like that and just poll for updates from shared storage only periodically, rather than on each use.
15:56 hmmmm we are, but about what to do with strings to prevent memory leaks
15:57 Warr1024 oof, cross-thread reference counting?
15:57 hmmmm basically yeah
15:57 Warr1024 how much would it cost to just duplicate the strings and have each copy owned by only 1 thread :-)
15:57 hmmmm can't do it unless we have a 12 byte CAS
15:57 hmmmm because the string duplicating would require a lock
15:57 Warr1024 some applications are very string-heavy, but I imagine minetest is somewhat less...
15:58 Warr1024 yeah, this sounds a lot like the problems with systrace.
15:58 Warr1024 if you use a message-passing architecture, you're fine, but systrace is succeptible to modification of string values after validation.
15:58 nore hmmmm, why 12 bytes?
15:59 hmmmm nore, 8 for the pointer and 4 for the ref count
15:59 Warr1024 so ideally you'd have one thread package up a copy of the string for use by the other thread, then just pass that pointer, and never access the referenced object from that thread again, i.e. you atomically pass ownership of the data to the other thread.
15:59 nore 4 bytes for the ref count? isn't 1 enough?
16:00 Warr1024 accessing 1 byte tends to involve accessing 4 in many cases anyway, the way some procs work.
16:00 nore and isn't there something to prevent a thread from being interrupted (like a lock, but global?)
16:01 sapier no
16:01 Warr1024 you mean like critical sections?
16:01 sapier and doesn't help at all
16:01 Warr1024 if an OS were to actually honor something like that, it'd be a good way to freeze an entire system...
16:02 Warr1024 and I don't think they work on multiproc
16:02 nore ...
16:02 sapier nothing prevents the data to be updated by another thread while a thread is running (can both run same time on multicore)
16:03 nore hmmmm, what's the size of usual atomic swaps?
16:03 thexyz didn't read, what do you want to achieve and why rwlock won't solve this?
16:03 sapier there isn't atomic swap support in c/c++ ;-)
16:05 sapier thexyz hmmm wants to find a way to avoid locks in settings
16:05 sapier other way round
16:05 thexyz well, just use rwlock since there aren't much writes anyway
16:05 thexyz and if there are then it's not the most slow place in any case
16:06 thexyz anyway, I wanted to ask: how much performance increase will a texture atlas give?
16:06 sapier celeron postet som testcode but I don't know of any results
16:06 thexyz ah, should look for it
16:06 sapier about 3 days ago
16:08 iqualfragile how can i /giveme or  add_item and set a damage value?
16:08 nore iqualfragile, I'm not sure you can with the chat command...
16:09 sapier /give singleplayer <itemname> <count>
16:10 sapier I don't know about damage from chat
16:11 nore sapier, perhaps what could be done is: "if stack_max == 1 then damage = count"
16:11 nore what would you think of that?
16:12 iqualfragile i would be fine with the add_item equivalent, too
16:13 sapier if you do a mod you can add a command to change health
16:13 iqualfragile would it just be "default:pick_wood 1 50" for add_item?
16:13 nore sapier, I mean, in builtin
16:13 sapier yes
16:13 nore iqualfragile, perhaps even "default:pick_wood 50"
16:14 nore (cause if stack_max = 1, the second parameter would be interpreted as wear...)
16:14 sapier /give singleplayer default:dirt 999 will give singleplayer 999 dirt nodes
16:15 hmmmm Warr1024, that wouldn't help because you'd need to lock the string in order to copy the string contents
16:15 hmmmm nore, the size of the system word
16:15 Warr1024 you wouldn't need to lock the string if it were owned by the thread doing the copying.
16:15 hmmmm the problem is that you need to increment the refcount from the consumer and swap the value in the producer at the same time
16:16 hmmmm oh
16:16 iqualfragile how much wear does a wood pickaxe have?
16:16 hmmmm if you have only one thread to carry out string updates
16:16 nore iqualfragile, they all have 65535
16:16 nore (all tools)
16:16 iqualfragile ah, ok
16:16 hmmmm I have no idea what the performance ramificationcs of that are, but I can imagine it'd potentially make things more difficult
16:16 Warr1024 if each string is only accessible by one thread then you don't ever have to do locking, you don't have to count refs (they're always 1), and transfer of thread ownership can be done atomically.
16:16 iqualfragile wonderfull
16:17 Warr1024 the major drawback is string copying, and duplication of data.  How much of a problem those are depend on how many string or array values you actually need to pass between threads...
16:18 iqualfragile would it be possible to let joining players see the chat while they are loading?
16:19 Warr1024 is there an event in lua that's raised whenever a mapblock is loaded?
16:19 sapier Warr1024: no
16:19 Warr1024 is there a reason there shouldn't be?
16:20 sapier performance
16:20 nore lazyness?
16:20 PilzAdam Warr1024, imagine the normal loading of mapblocks being as slow as generation
16:20 Warr1024 I guess as a hack you could always place one entity within each mapblock as it's generated to serve that function, though entities are probably more expensive than that hook would be...
16:20 iqualfragile annoyance: when using /teleport player1 player2 autocompletition adds a space behind player2
16:20 nore (I almost went doing it once, and gave up right before coding it...)
16:20 sapier no mapblock loading is done quite often calling back to lua will add another bottleneck
16:20 iqualfragile but it looks like /teleport could not handle that too well
16:20 Warr1024 I'm pretty sure that generation does a lot more work than just calling a hook.
16:20 PilzAdam iqualfragile, indeed
16:21 PilzAdam Warr1024, generation is faster than loading a block, the slow thing is the Lua callback
16:21 sfan5 hmmmm: the tab_playerlist branch that is 'linked' to the pull works
16:21 sapier especialy if moders actually do things in that callback ;-)
16:22 Warr1024 oh really?  I was under the impression that gen was slow and loading fast, based on the CPU cost of exploring new vs. old terrain.
16:22 sapier btw that callback is only usefull for static things as entities get loaded way beyond block loading
16:23 Warr1024 well the issue for me is that since I can't change the liquid update physics via settings, I may end up having to replace them entirely in lua.
16:23 Warr1024 I can't use abm's for this either, as abm's are also on the non-modifyable timescale.
16:24 iqualfragile directional clouds are faptastic, but (at least on my system) there is a litle bit of flickering
16:24 Warr1024 I'm really trying to stick to doing this entirely in a game context, i.e. no C++ mods.
16:25 hmmmm hey sapier wait a minute https://github.com/minetest/minetest/commit/848f80b2e53155c76f598c2f7e0ebaff1faea8dc
16:25 Calinou joined #minetest-dev
16:25 hmmmm I thought we agreed to not merge that until it stops looking like ass below the horizon
16:26 nore hmmmm, it can be disabled...
16:26 hmmmm oh there's a setting
16:28 celeron55 thexyz: if you're interested in rendering performance, one thing which makes minetest feel really bad on some hardawre is the choppines that loading new mapblock meshes causes on some GPUs
16:28 celeron55 at least on my desktop sandy bridge it's awful
16:28 Warr1024 I can attest to that.
16:28 Warr1024 atom n450, I believe.
16:28 thexyz on android it feels awful too
16:28 hmmmm I was thinking maybe we should add VBO, disabled by default, with the caveat of high memory usage
16:28 celeron55 one thing we can do is limiting the amount of mapblocks loaded per each frame
16:28 Warr1024 how high are you talking?
16:28 celeron55 it's feasible to limit them to even only one per frame
16:29 Miner_48er joined #minetest-dev
16:29 celeron55 it currently can load sometimes like 15 per frame, then nothing the next few frames and then 10 and so on
16:29 celeron55 just look at the f5 graph
16:30 rubenwardy_ joined #minetest-dev
16:31 celeron55 an another way to fix that would be to make the server not send excess mapblocks; currently it doesn't care of the client's view range and usually sends much more than the client is actually able to draw
16:31 celeron55 or, well, a partial fix
16:31 celeron55 we're not alone with that issue though
16:31 celeron55 minecraft behaves just as horribly on that hardware
16:32 celeron55 it's even worse
16:33 celeron55 however, the limit for mapblocks per frame needs to be dynamic because for example on my intel GMA 950 laptop loading 0 or 20 mapblocks makes no difference whatsoever
16:33 celeron55 it's some "clever" buffering thing in those new low-end GPUs that doesn't work well for dynamic loading
16:35 Warr1024 minecraft doesn't behave badly on some of my hardware on which minetest behaves badly.
16:35 Warr1024 minecraft doesn't actually behave at all: it simply won't run.
16:35 Warr1024 :-)
16:36 Warr1024 it would be nice to enqueue meshes that need to be updated, and dequeue them at a limited rate.
16:36 Warr1024 the limit could be simple like 1 block per frame, or more adaptive, i.e. minimum of 1, but increasing if the queue size starts to increase.
16:36 Warr1024 in either case, it would probably be an improvement in general.
16:36 celeron55 i have tried that actually but didn't merge it forgot it then
16:37 celeron55 +and
16:37 Warr1024 if you can dig up a patch you want me to try on a really slow atom machine, I'm up for it.
16:37 Warr1024 though it may take me like 20 minutes to compile.
16:38 celeron55 is the problem the choppiness?
16:38 Warr1024 yes, chop is a major issue.
16:38 celeron55 can you check that it indeed is the mesh loading (from the f5 graphs)
16:39 Warr1024 I see sharp mesh spikes once every couple of seconds.
16:39 Akien joined #minetest-dev
16:39 Warr1024 It's not easy to reproduce the ideal worst case, but a lot of liquid transforms can do it...
16:39 celeron55 and those directly and linearly spike the frame time?
16:39 Warr1024 yeah, it's like half a second or more of freeze.
16:40 Warr1024 I get like 5fps average, with 10 or more fps during the parts where meshes AREN'T being update.
16:40 Warr1024 s/(.)$/d$1/
16:43 Jordach joined #minetest-dev
16:43 Gethiox joined #minetest-dev
16:43 PilzAdam celeron55, I can reproduce that with my win builds in wine
16:44 PilzAdam digging becomes a pain with this
16:45 rubenwardy joined #minetest-dev
16:46 celeron55 hmm, actually it really only does that on windows on my desktop thing
16:46 celeron55 it's silky smooth on linux :P
16:54 Calinou both Minetest and freeminer are very smooth here (linux too)
16:55 Calinou I have VBOs on on freeminer, it helps
16:57 Warr1024 I've got major mesh-lag issues with my atom machine on OpenBSD.  They're much less pronounced on my Debian box (with a much better CPU and GPU) but it's still noticeable; smooth but not silkily so.
16:57 Calinou that's atom, probably nothing to do
16:58 Warr1024 both are intel IGP.
16:59 Warr1024 I don't see why nothing could be done on the atom.
16:59 Warr1024 the mesh update limiting would probably smooth both of them out considerably.
17:04 Calinou atom stuff is very weak
17:04 Warr1024 yes, which makes it a good stress-test for MT performance.
17:05 Warr1024 if you can get shit to run smoothly on an atom, you're very likely to be set everywhere else.
17:08 Calinou however, we are going to limit the game if we keep trying to make it runnable on an atom
17:08 Warr1024 I don't really see how celeron's proposed fix is limiting though.
17:09 rubenwardy left #minetest-dev
17:09 Calinou not in this case, but in general
17:10 Warr1024 yeah, but in general, this case is the only performance issue that currently exists for atom.
17:11 Warr1024 as I mentioned, it also affects other systems as well, so it's more-or-less a win across the board.
17:12 Warr1024 if 1 mesh per frame isn't enough, we can make it adaptive, or if that's too complex, make it tunable by setting and set the default high enough to keep close to the best working behavior for whatever your ideal "target" platform is...
17:13 zat For whoever that might care: I have never been able to compile Minetest without commenting out all the typedefs in src/irrlichttypes.h.
17:14 Warr1024 bbl
17:15 thexyz zat: what's your os?
17:15 thexyz zat: what's your irrlicht version
17:16 celeron55 sounds like some distros still distribute the weird pre-release versions of irrlicht 0.8
17:16 celeron55 ehm
17:16 celeron55 1.8*
17:17 celeron55 or alternatively have some non-standard patches in there
17:17 thexyz yes, this
17:17 celeron55 minetest has a bunch of #ifdefs handling the difference between released irrlicht 1.7.* and 1.8.*, we're not going to handle anything else
17:19 Warr1024 left #minetest-dev
17:19 rubenwardy joined #minetest-dev
17:20 zat thexyz: irrlicht-1.7.3-1.el6.i686 and CenOS 6.2 with Linux 2.6.32-279.el6.i686
17:21 thexyz oh well centos strikes again
17:21 zat lol really
17:21 zat I said CenOS though...
17:22 celeron55 you could diff the headers in that with the official irrlicht 1.7.3 zip
17:22 zat good idea
17:24 thexyz I've just tested with official 1.7.3 irrlicht release and it compiles and works fine
17:24 celeron55 i wonder who even packages that .rpm
17:24 celeron55 it seems to be impossible to find out
17:26 celeron55 redhat/fedora i guess
17:31 zat I cant find either
17:43 zat celeron55: three files differ. irrTypes.h is one.
17:48 thexyz that's the problem
17:49 thexyz submit a bug report to your distro bugtracker
17:57 zat Well, it is not my distro
17:58 zat I will just ask in their IRC channel.
17:59 zat john_minetest in many you can know that
18:06 zat Can I ask here about performance issues with server?
18:07 zat It is always at over 90% CPU
18:07 zat And no mods enabled.
18:07 PilzAdam john_minetest, he is right regarding #799, though
18:07 ShadowBot https://github.com/minetest/minetest/issues/799
18:11 rambomedic joined #minetest-dev
18:12 Miner_48er joined #minetest-dev
18:13 ShadowBot https://github.com/minetest/minetest/issues/1036
18:15 PilzAdam https://github.com/PilzAdam/minetest/commit/a2748dcd1dd4ff09fae8ae25a0cee1e1cd1e89d3
18:15 PilzAdam I guess thats something kahrl forgot
18:19 rambomedic What's the purpose of the freeminer fork? As far as I see they're just using commits from minetest, and merging pull requests from minetest earlier than minetest...?
18:21 rambomedic Although, I do like the name. Are you guys planning to stick with the "minetest" name?
18:24 celeron55 rambomedic: it seemed that they want to focus on making one good game, while minetest focuses on overally expanding the possibilities of subgames
18:29 thexyz the point of freeminer is to deliver
18:29 EvergreenTree joined #minetest-dev
18:34 Taoki Hello. I figured out how to loop a sound at a node's position properly. However, is there a way to make a looped sound stop when you break that node? Without intensive checks
18:34 Taoki Asked on #minetest and someone said I should ask here too
18:46 kahrl PilzAdam: I think that happened with the merge/rebase
18:46 kahrl the curl.h include can be removed as well
18:51 Akien joined #minetest-dev
19:28 iqualfragile hmmmm: rumor has it that you created some v7-biomes for minetest_game?
19:30 Gethiox2 joined #minetest-dev
19:32 VanessaE ok, so...the un-logged crashes are going to continue for...how much longer?
19:32 VanessaE how the fuck am I supposed to manage a production server from debug/crash logs if I have no G*d damn crash logs?
19:33 sapier VanessaE doe the crashs occur on debug build too?
19:33 sapier -e
19:34 VanessaE it throws a SIGABRT when a mod error occurs
19:34 VanessaE causing the actual log write to fail
19:34 VanessaE so only the console output happens, which of course is never seen in a production environmnnt
19:34 VanessaE environment*
19:35 VanessaE http://pastebin.ubuntu.com/6579865/
19:35 sapier ok so we need to find a way to make luajit and error reporting work ... or you switch to lua to find that error
19:35 VanessaE here's an example
19:35 VanessaE it used to work fine before
19:35 VanessaE this is very recent.
19:35 VanessaE like, within the last week or so.
19:35 VanessaE (or two)
19:35 Calinou joined #minetest-dev
19:35 sapier most likely ShadowNinja's cleanups but I can't proove that one
19:38 PilzAdam VanessaE, revert to a stable version for production maybe?
19:40 Sokomine celeron55: based on how "fast" <irony off> mapblocks are sent by server according to my experience, limiting that speed even further would be a bad idea. it felt like eternity until i had a sizable portion of redcrabs map downloaded when i used sfan5's modified client. it felt as if the mapblocks arrived per pigeon carrier (ok, redcrab's an older server; it usually feels faster on vanessas servers). getting ~150mb of mapdata too
19:41 sfan5 Sokomine: your sentence is cut off
19:41 Sokomine where is it cut off? at which word?
19:41 sfan5 'getting ~150mb of mapdata took'
19:41 VanessaE PilzAdam: um. no.  logged crash reporting is a critical function of an engine that's explicitly geared toward modding.  This should have been fixed immediatey.
19:42 Sokomine ah. then only the "*weeks*" is missing. and i was online that time a lot
19:42 Exio4 PilzAdam: are you *not* using preload item visuals?
19:42 PilzAdam VanessaE, not immediately, just until the next release
19:42 PilzAdam Exio4, yes, I have preload item visuals off
19:43 Sokomine regarding those lua crashes: what about those uninformative error messages (assertion: 0)? sapier told me a quick fix for that some time ago, but i don't know if it got included?
19:43 Sokomine it helped at least in those cases where the mod did provide an error message
19:43 sapier switch to lua ;)
19:44 Exio4 maybe the shader bug could be because there is a "disable_shader" before generating the inventory image
19:44 sapier but that's not an option for VanessaE
19:45 Exio4 (and enable back after tjhat)
19:45 VanessaE I could back off a bit on the version or use Lua perhaps, but that ain't the point - this has been ongoing for at least a week now.
19:45 PilzAdam Exio4, yea, I noticed that inventory images look different than the normal nodes
19:45 VanessaE is that not enough time for someone to say "oh crap, this needs fixed"?
19:45 Sokomine (back to mapblock loading and fps:) it seems to me that fps suddenly shoot up again once other mapblocks are visually hidden between others. that is: if the underground does not have to be drawn (because the mapblock with the surface finally managed to arrive), that's usually excellent for my fps (graphics capabilities are very poor - ivy bridge celeron with integrated graphics)
19:48 Sokomine perhaps as far as rendering is concerned, assuming grey blocks in the areas that have not been drawn (at least on the surface!) might help?
19:49 sapier VanessaE there are plenty of options to debug this error but they all involve building a non production version. How are we supposed to find that error if you don't give us anything to work with ?
19:50 VanessaE the easiest option for now is running the server in gdb and letting it crash when an mod errors out
19:50 sapier If you strip away all debug infos you can't expect to have em on error
19:50 VanessaE the downside is the server stays down until I intervene and fix the bug
19:50 sapier I assume this is still the error you posted dmesg output?
19:51 VanessaE in a normal environment I can just watch for errors in my backlog or check debug periodically, or when a user reports a problem
19:51 sapier in this case you can build with debug information you don't even need to run within debugger, you just have to provide the binary
19:51 VanessaE s/an mod/a mod/
19:51 Exio4 make minetest coredumps
19:51 VanessaE no you miss the point
19:51 VanessaE I don't need core dumps or even a debug build
19:51 Exio4 coredump*, and then check those
19:51 VanessaE I just need to run it from a console
19:51 thexyz VanessaE: may the cores help you
19:51 VanessaE as long as I can see the console output from the server, I can see the error
19:51 VanessaE that's the problem
19:52 VanessaE the error text IS THERE
19:52 thexyz and what's the problem then?
19:52 Exio4 run minetest like always but debug build and coredumps enabled
19:52 VanessaE it's just not being logged because the server is throwing SIGABRT before the error gets written to the log
19:52 VanessaE so I can't find it in the logs
19:52 thexyz well but as you say the error text is there?
19:52 thexyz run it inside screen then
19:52 VanessaE CHRIST
19:52 VanessaE READ
19:52 VanessaE sorry, I'm tired
19:52 VanessaE three times I've said it already
19:52 thexyz well run it in screen then?
19:53 sapier ok VanessaE we need to know where that sigabort is from
19:53 thexyz why won't that work?
19:53 sapier it's obviously a follow up error
19:53 VanessaE http://pastebin.ubuntu.com/6579865/
19:53 VanessaE there, sapier
19:53 sapier NO
19:53 VanessaE I'll give you a full backtrace if you want it
19:53 sapier the sigabort is something independent
19:53 sapier it's not originated from the lua error but caused by it
19:53 sapier it's a second error caused by first one
19:54 thexyz meh so you use buggy mods and expect minetest to do some magic and not crash or what?
19:54 sapier if we can fix the second one you'll have your log back
19:54 VanessaE *facepalm*
19:54 VanessaE ok so what do you need from me?
19:54 sapier thexyz I don't think lua causes a sigabort
19:54 thexyz the log is here, what's the problem? i honestly don't understand, if you want you can redirect it to a file
19:54 VanessaE I've got a crashed debug build open in gdb right now/.
19:54 sapier that's caused by something we do after crash
19:54 VanessaE it crashed due to a simple nil function cal
19:54 thexyz minetestserver > log 2>&1
19:54 VanessaE call*
19:54 sapier -crash + lua error
19:55 Taoki Hmm... I need some advice or confirmation from the developers on something.
19:55 sapier maybe we don't catch some exception or catch it to late
19:55 VanessaE a routine, simple mod error that happens a dozen times a day during a coding session.  NEVER should a MOD LUA ERROR cause a server to SIGABORT
19:55 thexyz what should it do then?
19:55 sapier show a lua error in a dialog box to press ok ;-)
19:56 kahrl what is in main.cpp:1859?
19:56 thexyz ah sure always forget about this
19:56 VanessaE thexyz: um...maybe throw an error INTO THE LOG and exit cleanly with SIGQUIT or so?
19:56 kahrl for me it's an empty line
19:56 VanessaE or SIGTERM or whatever it is the server usually exits with
19:56 Taoki I'm trying to add looped sounds for flowing liquid sources to minetest_game. However, I can't find any proper way to start looping a sound when appropriate, while (especially) being able to stop looping that sound when no longer needed. Would it be acceptable if I used minetest.sound_play every 5 - 10 seconds? Or would that create too much lag?
19:56 thexyz kahrl: END_DEBUG_EXCEPTION_HANDLER(errorstream)
19:56 thexyz for me
19:56 sapier and as server doesn't have a dialog write it to log and quit
19:56 thexyz well just make a big try catch around server loop then?
19:56 Taoki celeron55, PilzAdam, sapier, etc.?
19:57 Taoki Or If I want to do this do I really need to use loop=true
19:57 PilzAdam Taoki, I think its something for the client side API
19:57 Taoki Which would be best, but I have no idea how to go about it in this circumstance x.x
19:57 kahrl thexyz: weird, that line is in main.cpp:1860 for me
19:57 VanessaE anyway, I've got this session sitting here crashed, and I need to restart it.  I've got a server to run.  is there anything you need from it before I do?
19:57 Taoki PilzAdam: What is?
19:57 thexyz kahrl: maybe my repo clone is out of date
19:57 PilzAdam Taoki, playing water sounds
19:57 Taoki Ah
19:58 Exio4 same here kahrl
19:58 Taoki Maybe. A client API is years from now though. And sounds like this could be server-side if done properly
19:58 Exio4 >sounds >server-side
19:58 thexyz just add a "catch (LuaError &e)" ?
19:58 thexyz I think that's what FM does
19:58 Taoki PilzAdam: This is the exact problem: I can easily start the loop by registering an ABM to water_source that has a water_flowing neighbor. Problem is, how to stop looping that sound when flowing water around that source is removed, or the source itself goes away
19:59 PilzAdam Taoki, of course; the server will send the Lua functions that the client should run
19:59 kahrl END_DEBUG_EXCEPTION_HANDLER is supposed to flush the logstream
19:59 PilzAdam also, you cant loop sounds that run on nodes/positions
19:59 kahrl that's what the <<std::endl; is for
20:00 Taoki I'm thinking of looing through the table containing all flowing sounds each 1 second, but that could be pretty intensive, and therefore not ok for default
20:00 Taoki PilzAdam: You can loop a sound at a fixed position. But it's not related to the onde there
20:00 Taoki **node
20:00 PilzAdam no, you cant
20:00 Taoki Strange, works fine here. Fire does it also
20:00 PilzAdam https://github.com/minetest/minetest/blob/master/doc/lua_api.txt#L233
20:00 Taoki You just need to add "loop=true" to the sound
20:01 Taoki PilzAdam: Why does it work for me on nodes then? It's a strange thing in this case :P
20:01 Taoki Because if I add loop=true on a sound triggered by a node ABM, it works well
20:02 PilzAdam the docs are wrong then
20:02 Taoki Seems so. Or maybe downdated, from before this was possible
20:03 Taoki PilzAdam: Anyway. Assuming that I have a water sound that is 5 seconds long. With no way to control when to start and stop the loop properly, I can register an ABM to the water source that runs every 5 seconds, whenever it finds the appropriate neighbors. Is this an acceptable idea?
20:03 Taoki Asking because triggering play_sound every 5 seconds uses a little bandwidth
20:03 Taoki I assume not much, but some might still not like it
20:03 Taoki Seems like the only way. But until a better system's in place, it could work
20:04 Taoki Sound is 10 seconds long, register_abm runs every 10 seconds as long as it finds flowing water nearby.
20:04 Taoki Certainly it's a small packet...
20:06 sapier be carefull with abms taoki if chance and frequency is to high that's quite dangerous
20:06 Taoki sapier: I'm using a well filtered and tuned ABM, shouldn't be a problem
20:06 Taoki With this idea, it runs every <sound file length> seconds, and also has a neighbor check so it's uses only when needed
20:08 Taoki Problem is there's not enough control in the current Lua API to properly start or stop looping a sound when water starts / stops flowing. So I have to trigger sound_play the same number of seconds as the file length manually, so the check can re-run then.
20:08 PilzAdam Taoki, isnt that a modding issue?
20:08 Taoki 5 seconds per 2-3 nodes at most isn't intensive, but sends a tiny packet in each case. Server lag can also cause breaks in the sound
20:09 Taoki PilzAdam: True. I'm asking here cuz it's for an official patch I'm trying to make
20:09 PilzAdam whats an "official patch"?
20:09 Taoki Mostly wanted to know if my approach would be accepted for minetest_game
20:09 Taoki Something intended to be added to master I mean :P
20:09 PilzAdam use Minetest_plus if you want water sounds
20:09 Taoki Might try it later. Want to improve existing minetest currently though
20:10 Taoki Erm, minetest_game in its original state
20:11 Taoki Anyway, I think I'll add the sounds this way to my branch. They can be discussed when I pull request the whole thing (I'm adding sound effects for various things, flowing water is just one)
20:17 Taoki This is my current code and approach, if it helps give a better verdict: http://pastebin.com/raw.php?i=sZdKimKH "interval = 5" because the sounds are exactly 5 seconds.
20:21 Taoki *sigh* That doesn't work well at all actually. 5 seconds is too long, and in case of server lag the gap will be much more visible.
20:21 Taoki Frustratingly, I can use looping already and it works great. I just can't detect when and how to stop the sound from looping, if the water source is ever removed.
20:24 proller celeron55, transfer vrange to server: https://github.com/proller/freeminer/commit/f86ef3a14ffdcc432029a153f14854fd9298c4d0
20:28 Taoki Alright, I might have found a way using on_placenode and on_dignode actually :)
20:28 Taoki To use the loop after all
20:33 Taoki Found the perfect solution, works using loop :) Code will be available in my branch
20:59 VanessaE Server: xxxxxx: Failed to emerge player (player allocated to an another client)
20:59 VanessaE -an
21:00 sapier yes?
21:00 VanessaE drop the 'an' from this log message.
21:00 sapier ohhh :-)
21:01 VanessaE server.cpp line 2080
21:03 thexyz VanessaE: well, this seems to be an ordinary "another player already connected" message
21:06 sapier1 joined #minetest-dev
21:07 VanessaE thexyz: you missed the point.  grammar error in the message
21:07 VanessaE it is not "an another".  it should simply be "another".
21:07 thexyz eh who cares
21:08 thexyz well you could create a pull request and then we'll have to wait for at least two core devs to agree to it
21:08 proller and 2 months
21:08 sapier1 << agrees for removing an
21:09 VanessaE 2 core devs to agree to removing one word from an error message to fix someone's poor grammar?  O.o
21:09 sapier << ok now with approved nick agree to remove an
21:09 VanessaE faith in humanity:  [-] 0.1
21:09 thexyz i can't into jokes
21:09 thexyz of course it's fine, just commit it
21:10 PilzAdam VanessaE, c55 always says "an another"
21:10 VanessaE then his grammar sucks :)
21:10 thexyz then it fucking should be "an another"
21:16 lanxu_ modifying the commit messages is dirty business. Just be happy that is is not like "Fixed something somewhere"
21:17 kaeza joined #minetest-dev
21:17 thexyz commit message?
21:17 thexyz what are you talking about?
21:17 lanxu_ whoops
21:18 lanxu_ I misread. Please continue. :)
21:20 Warr1024 joined #minetest-dev
21:25 sapier https://github.com/minetest/minetest/pull/774 any comments to this one? it'll improve animation for moving entitys quite a lot
21:28 VanessaE sapier: then it has no chance in hell :P
21:32 sapier it adds a new property to animation called basevelocity
21:33 sapier this is the velocity matching movement at 15 animationframes per second
21:34 sapier eg if a entity is walking at this velocity feet will touch ground at correct time
21:34 sapier after this pull request client will adjust speed of animation automaticaly if a entity is moving slower or faster than this basevelocity
21:50 Warr1024 oh, that's pretty neat
21:56 OldCoder joined #minetest-dev
22:05 OldCoder Hi
22:15 VanessaE hey OldCoder
22:17 ShadowNinja Can someone check this and approve it? I've added zero/one-based index conversion. https://gist.github.com/ShadowNinja/7953481
22:17 ShadowNinja PilzAdam: ^?
22:18 sapier I still miss a SINGLE usecase for this one
22:18 sapier and why isn't this a pull request?
22:19 sapier gists are supposed to be small non controversial bugfix only things
22:19 OldCoder VanessaE, Hi!
22:19 OldCoder VanessaE, may I PM?
22:20 VanessaE sure
22:22 ShadowNinja sapier: Because a pull request involves making a branch, commiting it, pushing it, and then requesting it, and closing the pull and deleting the branch when done. This is easier. And I've already explained it to you.
22:23 sapier you have explained a lot of things true but you didn't answer that one and only question I asked
22:24 sapier What is json serialization better then already included lua serialization
22:26 ShadowNinja sapier: I did tell you. Check your logs.
22:26 john_minetest left #minetest-dev
22:27 sapier I remeber you told it's cool because it's lua and can transfere data ... beeing cool and json isn't a reason at all and data can be transfered by minetest.serialize too
22:27 sapier you didn't tell anything else
22:30 sapier and can you explain why this is usefull to be done in c++? I guess it'd be a lot faster if done in lua
22:33 zat1 joined #minetest-dev
22:35 thexyz everything is a lot faster when done in lua! why not rewrite minetest in lua then?
22:35 thexyz we won't have those fat lua-c++ calls at all
22:36 sapier it's not everything serialization is just passing data one by one from lua to c++ it's numbercruchning
22:36 sapier and numbercrunching is exactly what c++ isn't faster then luajit
22:36 iqualfragile wtf?
22:37 sapier at least in most cases
22:39 proller wat?
22:39 iqualfragile plol
22:40 iqualfragile sapier: the slow part in passing data from c++ to lua or vice versa is that you need to translate and move stuff
22:40 proller sapier, now you must show one test where in 100000 iterations jit faster than c++ in 5% !
22:40 iqualfragile calls from c++ to lua and vice versa are slow for the same reason
22:40 proller but in 10000 jit slower in 300%
22:41 iqualfragile but c++ is allmost allways faster then any jit or interpreted solution
22:42 sapier proller see pathfinding benchmarks
22:42 sapier once data is in memory pathfinding isn't any faster in core than in luajit
22:44 sapier an still all this performance is minor if anyone can tell a single concrete usecase ... "it's json" is as good as "it's xml", "it's odt", "it's docx"
22:44 iqualfragile you cant compare xml and docx
22:44 sapier hmm concrete is wrong ... "specific"?
22:44 iqualfragile (odt is zipped xml)
22:45 sapier the point is do we really need another serialization format? if there's good reason no question but not because of someones personal preference for json
22:46 Taoki sapier, PilzAdam: I'm going to submit a fix for the colored for soon, to decrease the effect on clouds. This will address the problem PilzAdam pointed out, with clouds changing color unrealistically (fog and horrizon will stay the same)
22:46 PilzAdam Taoki, .... why havent you done that already?
22:46 Taoki Actually, I can easily mention what the value to change is, so I don't have to make a whole branch just for the fix
22:46 Taoki PilzAdam: There were a lot of opinions on what's right or wrong. It didn't come to my attention as much at the time
22:48 Taoki Alright
22:48 Taoki PilzAdam: In the file sky.cpp, look at the very last line containing code, and the very last number in that line. Currently, it's 0.75, which is indeed too high. I found that it looks better if that is changed to something between 0.25 and 0.5.
22:49 Taoki Can you please play with that value and see what a good change is? Please no lower than 0.25 though, it needs to color them at least a little bit
22:49 Taoki That line is: m_cloudcolor_f = m_mix_scolorf(m_cloudcolor_f, video::SColorf(pointcolor), m_horizon_blend() * 0.75);
22:49 PilzAdam not now
22:49 Taoki ok
22:49 Taoki sapier: Wanna look into it if you have time?
22:50 sapier same to me tomorrow ;-)
22:50 Taoki Maybe something like 0.35 works.
22:50 Taoki ok
22:50 PilzAdam I think its wrong to finish a feature after its merged, but whatever
22:50 Taoki If I find a good default, can you simply commit the change then?
22:50 Taoki PilzAdam: I know, I'm sorry I didn't look into it better. Like I said there were a lot of opinions on what should be changed, and I didn't get to look at this better
22:51 Taoki Especially since at first, people complained that cloud color doesn't change and that looks ugly
22:51 Taoki So initially, it was the other way around :P
22:53 Exio4 iqualfragile: isn't docx an xml?
22:53 iqualfragile damnd somebody actually read what i wrote
22:53 iqualfragile yes it is, kinda, but its properitary
22:54 sapier I give up ShadowNinja merge it ... I'm gonna merge a xml writer next week, the week after maybe a csv exporter ... I guess I'll find something for the week after
22:55 sapier XML is usefull for data archiving and transfering to other xml enabled applications ... according to your logics thats enough ... same applies to csv
22:58 Taoki Ok... best value seems to be 0.25. That only slightly tints the clouds, enough to make sure they match the overall hoirrizon color a bit. Color transition is very subtle on them, and looks as if it's due to the fog, so unrealism goes away
22:59 Taoki sapier, PilzAdam: Can you simply change that 0.75 to 0.25 and push to master? No need to make a whole branch just to change a number. You can test it as well later... certainly it doesn't worsen anything but highly the contrary
22:59 sapier can you create a gist taoki?
23:00 Taoki It's the number at the end of very last line of sky.cpp. Change 0.75 to 0.25
23:00 Taoki gist?
23:00 Taoki Don't think I'm experienced with that, sorry
23:00 sapier git diff and post it to gist.github.com then place a link here
23:00 Taoki Ah, a GIT patch? Ok
23:01 Taoki sapier: https://gist.github.com/MirceaKitsune/7979559
23:03 VanessaE Taoki: be sure you try out RBA's texturable run and moon patch, make sure your clouds coordinate well with its default textures/tonemaps
23:03 VanessaE https://github.com/minetest/minetest/pull/967
23:04 Taoki VanessaE: Yes, I plan to talk to him about how to integrate the colored fog with the tint map
23:09 Taoki sapier: Please commit that change tonight. PilzAdam was right... the cloud colors look VERY bad and unrealistic because they're too strong, but with this they're perfect. Sorry again for not noticing earlier >_<
23:09 VanessaE and SOMEONE please commit the texturable sun/moon code too :)
23:11 Taoki VanessaE: If it contains the tint map, it means I need to adapt the fog colors to it soon as well
23:11 VanessaE it does.
23:13 Taoki Yeah then...
23:13 Taoki I hope RBA won't hate me for this. I didn't know his code was already ready as well...
23:15 VanessaE it's ready except according to celeron55 (who doesn't like how the sun color changes.  he wants.. I dunno, some sort of multiplicative bloom effect or some such, I think)
23:15 VanessaE no wait, he wants different parts of the sun to change at different rates
23:15 Exio4 what the fuck
23:15 sapier left #minetest-dev
23:16 VanessaE Exio4: what?
23:16 Exio4 i just started minetest, what did i get? 180 fps and then it lagspikes to 1fps and reduces my view-range or whatever it is called to 10 (the min value i have), and then it goes back to max and then repeats
23:16 VanessaE mesh load/generation
23:17 Exio4 i'm idling, not doing anything
23:17 Exio4 also, isn't mesh generation done in other thread?
23:17 VanessaE Taoki: looks like sapier made the commit you requested.
23:18 Taoki Ah, good
23:18 Exio4 i can make a small video if you want
23:19 VanessaE Exio4: idk, but it kills my fps also when it happens.  every new mesh that is created causes a tiny fps sag, enough of them and it becomes visible as stuttering, overall low fps, etc.
23:19 VanessaE a large mesecons circuit with a blinky plant driving it, for example
23:20 VanessaE or a pipeworks pipeline that's gotten itself into a self-oscillating situation will do it
23:20 Exio4 maybe it is because minetest_plus bugs?
23:20 VanessaE (I discovered the latter only just last night, and it will probably never happen in practice, but I'll fix it some day)
23:21 VanessaE I run vanilla minetest engine, so no.
23:21 Exio4 i mean, my bug
23:21 * VanessaE shrugs
23:21 VanessaE if it happens to both of us, I'd tend to say no
23:22 VanessaE why exactly it happens, idk.  I am no expert on how minetest and/or irrlicht communicates meshes to the video card.
23:22 Exio4 it still happens with shaders disabled and preload items enabled
23:23 Exio4 i think it is the same bug
23:23 Exio4 num of processed meshes goes up to 15+ and then goes back to 1-2
23:24 VanessaE you probably have some mesecons or alike circuit somewhere in your map that fires every so often, causing mapblocks nearby to be re-generated with new content
23:24 Exio4 also, mt_plus the game :P
23:24 VanessaE e.g. an "off" node becomes an "on" node, etc.
23:24 VanessaE each of those events forces a new mesh to be generated.
23:25 Exio4 it is a new generated wolrd without any mods outside minetest_plus
23:25 VanessaE what's mt_plus have in it?
23:25 Exio4 https://github.com/BlockMen/minetest_plus/
23:26 VanessaE hm
23:26 VanessaE well, nothing active in there that I know of, unless you have a bunch of hidden furnaces in there somewhere turning on and off randomly maybe.
23:26 VanessaE or leaves decaying
23:27 VanessaE flowers/grasses spreading
23:27 VanessaE those are about all I can think of that mt_game and mt_plus would do to actively cause a mapblock to change
23:27 VanessaE (and thuse trigger a mesh regeration)
23:27 * Taoki hopes I'm not the reason sapier left the channel earlier. Would have to have annoyed any of the devs to this extent...
23:27 VanessaE of course newly-generated land will do that as it comes in, too
23:28 VanessaE Taoki: no, this is about when he'd usually sign off
23:28 VanessaE it's around 12:30am his time I think
23:28 Taoki Ah, ok. Cuz he didn't quit but left this channel
23:28 Taoki Or well maybe his IRC qlient quits channels first then disconnects
23:28 Exio4 it is purple = pidgin
23:29 Exio4 so yeah, he is still connected tho :P
23:29 Exio4 inb4 actually finch
23:29 * VanessaE shrugs
23:36 iqualfragile sapier uses finch
23:37 deltib how long do I stare at an unchanging unresponsive BIOS updater before I assume my system is screwed?
23:43 deltib bad news, the BIOS updater doesn't work, good news it didn't do anything to the flash before it stopped working
23:54 bebeshko joined #minetest-dev
23:58 VanessaE deltib: surely you have a modern enough board to use one of those easy-recovery utilities?  every board I've bought recently has that feature
23:58 EvergreenTree joined #minetest-dev
23:58 VanessaE (where they basically have a backup copy of the bios available, or can flash to it quickly)
23:58 deltib it's not modern
23:58 VanessaE ohhh

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