Time |
Nick |
Message |
00:13 |
|
Baytuch joined #minetest-dev |
00:22 |
|
Baytuch joined #minetest-dev |
00:25 |
|
Baytuch joined #minetest-dev |
02:02 |
|
Baytuch joined #minetest-dev |
03:12 |
|
Yad joined #minetest-dev |
03:53 |
|
behalebabo joined #minetest-dev |
03:56 |
|
MTDiscord1 joined #minetest-dev |
04:00 |
|
MTDiscord1 joined #minetest-dev |
05:39 |
|
Baytuch joined #minetest-dev |
05:40 |
|
calcul0n_ joined #minetest-dev |
05:50 |
|
Baytuch joined #minetest-dev |
05:56 |
|
cranezhou joined #minetest-dev |
06:02 |
|
Baytuch joined #minetest-dev |
06:03 |
|
erle joined #minetest-dev |
06:11 |
|
Baytuch joined #minetest-dev |
06:14 |
|
Baytuch joined #minetest-dev |
06:33 |
|
olliy joined #minetest-dev |
06:36 |
|
Baytuch joined #minetest-dev |
06:52 |
|
MTDiscord joined #minetest-dev |
06:58 |
|
Baytuch joined #minetest-dev |
07:03 |
|
Baytuch joined #minetest-dev |
07:21 |
|
cranezhou_mt joined #minetest-dev |
07:26 |
|
Baytuch joined #minetest-dev |
07:36 |
erle |
anyone has opinions on my idea ”render a single frame with an increasing number of shader instructions until you reach the size of the largest shader or it takes 500ms to render the frame to figure out of shaders should be enabled or not?” |
07:36 |
erle |
like, if it should even be possible to enable shaders |
07:37 |
erle |
or maybe 100ms even, given that this would constitute an unplayable game |
07:38 |
sfan5 |
question: how do you truncate a shader at a given length? |
07:38 |
sfan5 |
question 2: will you do the work? |
07:46 |
erle |
sfan5 you don't have to truncate the shader, you can just use a loop inside it |
07:47 |
erle |
int limit = 32; float useless = 0.5; for(int i=0; i<limit; i++) useless = useless*useless; |
07:47 |
erle |
just construct a shader with ”limit” set to a higher value |
07:47 |
erle |
at some point performance drops sharply |
07:48 |
erle |
that is 1 instruction over what your GPU can do |
07:48 |
erle |
at least for arithmetic instructions |
07:49 |
erle |
i think i can try to do the work if the result is “minetest will still run, but degraded” and not “minetest will not run if this test fails” |
08:15 |
|
Guest43 joined #minetest-dev |
08:47 |
|
vampirefrog joined #minetest-dev |
08:51 |
sfan5 |
that seems like an awful lot of assumptions, is "a = a*a" always a single instruction? and suppose we have determined a limit, what do we do with this number? |
08:55 |
sfan5 |
what I'm saying is you should have a concrete proposal with tangible benefits instead of throwing random ideas out there |
08:56 |
erle |
fair |
08:57 |
erle |
i suggest once the limit is determined that we simply disable the shader options for which the shaders exceed the limits. i am sure x2048 has much better ideas than me on this. |
08:58 |
sfan5 |
thats what I was saying, how do we know how many instructions a shader has? |
08:59 |
erle |
i am trying to figure it out rn |
09:23 |
|
YuGiOhJCJ joined #minetest-dev |
09:27 |
|
YuGiOhJCJ joined #minetest-dev |
09:41 |
|
HuguesRoss6 joined #minetest-dev |
09:52 |
sfan5 |
it would be nice if someone could address warnings before release |
10:12 |
|
Yad joined #minetest-dev |
10:52 |
sfan5 |
rubenwardy: which NDK version do we use inside MT |
10:53 |
MTDiscord |
<x2048> erle sfan5: isn't it simpler to target specific fps and incrementally increase pipeline features on first launch until it's hit? |
10:54 |
erle |
x2048 well, it's not like there is any noticeable effect once you exceed the instruction limit |
10:54 |
erle |
it's a hard boundary |
10:54 |
erle |
on one side you get fast shaders, on the other side you get garbage tier performance that is better with mesa software rendering |
10:54 |
sfan5 |
appears to be some old r23 version |
10:55 |
erle |
x2048 i think if it was gradual you'd be right |
10:56 |
erle |
you can try it yourself btw, using that useless multiplication trick i posted above. though i am still not sure if it is always 1 instruction. |
10:57 |
erle |
x2048 i'd be grateful if you could give me the simplest possible standalone implementation of shadows using shaders you have lying around so i can see if it works using the *ARB functions on my GPU. |
10:58 |
erle |
fabien sanglard made a tiny one, but i can't get it to compile |
11:24 |
sfan5 |
pushing https://github.com/minetest/minetest/commit/2183b35ba4cda762e3176a7b442dd786e749b35d if/once the build succeeds |
11:52 |
|
cranezhou joined #minetest-dev |
12:17 |
|
cranezhou joined #minetest-dev |
12:18 |
|
Baytuch joined #minetest-dev |
12:20 |
|
kilbith joined #minetest-dev |
12:21 |
|
YuGiOhJCJ joined #minetest-dev |
12:28 |
|
Baytuch joined #minetest-dev |
12:42 |
|
calcul0n joined #minetest-dev |
12:44 |
|
Baytuch joined #minetest-dev |
13:18 |
erle |
i deeply apologize for 3d cloud rendering being shit, i vaguely remember that it was my fault many years ago |
13:27 |
|
Fixer joined #minetest-dev |
13:32 |
|
Baytuch joined #minetest-dev |
13:39 |
|
Baytuch joined #minetest-dev |
13:49 |
|
Wuzzy joined #minetest-dev |
13:53 |
erle |
how do i make settings have defaults? i am asking for the cloud thing: https://github.com/minetest/minetest/issues/11685#issuecomment-1192596593 |
13:58 |
|
Baytuch joined #minetest-dev |
14:03 |
|
Yad joined #minetest-dev |
14:05 |
|
Baytuch joined #minetest-dev |
14:09 |
|
erle joined #minetest-dev |
14:14 |
|
Baytuch joined #minetest-dev |
16:00 |
|
Taoki joined #minetest-dev |
16:24 |
erle |
i don't think the shader loop performance testing thing i suggested is going to work in general. the reason is that it obviously relies on loop unrolling. |
16:29 |
erle |
i.e. basically, any GPU that is old enough can totally do shaders and GLSL, but is unable to do dynamic branching in hardware, so everything is unrolled LMAO |
16:29 |
erle |
here are some entirely unsourced limits: https://stackoverflow.com/questions/2617957/glsl-maximum-number-of-instructions |
16:50 |
vampirefrog |
hey guys is there a way to connect to a minetest server to listen for chat events? |
16:50 |
vampirefrog |
do I need a mod that listens on a http port and has a websocket or something? |
16:50 |
vampirefrog |
does that mod exist already? |
16:51 |
vampirefrog |
I basically want to connect to the minetest server like I would connect to an IRC server, so as a client |
16:51 |
vampirefrog |
and just listen to chat |
16:52 |
sfan5 |
that's a question for #minetest |
16:52 |
vampirefrog |
thanks |
16:52 |
sfan5 |
I believe someone wrote a client that implements the Minetest protocol only for chatting |
16:53 |
sfan5 |
(third-party implementation) |
16:53 |
erle |
yeah and it revealed some issues |
16:53 |
vampirefrog |
well yes but would I connect as a player or as some invisible entity |
16:53 |
erle |
wait, i have a screenshot of the answer |
16:53 |
vampirefrog |
okay |
16:56 |
sfan5 |
a player, there's no direct support for joining the game without appearing in the world |
16:56 |
erle |
vampirefrog games vary in handling this, but this is one thing that happened lol https://mister-muffin.de/p/GVwX.png |
16:56 |
vampirefrog |
lmao |
16:56 |
vampirefrog |
he flat |
16:56 |
erle |
yes, but that is not a fault of the engine |
16:56 |
erle |
but the game (mineclone) |
16:56 |
vampirefrog |
that's alright |
16:56 |
erle |
the engine will place you as an unmoving player on some spawn point |
16:57 |
vampirefrog |
I probably just need a mod that listens on a websocket or just a regular socket |
16:57 |
erle |
what |
16:57 |
vampirefrog |
so a mod that is installed on the server, that waits for chat events, and also has an open websocket |
16:57 |
erle |
sfan5, do you remember the headless minetest client that used to crash the login? |
16:58 |
vampirefrog |
and then it just relays the chat messages to the websocket clients |
16:59 |
vampirefrog |
i can probably take code from one of the bridge plugins |
17:00 |
sfan5 |
erle: its probably linked in the issue |
17:05 |
Krock |
will push https://krock-works.uk.to/u/patches/0001-Mainmenu-Escape-server_favorite_delete-path.patch fix for #12583 in 20 minutes |
17:05 |
ShadowBot |
https://github.com/minetest/minetest/issues/12583 -- Delete favorite button texture missing |
17:08 |
sfan5 |
given how often the core.formspec_escape(defaulttexturedir .. "foo.png") is repeated there should really be a wrapper function |
17:08 |
sfan5 |
(eventually, not now) |
17:10 |
Krock |
thought of the same |
17:11 |
Krock |
but well I don't care too much about that |
17:24 |
MTDiscord |
<x2048> erle: I don't have any, but can try to fix Fabien's impl if you point me to. The problem of shadows is not in shaders, its the double drawcalls. Shadow shaders are trivial-dumb. |
17:24 |
Krock |
pushing |
17:39 |
erle |
x2048 if you can tell me how to compile this on gnu/linux (x86, debian), i'd be happier https://fabiensanglard.net/shadowmapping/index.php |
17:51 |
Krock |
sfan5: https://github.com/minetest/minetest/commit/7e9666d71 to fix #12567. It's pretty trivial; gave it a quick test. If you think it's okay, I'll push it to master |
17:51 |
ShadowBot |
https://github.com/minetest/minetest/issues/12567 -- util/stress_mapgen.sh can execute “rm -rf /” if current directory name contains a space |
17:56 |
sfan5 |
Krock: looks okay |
17:58 |
Krock |
thanks. Will push that commit in 15 minutes then |
17:59 |
Krock |
whereas the described issue cannot happen, it's still good to have paths with spaces supported. |
18:03 |
vampirefrog |
is this the right place to ask about mod dev? |
18:04 |
Krock |
it's more about C++ and Minetest API development here. #minetest should fit better for that |
18:11 |
vampirefrog |
thanks |
18:12 |
Krock |
pushing |
18:37 |
erle |
what's the deal with #11933? |
18:37 |
ShadowBot |
https://github.com/minetest/minetest/issues/11933 -- A light_source should not override sunlight. by lhofhansl |
19:18 |
|
calcul0n joined #minetest-dev |
19:23 |
erle |
sfan5, why did you close #11749? i understand very well that you do not like my proposed solution, but the issue is not titled “stop using cmake” or “use redo”, it points out 3 bugs in the current build system. |
19:23 |
ShadowBot |
https://github.com/minetest/minetest/issues/11749 -- CMake does not capture all dependencies, causing erroneous incremental builds & build failures |
19:24 |
erle |
and at least the fact that cmake does not actually capture all dependencies is totally fixable |
19:25 |
erle |
because it is not an issue with cmake, but with how it is set up |
19:26 |
erle |
if you don't care about dependency bugs at all, then just say it |
19:44 |
|
vampirefrog joined #minetest-dev |
19:53 |
sfan5 |
if it's fixable then open a PR |
19:53 |
|
proller joined #minetest-dev |
19:53 |
sfan5 |
or state how at the very least |
19:55 |
sfan5 |
the entire discussion revolved about how it wasn't fixable with cmake and you'd need a different build system and now suddenly it can be fixed |
19:55 |
sfan5 |
if you don't provide acceptable solutions I'm not keeping that issue open |
19:56 |
sfan5 |
feel free to convince another coredev that this is worth spending time on otherwise |
20:16 |
|
vampirefrog joined #minetest-dev |
20:27 |
|
Baytuch joined #minetest-dev |
21:15 |
|
Baytuch joined #minetest-dev |
21:25 |
|
Baytuch joined #minetest-dev |
21:31 |
|
Baytuch joined #minetest-dev |
22:00 |
|
Baytuch joined #minetest-dev |
22:06 |
erle |
sfan5 i will not make such a PR for the simple reason that I am not an expert on cmake. the thing have suggested to start with identifying which dependencies are not being tracked, so they can be added to the build rules and to determine which commits are problematic in terms of incremental builds. |
22:06 |
|
Baytuch joined #minetest-dev |
22:08 |
erle |
I have suggested multiple strategies to do this months ago. i will list them again now: 1. do incremental and full builds in the CI. when the incremental build fails, figure out what is wrong with the commits. 2. use my provided hook that prevents one of the bugs to mask another one of them in the CI. 3. strace the compiler to figure out which files are actually used. |
22:09 |
erle |
in a twist of irony, the by far simplest strategy for anyone without a deep knowledge of cmake would be to write a correct build rule for any build system that can figure this out on its own and then translate the results to cmake. |
22:10 |
sfan5 |
well we don't have any people deeply familiar with cmake either |
22:10 |
erle |
so you are arguing from a point “there is no one who could fix it”, am i right? |
22:10 |
erle |
at least fix it in any way acceptable to you |
22:12 |
erle |
if that is the case, then you already are deep in tech debt. good luck with that, but denying it's an issue will not help. also i remember that josiah_wi did know cmake better than others. |
22:13 |
sfan5 |
josiah_wi declared that "[...] there is currently no good way to do an incremental build with CMake" |
22:14 |
erle |
then in my opinion the very least that should be done is putting that information and the information on how to rebuild in a separate directory prominently into the docs or try to make it the default somehow. |
22:32 |
erle |
i find this extremely frustrating btw – but not because you don't want my particular solutions to the problem, but because of the “this issue should be closed because i can not imagine an acceptable solution exists, so it is as good as unfixable” type of logic paired with rejecting every single approach that could even improve the situation slightly. |
22:33 |
|
kaeza joined #minetest-dev |
22:34 |
|
panwolfram joined #minetest-dev |
23:42 |
|
cranezhou joined #minetest-dev |