Minetest logo

IRC log for #minetest-dev, 2022-07-22

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

All times shown according to UTC.

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

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