Minetest logo

IRC log for #minetest-dev, 2022-03-24

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

All times shown according to UTC.

Time Nick Message
00:28 v-rob joined #minetest-dev
00:42 Sokomine joined #minetest-dev
00:47 v-rob joined #minetest-dev
00:58 AliasAlreadyTake joined #minetest-dev
02:00 v-rob joined #minetest-dev
02:07 v-rob joined #minetest-dev
03:29 queria^clone joined #minetest-dev
03:33 queria^clone joined #minetest-dev
04:00 MTDiscord joined #minetest-dev
04:03 v-rob joined #minetest-dev
05:23 Pexin joined #minetest-dev
05:48 Yad joined #minetest-dev
06:27 Pexin joined #minetest-dev
06:41 calcul0n joined #minetest-dev
06:42 v-rob joined #minetest-dev
07:28 panwolfram joined #minetest-dev
07:41 panwolfram joined #minetest-dev
09:26 appguru joined #minetest-dev
10:29 _Zaizen_[m] joined #minetest-dev
10:40 appguru joined #minetest-dev
10:48 Taoki joined #minetest-dev
10:51 HuguesRoss4 joined #minetest-dev
12:55 proller joined #minetest-dev
13:30 appguru joined #minetest-dev
14:25 ronoaldo makes sense, thanks! so it won't hurt to me if I try OpenGL then. Which OpenGL "version/level" would be ideal? Like OpenGL ES or something else?
14:27 Fixer joined #minetest-dev
14:49 appguru joined #minetest-dev
14:57 erlehmann ronoaldo this depends on your hardware. minimum for minetest is opengl 1.3 right now AFAIK. there is an OGLES2 renderer, but the shaders exceed the amount of instructions given in the OGLES2 spec, so depending on your hardware, it might not work even if it's OGLES2 compliant (look in the github issue tracker for mali GPU, it's compliant, but can't do the OGLES2).
14:58 erlehmann i mean minetest can't do the OGLES2 thing because shader instruction amount
14:59 erlehmann ronoaldo to be clear: there is no single “best” version that works for all hardware. it depends on your hardware. i have both hardware where OGLES2 rendering gives more fps (reform2) and hardware where opengl fixed pipeline gives more fps (thinkpad t60). and someone in the issue tracker even reported something where OGLES1 would work best on some hardware.
15:03 erlehmann ronoaldo the “direction” is OGLES2-like, but it's definitely not OGLES2 … i have read the spec and the limits on shader size are not an optional thing, if you want your stuff to run on conforming hardware, you can't reasonably exceed them. if you are a shader wizard, maybe you can optimize it until it's runs on all conforming hardware?
15:07 erlehmann ronoaldo also if you want to improve rendering a most frustrating thing for players performance-wise is the amount of drawcalls for particles.
15:59 ronoaldo I see - so it is not even related to the rendering alone, the algorithm behind the particles in this case, right?
16:00 rubenwardy no, the problem is the rendering
16:00 ronoaldo I'm willing to learn more about this stuff so it is nice to get a real issue like that so I can both learn the codebase from Minetest and the required graphics stuff
16:00 rubenwardy each particle is rendered individually
16:00 rubenwardy this results in a huge number of drawcalls - calls from the CPU to the GPU
16:00 ronoaldo I see, so the irrlitch now is the potential bottleneck? or this particles are done via shaders?
16:00 rubenwardy no, it's not Irrlicht at all
16:00 rubenwardy it's Minetest
16:00 ronoaldo got it
16:01 rubenwardy the solution is to batch the particles. You don't need shaders for this, but you can use shaders to make the particles even more performance
16:02 rubenwardy Minetest wouldn't have this problem if it used the Irrlicht particle system, as that batches particles
16:02 rubenwardy but the irrlicht particle system doesn't have a particular rendering feature
16:03 ronoaldo I see - sounds like a fun problem to dig into :) if noone else is already doing to avoid duplicate effort
16:04 olliy joined #minetest-dev
16:12 erlehmann 0,
16:27 v-rob joined #minetest-dev
17:03 MTDiscord <exe_virus> Go for it. Definitely the particle system needs a revamp
17:04 MTDiscord <Jonathon> the particle PR seems like it getting closer to being merged anyways
17:05 MTDiscord <Jonathon> https://github.com/minetest/minetest/pull/11545
17:05 rubenwardy that's tangental, adds more features onto a swamp
17:05 rubenwardy very nice features
17:06 MTDiscord <Jonathon> yeah, i guess my terribly made point was working on particles means whoever doesnt get merged first will have to fix there pr from conflicts most likely
17:08 MTDiscord <exe_virus> Gotcha, my money is on neither ;)
17:10 ronoaldo haha gotta love git merge, right?
17:49 Pexin joined #minetest-dev
19:08 erlehmann joined #minetest-dev
19:10 erlehmann ronoaldo has someone showed you the PR where particle rendering was ported to the irrlicht particle system, but then it turns out that one feature was missing? there may be another way: figure out how to batch the particles so you can minimize the drawcalls.
19:11 erlehmann ronoaldo from what i can gather from the irrlicht forums, batching is in principle a solved problem, but i haven't figured it out how to apply it. i guess figuring out if the irrlicht particle system can be enhanced to support the missing thing might be a good idea anyway.
19:16 ronoaldo erlehmann: cool, thanks for the info; the PR is 11545?
19:22 appguru batching ought to be pretty simple if you're in full control of the rendering pipeline
19:23 erlehmann #11545
19:23 ShadowBot https://github.com/minetest/minetest/issues/11545 -- Animated particlespawners by velartrill
19:23 ronoaldo cool so that one uses the batches right?
19:23 MTDiscord <luatic> does it?
19:24 ronoaldo oh I misunderstood it... it was ported to use irrlitch in that patch, it should batch by default there right?
19:24 appguru no it wasn't ported to use irrlicht in that PR?
19:25 ronoaldo oh then I'm confused lol
19:25 appguru afaik this PR does two things: (1) lots of dope features (yay!) and (2) fix blending (and add multiple blending modes)
19:25 ronoaldo ok
19:26 ronoaldo Searching for open PRs with particle in them yelds 8 results to me https://github.com/minetest/minetest/pulls?q=is%3Apr+is%3Aopen+particle
19:27 erlehmann ronoaldo the animated particlespawners is a different thing
19:27 erlehmann ronoaldo let me search for the irrlicht particle system thing, so you can maybe fix the feature that is missing
19:28 erlehmann ronoaldo this one https://github.com/minetest/minetest/pull/8461
19:29 erlehmann ronoaldo if you can solve this one, you'll bne fixing a HUGE performance problem. enough things generate particles that it's really a problem. you can basically lag other players out.
19:29 erlehmann ronoaldo the feature that made this PR a no-go is the “vertical” particle thing.
19:30 ronoaldo ok - i'll examine the PR and try get my hands dirty from there
19:32 appguru I feel like I should outline how I believe this might work ideally. Basically sending sizes and positions of particles to the shader pipeline should be enough. You'll want to sort these positions by depth first. Emitting the respective quad (two tris) should be done in the geometry shader. Culling should also be done by the rendering pipeline that way (and not on the CPU in particular).
19:32 erlehmann two important caveats: first, i suggest to try the rebase before you have possible a solution for “vertical”. sfan5 suggested to maybe keep the old code just for particles with that property. second: the minetest build system is borked, you need to rebuild fully every single time to be sure. for details, see #11749 and weep.
19:32 ShadowBot https://github.com/minetest/minetest/issues/11749 -- CMake does not capture all dependencies, causing erroneous incremental builds & build failures
19:33 ronoaldo ok, thanks for the info
19:33 ronoaldo I'll need some time to study this stuff but I'm earger to try it out
19:35 erlehmann appguru the CPU load from particles is negligible in irrlicht demos. so why are you suggesting this?
19:40 rubenwardy appguru: that's the best way, but it does require shaders
19:40 erlehmann ronoaldo another thing that would be cool to research if you are in research mood: irrlicht has a builtin shadows system that may look better than what minetest does currently and has vastly lower hardware requirements. it might be preferable to use that for shadows of antities. according to celeron55 the major hurdle is that no one knows the black magic of how to integrate it into minetest rendering. if you can make this
19:40 erlehmann thing work, shadows could look nicer and get a huge performance boost.
19:40 rubenwardy it's possible to use the builtin pipeline by creating a vertex array / buffer
19:41 erlehmann entities
19:41 rubenwardy imo shaders should be required for certain things
19:41 rubenwardy but that's more a philosophy I'd use on my own projects
19:42 erlehmann rubenwardy, what things?
19:42 rubenwardy rendering
19:42 rubenwardy :D
19:42 erlehmann lol
19:43 rubenwardy shaders aren't just for fancy effects, they're also used to make rendering faster. For example, with lighting
19:43 rubenwardy and particles, as appguru said
19:43 ronoaldo interesting
19:44 ronoaldo erlehmann: I'll take a look at that from my personal coding reading black magick book :D
19:44 erlehmann rubenwardy, but particles are not slow because they do not use shaders. particles are slow because the implementation creates a scene node for every particle or so?
19:46 erlehmann ronoaldo regarding the drawcall thing, if you can figure out how to batch particles of the same type into one draw call, you'd have already fixed the performance issues i guess
19:47 erlehmann might not do culling though :/
19:47 erlehmann well, good luck!
19:48 erlehmann ronoaldo, wait, i misspoke, i suggest to NOT try the rebase. LOL. first figure out the solution.
19:48 erlehmann the rebase will be big jar of conflicts
19:58 ronoaldo I see , unerstood
19:58 ronoaldo one question: which metric from the debug game screen I'm focusing to turn down? draw calls ?
19:58 ronoaldo second question: what mods trigger the bug in a somewhat visible way?
19:59 ronoaldo this gives me some food for testing/checking if I'm on the right path
20:00 erlehmann ronoaldo use mcl2, make 23×23×23 cube of obsidian, light it up using flint and steel so you have 23 nether portals.
20:00 erlehmann you can construct a hollow cube like that using worldedit
20:01 erlehmann the portals should emit enough particles so that your game grinds to a halt
20:01 erlehmann incidentally, exactly that is also how griefers use it to make an area laggy
20:01 erlehmann wait, you'll have 21 nether portals
20:01 erlehmann sorry!
20:02 ronoaldo cool, that is a nice reproducible step! thanks!!!
20:03 erlehmann also, if your game does not grind to a halt here, make more of those cubes and use a worse graphics card for developming performance improvements ;)
20:03 erlehmann and -> or
20:04 erlehmann but i manage to get down to 1 or 2 fps using the lag cube
20:04 ronoaldo i have a beefy machine here, so I could also use a VM with Virtual Box to make the bug more visible right?
20:05 erlehmann unclear. but even on a beefy machine, fps should take a nosedive.
20:05 ronoaldo got it
20:05 erlehmann do you have linux?
20:06 ronoaldo yes, only linux on my self-built machine
20:06 erlehmann you can start minetest with the environment variable LIBGL_ALWAYS_SOFTWARE=1
20:06 erlehmann this turns on mesa software rendering
20:06 ronoaldo amazing, perfect
20:06 erlehmann i think this should always be slower than whatever your GPU manages to do
20:06 erlehmann but it might be *too* slow again ;)
20:16 ronoaldo is there a bug report (so I can name the branch with that, just a thing of mine) bout this?
20:18 erlehmann ronoaldo i have no idea
20:25 ronoaldo np - I'll create another name
20:52 sfan5 I think ShadowBot needs a function to auto-kick erlehmann everytime he either mentions mcl2 or #11749
20:52 ShadowBot https://github.com/minetest/minetest/issues/11749 -- CMake does not capture all dependencies, causing erroneous incremental builds & build failures
20:56 proller joined #minetest-dev
20:58 Calinou if you want more playable performance with software rendering, add "undersampling = 4" to minetest.conf
21:04 erlehmann Calinou why exactly does that increase performance?
21:04 Calinou it lowers the resolution
21:04 Calinou HUD remains at native resolution, so it's still easy to read
21:04 erlehmann let me check this out real quick
21:05 ronoaldo what is wrong with mcl2 or that particular PR (asking for a friend)
21:15 Fixer_ joined #minetest-dev
21:28 v-rob joined #minetest-dev
22:16 Alias joined #minetest-dev
22:35 MTDiscord <Hugues Ross> I'll be merging #9588 tomorrow, in the meantime if anyone wants to give it a last-minute look I'd appreciate it. I'm not sure my review this time was up to my usual standard, so any reassurance is welcome.
22:35 ShadowBot https://github.com/minetest/minetest/issues/9588 -- Add relative numbers for commands by prepending ~ by Wuzzy2
22:38 erlehmann Hugues Ross, could the tonumber parsing approach allow ~-NaN and ~Inf or something? if so, would that be a problem?
22:39 MTDiscord <Hugues Ross> Excellent question, I'll double-check... I'm not entirely worried since iirc we bounds-check these inputs, but it's worth making sure.
22:41 MTDiscord <Hugues Ross> ...the answer is no it won't allow those, because the characters aren't matched. Just checked with both /teleport and /time, absolute and relative. Both commands treat these inputs as invalid values
22:42 MTDiscord <Hugues Ross> Thank you for the reminder though, I don't recall if I'd thought to check that earlier in the week or not
22:47 erlehmann Hugues ross, the thing is that core.parse_relative_number will parse them though, so if some mod uses that function … possible boom!
22:50 erlehmann joined #minetest-dev
22:54 erle joined #minetest-dev
23:08 MTDiscord <Hugues Ross> hm, good point. I'll see if I can whip up a test case or two and compare with similar existing calls. If the boom is consistent across them, it's probably not something to handle here. If it's not, but it happens in parse_relative_number... that is a real issue to fix.
23:08 MTDiscord <Hugues Ross> Oh, and in the former case I don't mean we shouldn't fix, just that we should fix that separately
23:09 erle in what case?
23:32 panwolfram joined #minetest-dev
23:35 Desour joined #minetest-dev
23:39 MTDiscord <Hugues Ross> If it parses NaN/inf, but in a way that's consistent with the existing parsing calls
23:42 proller joined #minetest-dev
23:59 proller joined #minetest-dev

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