Minetest logo

IRC log for #minetest-dev, 2020-07-06

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

All times shown according to UTC.

Time Nick Message
00:23 Qiangong2[m] joined #minetest-dev
00:25 pipo joined #minetest-dev
02:33 Kimapr joined #minetest-dev
03:46 DI3HARD139 joined #minetest-dev
04:01 Taoki joined #minetest-dev
06:50 calcul0n joined #minetest-dev
08:00 ShadowNinja joined #minetest-dev
08:04 appguru joined #minetest-dev
08:09 NetherEran joined #minetest-dev
09:04 erlehmann joined #minetest-dev
09:47 Flitzpiepe joined #minetest-dev
10:25 Taoki joined #minetest-dev
10:44 absurb joined #minetest-dev
11:17 erlehmann joined #minetest-dev
11:17 Fixer joined #minetest-dev
11:21 Zughy joined #minetest-dev
11:34 celeron55 by quickly searching through the 5.2->5.3 diff it doesn't seem like there are any changes related to marking more blocks for sending
11:34 celeron55 but if hecks is right, there has to be something
11:48 Wuzzy joined #minetest-dev
12:23 oiaohm joined #minetest-dev
12:33 Kimapr joined #minetest-dev
13:13 Kimapr joined #minetest-dev
14:28 oil_boi joined #minetest-dev
14:40 Kimapr joined #minetest-dev
15:20 appguru joined #minetest-dev
16:04 fluxflux joined #minetest-dev
16:06 erlehmann joined #minetest-dev
16:13 search_social joined #minetest-dev
17:26 NetherEran joined #minetest-dev
18:27 appguru joined #minetest-dev
18:51 Fixer joined #minetest-dev
19:10 hecks joined #minetest-dev
19:25 hecks Are tile layers used for something other than cracko?
19:34 calcul0n joined #minetest-dev
19:38 oil_boi So we were having a major discussion with frustrations of infrequencies of releasing/patching/the dev cycle
19:38 oil_boi I had a pretty substantial thought as I got caught in a mirror maze of thoughts on this, why is the dev cycle 6 months this, 6 months that, rebasing with that methodology becomes an absolute nightmare
19:39 oil_boi Also, someone's life could change completely in the span of 6 months, that's a very, very long time
19:39 oil_boi The idea I had was: 1 week bugs, 1 week features, repeat
19:40 oil_boi Utilize the version number's third digit more often, 5.3.1, 5.3.2, etc even counting up past where that is 5.1.10 if needed
19:40 oil_boi This would result in less frustration and better development freshness
19:40 rubenwardy the third number is patch, which means bug fixes
19:41 sfan5 the version scheme reserves the last digit for bugfixes releases
19:41 sfan5 ninja'd
19:41 oil_boi Exactly, and if a major bug is fixed during a week of bug fixing you can bump the release from 5.3.X to 5.3.Y at the end of the week
19:41 rubenwardy I think that weekly is too much, but monthly is more feasible. The problem is time to test, and difficulty in releasing
19:42 rubenwardy heh
19:43 oil_boi This keeps developers and _potential_ developers fresh and on their feet, eager to make additions/bug fixes because the mindset will be, oh man this is gonna be so cool I want to try to add this in as a pr so it can possibly get merged next week!! vs oh man, 6 months until this is gonna even get potentially merged, I'm not even bothering
19:43 rubenwardy releasing more doesn't mean that PRs will get merged faster
19:43 sfan5 the minimum theoretical duration until merge is only ever 2-3 weeks
19:43 oil_boi That's why there was the other idea, trusted non core devs
19:44 sfan5 unless you mean the point when features appear in a release
19:44 oil_boi Users allowed to test things that are potential additions and fixes to the engine that improve everything
19:44 oil_boi They can just say Tested: Approved or Tested: rejected
19:45 rubenwardy talking about releasing, can we release 5.3 soon?
19:46 sfan5 if someone finally merged #10145, sure
19:46 ShadowBot https://github.com/minetest/minetest/issues/10145 -- Fix player controls only being applied for the first move by sfan5
19:47 oil_boi Ok, I'll give er a test
19:48 rubenwardy the code lgtm,
19:48 sfan5 according to what TheTermos said if you have 100+ fps this doesn't change anything for you
19:48 rubenwardy I'm not familiar with the code
19:48 rubenwardy <oil_boi> They can just say Tested: Approved or Tested: rejected
19:48 rubenwardy so, how would this actually change things? Just a label?
19:49 sfan5 saves time for coredevs because they have people they can rely on
19:49 rubenwardy I have been encouraging non-core devs to review and test like that. I did it before becoming on
20:04 oil_boi An fps difference decides whether or not that code works
20:08 oil_boi Tested: Rejected https://youtu.be/7e7AW8kY4G0
20:08 oil_boi See that method is easy!
20:09 rubenwardy thanks
20:10 sfan5 it fixes the bug for 60fps though
20:11 sfan5 100+ fps should have worked before
20:12 oil_boi A question: Shouldn't jumping only be viable once the user is committed to standing on the node they are on?
20:12 oil_boi 30fps, ah man I can't believe I'm saying this, feels better
20:13 sfan5 could be made an option if you want that behaviour for crafter
20:13 oil_boi But I tried to make that an option :<
20:13 sfan5 the PR is still open isn't it?
20:14 oil_boi OH the pr was checking if it was possible, such an old bug in the engine I forgot people liked it, then PR approved yay
20:15 oil_boi Indeed it is
20:17 oil_boi Can we get any core to test/approve it so it can finally be merged?
20:18 rubenwardy oh, so not tested: rejected?
20:19 sfan5 https://0x0.st/iyvT.mp4 works for me with 30fps btw
20:19 rubenwardy well, lgtm if it's tested
20:19 oil_boi Nah, I didn't realize that it was meant to implement the bug, I misread that it was to prevent it
20:19 hecks actually, a high framerate makes the stair glide work without the fix too
20:20 hecks talking something like 300+ FPS
20:20 hecks it becomes possible again
20:20 sfan5 oil_boi: didn't you find that the bug does not happen with 30fps?
20:20 oil_boi Hm, could the vs windows 10 compiler be doing some strange stuff to the executable?
20:21 sfan5 I hope fast math isn't enabled in the msvc options
20:21 oil_boi It doesn't, I thought that was intended behaviour I have no idea if we're trying to put it in, take it out, or mix it
20:21 sfan5 but then collision would be entirely broken
20:21 hecks can someone give me a second opinion on this: client/mesh.cpp, scene::IMeshBuffer* cloneMeshBuffer, does this leak memory or what?
20:21 sfan5 the objective of the PR is to put the "bug" back in
20:21 oil_boi Oh then yeah, I have to go back again, and this is why I'll never be core :P
20:22 sfan5 hecks: it intentionally returns an allocated mesh buffer that the caller is supposed to free (later), sound correct?
20:23 hecks I'm talking about the use of mesh_buffer->getVertices() inside the function
20:23 hecks who frees *that*?
20:23 sfan5 that's a pointer to stuff that's already there
20:23 hecks hm okay so that's not a copy, and dropping the original mesh will free that
20:23 sfan5 yea
20:29 sfan5 rubenwardy: do you think it can be merged then?
20:40 oiaohm joined #minetest-dev
20:47 _Zaizen_ joined #minetest-dev
20:51 Unarelith joined #minetest-dev
20:52 appguru1 joined #minetest-dev
21:12 rubenwardy When structuring the CSM sandbox, should we care about things that can crash the client?
21:12 rubenwardy I guess not
21:16 oil_boi Yes
21:18 rubenwardy A `error()` will crash the game gracefully
21:18 rubenwardy I guess the problem is if it crashes ungracefully
21:19 sfan5 my personal roadmap includes making all errors graceful so that the client continues working and just disables CSM when it breaks
21:19 sfan5 no idea if others would agree
21:19 rubenwardy hmm
21:20 rubenwardy Could it reload CSM, and pretend it's loading from scratch?
21:20 rubenwardy heh
21:20 sfan5 would confuse the server if they communicate
21:20 rubenwardy true
21:20 rubenwardy It should close any mod channels, which would allow the server to detect it
21:20 oil_boi Why would it confuse the server?
21:21 rubenwardy also, #10162
21:21 ShadowBot https://github.com/minetest/minetest/issues/10162 -- Refine CSM sandbox by rubenwardy
21:21 hecks how about designing it to actually catch lua errors in events, dump an error, and run the next step anyway
21:21 rubenwardy you can end up in an undefined state
21:21 rubenwardy actually, that doesn't matter for a client as there's much less risk of corruption
21:21 hecks this is a VM though, undefined state is not anywhere as scary as it sounds
21:22 sfan5 still a bad design decision
21:22 hecks it would have some value as a developer option
21:23 hecks just dumping someone to desktop/menu for an error makes development somewhat slower, soft errors and hot reloading of code would make this smoother
21:23 hecks though I admit those things become less valuable the more complex a project gets
21:23 oil_boi Can we just disable os library for csm since there is minetest.get_us_time and the only class usage for that was os.clock?
21:24 rubenwardy already is disabled
21:24 rubenwardy wait no, os.clock, os.date, os.difftime, and os.time exist
21:24 rubenwardy os.date may crash in some version of Lua
21:24 rubenwardy which is why I asked the question about crashing
21:24 rubenwardy if we care about ungraceful crashes due to mods, then os.date would need to be removed/replaced
21:25 oil_boi Just disable the entire library from being lua accessed with a passthrough function being available in it's place
21:25 hecks what use is there for os.date in client code?
21:25 sfan5 to display the local time of when an event happened?
21:25 hecks hm, okay, local timestamps
21:26 oil_boi minetest.get_date minetest.get_realtime
21:26 hecks might as well
21:26 oil_boi There's already minetest.get_us_time might as well complete the cycle client and server
21:27 hecks reminder that us_time is broken and someone needs to fix it
21:27 sfan5 on Windows which nobody uses ;)
21:27 hecks ;]
21:27 oil_boi Might as well keep it set to US time since that's in there already even though us_time doesn't say which time zone :P
21:27 oil_boi Hm it seems to work for me
21:28 sfan5 I think by broken hecks means that it wraps around too fast / at all
21:28 hecks it overflows after something like two hours
21:28 oil_boi is it a 32 bit int limit for it?
21:29 hecks the windows perf counter is supposedly 64 bit but something might be truncating it to 32
21:30 hecks in any case it's as easy as checking if the time got reset and accounting for it with an offset
21:30 oil_boi It must be translating from the os.clock in c++ or whatever it's called into a s32 and then overflowing due to the 32 bit integer limit assigned to it as it's translated into lua
21:31 hecks on Windows it's using the perf timer
21:31 hecks oh wait
21:31 hecks WAIT
21:31 hecks it's not windows only
21:32 oil_boi *waiting*
21:32 oil_boi :O
21:32 hecks my server is slackware
21:32 hecks it happened there too
21:32 hecks in fact, it might be happening *more* often on linux
21:32 oil_boi This might be why my server randomly crashes when no one is on it even after a full restart with nothing loaded overnight
21:33 hecks well it's not a crash for me, but animators all suddenly freeze because I never ever use time accumulators in my code
21:33 hecks and instead check time against time+offset, which always fails after the overflow
21:34 hecks now if you also naively calculate delta time from us_time, and apply it to anything...
21:35 oil_boi The us must be responsible for this
21:35 hecks capitalist pigs
21:41 hecks updated #10105 please change the tag
21:41 ShadowBot https://github.com/minetest/minetest/issues/10105 -- minetest.get_us_time overflow
22:24 hecks still a little messy but damn https://a.cockfile.com/4CBx2F_batch.jpg
22:34 hecks https://a.cockfile.com/u4sLrr_saved.jpg check out the 'batches saved' count
23:22 hecks ah, yes
23:23 hecks nothing like solving the camera offset problem by just cutting it out :]
23:32 pgimeno o.O what does that mean?
23:34 hecks at the moment, minetest applies the camera offset to every map mesh in existence, statically
23:35 hecks literally iterating over blocks, then over their verts and adding the camera offset there
23:36 hecks so I've changed it to just set a transform matrix when drawing like anyone sane would
23:36 oil_boi Hahaha, that's why only 500 fps
23:36 hecks now this only happens when the offset changes
23:37 hecks but it probably results in a visible spike
23:37 hecks also, repeatedly shifting all world geometry might not be healthy for precision
23:38 oil_boi Does the geometry get rebuilt even when the user has no camera/positional vector change?
23:38 hecks well, in this case no, the camera offset is tied to your position and changed every 200m but
23:38 hecks I've got an unrelated thing going on where minetest is sending me block changes for no apparent reason, even when I'm stationary
23:39 xerox123_ joined #minetest-dev
23:39 oil_boi Abm calculations causing a nil block update?
23:39 hecks no, this is a very very barebones devtest setup meant to isolate this
23:39 hecks time frozen, no abms, no nothing
23:40 hecks by the way if you're getting 500 fps *now* I should let you try my branch soon
23:40 oil_boi ABMs might still be running even though they're assigned not to, I would give er a check in case the server is running that code, I dunno man grasping for straws at a haystack here
23:40 hecks this is even better than those blocksize 64 tests
23:40 hecks well the one thing I noticed
23:41 hecks whenever those block changes are sent, the geo *is* updated somehow
23:41 hecks by like one quad
23:41 * oil_boi looks at server env source
23:41 hecks I've combed through that already
23:41 hecks but you're welcome to try, let me look something up
23:42 oil_boi Do you have any liquids around you?
23:42 hecks this was definitely the "block update due to packet" path
23:42 hecks it happened even on a map without liquids
23:43 hecks just mgflat with zero features
23:43 pgimeno <hecks> also, repeatedly shifting all world geometry might not be healthy for precision <-- I've been trembling about that since I saw it, so nice job moving it to a matrix, let's hope it doesn't affect precision too. Try near the 30K border.
23:43 oil_boi Could it be auto unloader doing an instant unload-reload
23:44 oil_boi https://github.com/minetest/minetest/blob/master/src/server.cpp#L585
23:44 hecks maybe it's the client "forgetting" a block when it shouldn't
23:44 oil_boi That would certainly do that actually
23:44 hecks but right, I wonder, I should disable data unloading entirely
23:45 hecks but first let me fix the... map edge precision problems
23:45 hecks the other thing mapblockmesh does is translate the whole block geo to its world position
23:46 hecks so effectively if you teleport to the edge of the map, you will translate it back from that position..... statically
23:46 hecks well okay, it will be cancelled out when the block is meshed
23:46 hecks but I'll just like, use a matrix, man
23:47 hecks oh right, my batcher doesn't cull or forget anything yet https://a.cockfile.com/0jzlvK_18kdrawcalls.jpg
23:52 fluxflux joined #minetest-dev
23:54 oil_boi Was very nervous clicking that link but I'm glad I did that's crazy

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