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 |