Minetest logo

IRC log for #minetest, 2024-11-11

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

All times shown according to UTC.

Time Nick Message
00:00 ireallyhateirc luatic, no one is expecting anything, but free/libre firmware is better than black box proprietary firmware that could be running backdoors
00:01 ireallyhateirc backdoors aside, planned obsolescence is probably the main use case
00:02 ireallyhateirc so it makes sense for Pinephone to use chips that has free/libre firmware, possibly at the price of performance
00:03 MTDiscord <luatic> that is too great a price if you ask me. it seems obvious to me that manufacturers don't want to open source the trade secrets that make their firmware go vroom.
00:03 MTDiscord <_devsh_> Ironically the M1 GPU with Asahi Linux has open source firmware XD
00:03 ireallyhateirc yeah, the same person who did Panfrost reverse engineered Apple's thing
00:04 MTDiscord <_devsh_> Yes it runs pretty fast too
00:04 MTDiscord <luatic> i wouldn't worry too much about backdoors in the GPU firmware. obviously you have to trust your hardware manufacturers.
00:04 MTDiscord <_devsh_> Hehehe
00:05 MTDiscord <_devsh_> I'd worry about the bugs in your unmaintained drivers!
00:05 ireallyhateirc well it's perfect world vs techno dystopia and running whatever you can play Luanti on
00:06 MTDiscord <_devsh_> Shit driver Devs do planned obsolescence just fine
00:06 MTDiscord <luatic> ancient hardware seems dystopian to me. you've swapped planned obsolescence for buying already long obsolete things. what a great solution.
00:07 MTDiscord <_devsh_> The pinephone people in HK are making a killing on paranoid bearded gnu guys willing to pay top dolar for 10 year old GPUs
00:08 MTDiscord <_devsh_> They are serving a niche
00:08 ireallyhateirc obviously buying 16 years old librebooted Stinkpads is not the solution to the problem, but a dead end. This comes from an owner of a 16 librebooted Stinkpad.
00:09 ireallyhateirc the solution would be to buy devices from companies that make open hardware, but there are few
00:10 MTDiscord <_devsh_> Capitalism at its best, nothing gets wasted, if there no demand create demand for 65 nm lithography
00:11 SFENCE joined #minetest
00:12 MTDiscord <_devsh_> TBF if you're holding up the whole train, won't take HW donations, then maybe you should learn the secrets of GL 2.1 and maintain/extend the renderer
00:15 ireallyhateirc ooh the website changed "Luanti (formerly Minetest)"
00:16 MTDiscord <_devsh_> https://www.theregister.com/2024/04/05/amd_mes_open_source/
00:19 MTDiscord <_devsh_> Would it be kosher for the libre minded person to connect an eGPU and use that for gaming? Or do you see a potential for backdoors if all you're doing is quemu + pcie passthrough
00:20 [ Are there any eGPUs that'd work without proprietary init code (VGA option ROM) or proprietary firmware?
00:22 specing <_devsh_> Ironically the M1 GPU with Asahi Linux has open source firmware X
00:22 specing [citation needed]
00:22 specing afaik Asahi linux installer extracts firmware from existing OS
00:23 [ There's a vulnerability in MEv11 (used in kaby lake) that allows for code execution in the ME and bypassing bootguard. I think the solution is to wait for someone to write a free ME replacement (that does enough to boot the system, not all of the unnecessary security risk backdoor-y stuff) and reverse-engineer the FSP (it does basically the same thing as the MRC on broadwell and earlier, and
00:23 [ that's already been reverse-engineered)
00:23 [ Executing unsigned microcode is apparently also possible on kabylake, so free microcode could be written too
00:23 MTDiscord <_devsh_> Waaait
00:24 MTDiscord <_devsh_> You want libre microcode on CPU?
00:24 MTDiscord <_devsh_> Nice didn't know
00:26 ireallyhateirc I just made a cool necklace for my a character for my WIP luanti game, now waiting for someone to add support for metalic materials
00:27 [ but until that's done the choice is either neutered ME and nonfree microcode updates on haswell, or nonfree firmware and init code with a newer eGPU/dGPU (or possibly RK3399 which has worse single core performance then the core 2 duos in those old thinkpads and only supports 4GB RAM)
00:28 MTDiscord <_devsh_> Ekhm ekhm cubemaps needed
00:28 MTDiscord <greenxenith> Yes
00:28 MTDiscord <greenxenith> That is on my todo list after jam stuff
00:28 MTDiscord <_devsh_> Haswell GPUs actually support gles 3.0
00:29 ireallyhateirc greenxenith, cubemaps or metalic materials?
00:29 MTDiscord <greenxenith> Technically both
00:29 MTDiscord <_devsh_> Seamless cubemap filtering is like GL 3.something / dx10 feature
00:29 SFENCE joined #minetest
00:29 specing Libre microcode could have cool use cases
00:29 MTDiscord <greenxenith> Cubemaps are part of supporting metallic which is part of supporting a material workflow
00:30 MTDiscord <_devsh_> Also one more rip about doing that in irrlicht
00:30 specing like.. imagine program-specific instructions
00:30 MTDiscord <_devsh_> Tring to support anything other than texture2d is naaasty
00:31 MTDiscord <luatic> one nastiness at a time
00:31 MTDiscord <_devsh_> If you at least had renderdoc you'd be able to find the fucking thing and at least verify it uploaded correctly
00:32 MTDiscord <_devsh_> As opposed to "black mesh, why?"
00:32 MTDiscord <_devsh_> Or "why am I seeing some other random texture?*
00:32 MTDiscord <greenxenith> making SSR reflections without texture3d was annoying
00:32 ireallyhateirc both, that's great
00:32 MTDiscord <_devsh_> What on earth do you need tezture3d for?
00:32 MTDiscord <greenxenith> Nothing technically
00:33 ireallyhateirc I really like when devs work on stuff that I find useful/interesting :P
00:33 MTDiscord <greenxenith> but our pipeline is maxing out simultaneous textures
00:33 MTDiscord <_devsh_> Yes 16 max
00:33 MTDiscord <_devsh_> Oh god no
00:33 MTDiscord <greenxenith> I think its less than that
00:33 MTDiscord <_devsh_> Use texture2d array instead
00:33 MTDiscord <greenxenith> ok yeah thats what I meant
00:34 MTDiscord <greenxenith> (arguably an array of texture2d is 3d)
00:34 MTDiscord <_devsh_> Ok you're giving me ptsd
00:34 MTDiscord <greenxenith> Happens
00:34 MTDiscord <_devsh_> @luatic this is what I meant by piling up tech debt
00:34 MTDiscord <greenxenith> I dont disagree that its all awful
00:34 MTDiscord <_devsh_> You do weird shit to do simple stuff
00:34 MTDiscord <_devsh_> Just digging a hole, deeper and deeper
00:35 MTDiscord <greenxenith> Hey, people wanted to rush SSR into the engine and I am trying to pull back because I dont want to dig the hole deeper. Id rather find the right way to implement generic materials rather than full send my janky hyper-specific implementation
00:36 MTDiscord <_devsh_> It's the data packing in weird things that you have to do simply because of some weird preset slots
00:36 MTDiscord <luatic> yeah i know
00:36 MTDiscord <luatic> (re piling up tech debt)
00:36 MTDiscord <luatic> i've got a plan but no time
00:36 MTDiscord <luatic> or at least not enough time
00:38 MTDiscord <luatic> my current effort of reducing tech debt and fixing a couple bugs in the process is #15354
00:38 ShadowBot https://github.com/minetest/minetest/issues/15354 -- Fix skeletal animations and attachments once and for all by appgurueu
00:38 MTDiscord <luatic> well, i've got a couple other even more WIP things too but those aren't in a presentable state
00:39 MTDiscord <greenxenith> And now we are piling on new fancy effects onto our debt-machine pipeline without enough game control (no disrespect to Gefullte, the work looks nice)
00:39 MTDiscord <luatic> btw pro tip do ü -> ue if you can't type ü, it will still read correctly
00:41 MTDiscord <_devsh_> Looking at the PR
00:41 MTDiscord <_devsh_> I don't actually see you pump the bones/joints to the shader
00:41 MTDiscord <_devsh_> What's the plan for that?
00:41 MTDiscord <luatic> read the description, this is just preparatory work for that
00:42 MTDiscord <luatic> devsh: my plan for that is to send the bone transforms to the vertex shader via an UBO
00:42 MTDiscord <luatic> along with the weights
00:42 MTDiscord <_devsh_> Good direction buuut
00:42 MTDiscord <_devsh_> Weights are just an extra vertex attribute
00:43 MTDiscord <luatic> yeah
00:43 MTDiscord <luatic> i don't want to compute the transforms on the shader yet, that doesn't fit well into our current pipeline
00:43 MTDiscord <_devsh_> Ooof, irrlicht never finished that flex vertex format thing
00:43 MTDiscord <luatic> and i expect the skinning to dominate anyways so we should see good gains by just doing that on the shader for starters
00:43 MTDiscord <_devsh_> That was one of the things that gave us perf boosts
00:44 MTDiscord <_devsh_> Why would you store a block position as a float32?
00:44 MTDiscord <_devsh_> Having uint vertex format was awesome
00:45 MTDiscord <_devsh_> What does Uniform in Uniform Buffer Object stand for?
00:46 MTDiscord <luatic> uniform as in shader uniform variables?
00:46 MTDiscord <_devsh_> You're not supposed to index an array in a UBO with non uniform index, it will work, and on Latest GPUs it will work just fine
00:46 MTDiscord <_devsh_> But the older ones (dx10 class) will experience constant waterfalling
00:47 MTDiscord <luatic> so what can i do?
00:47 MTDiscord <luatic> I think GPU skinning just for 90% of the userbase is fine, the rest can have CPU skinning as a fallback
00:48 MTDiscord <_devsh_> https://www.khronos.org/opengl/wiki/Core_Language_(GLSL)#Dynamically_uniform_expression
00:48 MTDiscord <_devsh_> Son you don't have the dev budget time or energy for two codepaths
00:48 MTDiscord <_devsh_> SamplerBuffer
00:49 MTDiscord <luatic> are you
00:49 MTDiscord <_devsh_> Aka Buffer Texture
00:49 MTDiscord <luatic> are you saying i should stuff my matrices into samplers
00:49 MTDiscord <_devsh_> No they're not images
00:49 MTDiscord <_devsh_> They're funny buffers
00:50 MTDiscord <luatic> this thing: https://www.khronos.org/opengl/wiki/Buffer_Texture ?
00:50 MTDiscord <_devsh_> Yes
00:50 MTDiscord <_devsh_> Also known as a Buffer View in Vulkan
00:50 MTDiscord <luatic> oh
00:51 MTDiscord <_devsh_> You're guaranteed they can be at least 128MB in size
00:51 MTDiscord <_devsh_> Btw gl doesn't have texture views until gles 3.1 / GL 4.1
00:52 MTDiscord <_devsh_> Which are super useful
00:52 MTDiscord <_devsh_> Because you can view one buffer or image with multiple formats
00:53 cation joined #minetest
00:54 MTDiscord <_devsh_> Hmm I think buffer views could be aluased even in old gl
00:54 MTDiscord <_devsh_> https://registry.khronos.org/OpenGL-Refpages/gl4/html/glTexBuffer.xhtml
00:54 MTDiscord <_devsh_> Anyway the trick is to have multiple of those, and write yourself and allocator over them
00:55 CRISPR joined #minetest
00:55 MTDiscord <_devsh_> Then shove all your persistent data into them, e.g. block and mesh vertices
00:55 MTDiscord <_devsh_> Then you can kinda do programmable pulling and the whole doom eternal batching thing
00:56 MTDiscord <_devsh_> Anyway
00:56 MTDiscord <_devsh_> As for the bone data
00:57 MTDiscord <_devsh_> Because gles and GL <4 doesn't have persistent mapping
00:57 MTDiscord <_devsh_> And neither does webgpu
00:58 MTDiscord <_devsh_> It's best you re-create a 32, 128 or whatever mb buffer each frame (buffer orphaning) and fill it up with a linear allocator
00:58 MTDiscord <_devsh_> Then throw it away, there's an article in OpenGL 4.3 or 4.1 inaights about best way to stream such data
00:59 MTDiscord <_devsh_> *insights
00:59 MTDiscord <_devsh_> It's either a gen-delete loop or respecify with glBufferData
00:59 MTDiscord <_devsh_> glBufferSubData not good for large streaming like this
01:00 MTDiscord <_devsh_> Slap everything into it, bones and ubo/uniforms
01:01 MTDiscord <_devsh_> Then as you draw, you'll bind the UBO at different offsets or if fetching from the Buffer Texture pass an offset through one single glUniform1u
01:01 MTDiscord <_devsh_> By this I mean slap into a vector<uint8_t> you really don't want to be doing tiny updates ona buffer
01:02 MTDiscord <_devsh_> The idea is, cull, memcpy all the draw uniforms/prams, then sort shader+texture+ubo_offset drawcall records, then do drawcalls
01:03 MTDiscord <luatic> I gotta go to bed now. Thank you for all your eye-opening insights today (this may sound over the top, but I mean it seriously). I feel like Irrlicht has numbed me now.
01:03 MTDiscord <_devsh_> It's a common pattern
01:03 MTDiscord <_devsh_> Dota draws like this
01:03 MTDiscord <_devsh_> No fancy instancing
01:03 MTDiscord <_devsh_> Big UBO per frame
01:04 MTDiscord <_devsh_> Btw UBO is limited to 64kb even on rtx 4099
01:04 MTDiscord <_devsh_> Which is why texture buffer (UTB) makes more sense cause most GPUs report 128mb
01:05 MTDiscord <_devsh_> Obviously SSBO is best because everything but pre-skylake intel reports min(vram size, 2GB)
01:06 MTDiscord <_devsh_> And in vulkan we have BDA, which is just a 64bit GPU pointer
01:06 MTDiscord <_devsh_> https://cdn.discordapp.com/attachments/369137254641303560/1305311453661888654/image0.jpg?ex=67329186&amp;is=67314006&amp;hm=cfc1241a67eda6608e21a1fb01636f9862131bedc28e806fc3395be766f8023d&amp;
01:07 MTDiscord <_devsh_> Dual boot or set up pcie passthrough ina VM and come and see how the big boys play
01:09 MTDiscord <_devsh_> Finał Word, you shouldn't use more than 128 bytes of uniforms or driver will hate you
01:09 MTDiscord <_devsh_> Like the glUniform ones
01:09 MTDiscord <_devsh_> They're stored in registers, and past a certain point they'll spill
01:10 MTDiscord <_devsh_> This means no more than two mat4s
01:10 MTDiscord <_devsh_> Problem is that driver needs to figure out where they'll spill ti
01:10 SFENCE joined #minetest
01:10 MTDiscord <_devsh_> All that allocation and shenanigans take time, putting pressure on cpu
01:14 MTDiscord <_devsh_> Well fixed function may be implemented in hardware with an ASIC, and that is closed source and undocumented.  Whereas shaders are programmable and outside of firmware, moreover trying to figure out what they're doing and snoop data out of them  is an instance of the halting problem, so shaders (GPU driven rendering even more so) are a path to more open source, libre and secure rendering.  Possibly at this price of performance.
01:15 MTDiscord <luatic> not in bed quite yet, don't you have demo videos?
01:16 MTDiscord <_devsh_> I thought you wanted to learn 😛
01:16 MTDiscord <luatic> learning in a VM sounds painful
01:16 MTDiscord <luatic> for this kind of thing anyways
01:16 MTDiscord <_devsh_> Try the glorious BDA and descriptor indexing workflow yourself
01:17 MTDiscord <luatic> now that's an exercise
01:17 MTDiscord <_devsh_> 20% of my company connects to a server farm with different GPUs over moonshine/RDP every day
01:17 MTDiscord <_devsh_> And works in a 100% virtualized env
01:17 MTDiscord <luatic> i don't have a server farm
01:18 erle <_devsh_> TBF if you're holding up the whole train, won't take HW donations, then maybe you should learn the secrets of GL 2.1 and maintain/extend the renderer
01:18 MTDiscord <luatic> connecting to a powerful server is great
01:18 MTDiscord <luatic> but consider this: all i have is a mid-range laptop (Ryzen 5 3500U, 8 GB RAM)
01:18 MTDiscord <_devsh_> I'm saying that a VM with pcie passthrough is actually quite fast
01:18 erle you mean fork?
01:18 MTDiscord <_devsh_> Does it have a dGPU as well?
01:19 MTDiscord <luatic> iGPU only
01:19 MTDiscord <_devsh_> Oof
01:19 MTDiscord <_devsh_> The fun thing with dGPU laptops is that you can give the dGPU to VM with windows and use iGPU with linux
01:19 MTDiscord <_devsh_> And all you need is just an external monitor
01:20 MTDiscord <_devsh_> Yeah pcie passthrough not fun with 1 gpu
01:20 MTDiscord <_devsh_> Have to log out of the X server and atuff
01:20 erle <luatic> I think GPU skinning just for 90% of the userbase is fine, the rest can have CPU skinning as a fallback
01:21 erle nah, that will just be culled at some point
01:21 MTDiscord <_devsh_> That sounds like pain, that lapto should have 16gb of ram
01:21 MTDiscord <luatic> yeah the RAM is a pain point
01:22 MTDiscord <_devsh_> 8 logical cores need 2 GB ram per core for good compilation experience
01:22 MTDiscord <luatic> i will probably upgrade it
01:22 MTDiscord <luatic> I tend to compile using only 4-6 threads so I can still do other stuff and have a little bit of RAM left and don't run into thrashing
01:22 MTDiscord <_devsh_> Compiling Nabla is not gonna be fun on that
01:23 MTDiscord <_devsh_> But it only happens once
01:23 erle seriously what kind of compilation needs jiggabytes of RAM? is it the LTO?
01:23 MTDiscord <_devsh_> I actually use 64gb
01:23 MTDiscord <_devsh_> When you compile llvm from source
01:24 MTDiscord <luatic> ah yeah
01:24 [ I compile with -j8 with 16GB of RAM and I don't run out (this is not on the X200 obviously)
01:24 MTDiscord <_devsh_> J8 with 16gb is my magical 2gb per job ratio
01:25 MTDiscord <_devsh_> That step is half of the nabla compile time
01:25 MTDiscord <_devsh_> Also we build every single dep from source
01:28 MTDiscord <_devsh_> You need to think about how skinning affects the AABB
01:29 MTDiscord <_devsh_> If your solution is to turn off frustum culling, rip your framerate
01:30 MTDiscord <_devsh_> If you know all the animations in advance and don't allow programmatic joint manipulation/procedural animation you can compute a worst case AABB across all animations
01:30 MTDiscord <_devsh_> Then you can skip even doing the animations
01:30 MTDiscord <_devsh_> Problem is if you then attach something large to one of the joints
01:30 MTDiscord <_devsh_> But you can give the skinned models stupidly large bounding boxes and use that as an animation cull
01:30 MTDiscord <luatic> while we're still doing CPU skinning we can just recompute the AABB afterwards
01:31 [ erle: asan and ubsan add a lot to compilation memory usage if you use those
01:31 MTDiscord <luatic> but with GPU skinning this will become trickier indeed
01:31 MTDiscord <_devsh_> It's easy to do
01:31 MTDiscord <_devsh_> You can build aabbs for each bone
01:31 MTDiscord <_devsh_> Simply accumulate the vertex into an aabb of the joint if weight > 0
01:32 MTDiscord <luatic> yeah
01:32 MTDiscord <_devsh_> The aabb needs to be in the inverse bing pose though
01:32 MTDiscord <luatic> but we do allow programmatic joint manipulation
01:32 MTDiscord <_devsh_> (relative to joint)
01:32 MTDiscord <_devsh_> Works for that too
01:32 MTDiscord <_devsh_> Then you just transform and merge all joint aabbs and you have a mesh aabb
01:33 MTDiscord <luatic> yeah
01:33 MTDiscord <luatic> sounds good
01:33 MTDiscord <_devsh_> It works because all vertex weights are between 0-1
01:33 MTDiscord <luatic> i know
01:33 SFENCE joined #minetest
01:35 MTDiscord <_devsh_> I started mocking some stuff but nobody will pay me for skinning so... https://github.com/Devsh-Graphics-Programming/Nabla/tree/master/include/nbl/scene
01:36 MTDiscord <luatic> yeah i'll keep that in the back of my mind
01:54 SFENCE joined #minetest
02:00 Trifton joined #minetest
02:01 CRISPR joined #minetest
02:18 SFENCE joined #minetest
02:50 SFENCE joined #minetest
02:55 SFENCE joined #minetest
03:01 SFENCE_arch joined #minetest
03:03 Trifton joined #minetest
03:07 Verticen joined #minetest
03:14 erle [ i use ubsan yes, you sohuld not do both at once
03:14 [ erle: why not?
03:15 SFENCE joined #minetest
03:15 erle i forgot why
03:15 nopjmp_ joined #minetest
03:15 erle ask again when i am awake
03:15 erle i sleep
03:22 SFENCE joined #minetest
03:25 MTDiscord <jordan4ibanez> erle give us the meme plz
03:44 SFENCE joined #minetest
03:56 SFENCE joined #minetest
05:00 MTDiscord joined #minetest
05:22 chilledfrogs joined #minetest
05:29 Verticen joined #minetest
05:32 chilledfrogs joined #minetest
05:37 CRISPR joined #minetest
07:58 SFENCE_arch joined #minetest
08:10 gregon joined #minetest
08:21 Glaedr joined #minetest
08:22 SFENCE joined #minetest
08:45 jaca122 joined #minetest
08:45 SFENCE joined #minetest
08:53 MinetestBot [git] sfan5 -> minetest/minetestmapper: Apply Luanti rename bc8d925 https://github.com/minetest/minetestmapper/commit/bc8d925eb425fe3d2ef155f3858e8418d234b063 (2024-11-11T08:50:26Z)
08:56 MinetestBot [git] sfan5 -> minetest/minetestmapper: Apply Luanti rename 1c16c40 https://github.com/minetest/minetestmapper/commit/1c16c40ccca7039e7e03f9a81909c1d3e5fd11c1 (2024-11-11T08:53:35Z)
08:58 tarsovbak joined #minetest
09:04 SFENCE joined #minetest
09:22 SFENCE joined #minetest
09:49 yezgromafic joined #minetest
09:53 yezgromafic joined #minetest
09:56 SFENCE joined #minetest
10:08 tarsovbak joined #minetest
10:13 tarsovbak joined #minetest
10:13 tarsovbak joined #minetest
10:14 tarsovbak joined #minetest
10:16 MacroFaxSax joined #minetest
10:17 tarsovbak joined #minetest
10:18 tarsovbak joined #minetest
10:18 tarsovbak joined #minetest
10:18 tarsovbak joined #minetest
10:20 behalebabo joined #minetest
10:22 tarsovbak joined #minetest
10:22 tarsovbak joined #minetest
10:24 SFENCE joined #minetest
10:30 tarsovbak joined #minetest
10:30 tarsovbak joined #minetest
10:30 tarsovbak joined #minetest
10:39 ireallyhateirc joined #minetest
10:58 SFENCE joined #minetest
10:59 illwieckz joined #minetest
11:09 SFENCE joined #minetest
11:41 erle jordan4ibanez is this another idea to force the “2erle” thing?
11:42 SFENCE joined #minetest
11:49 est31 joined #minetest
11:50 MTDiscord <jordan4ibanez> No I want this meme from minetest delta
11:51 erle i think you can scroll back on /r/minetest on reddit
11:51 erle it should be one of the very first posts there
11:51 MTDiscord <jordan4ibanez> https://cdn.discordapp.com/attachments/749727888659447960/1305500191058563073/image0-1.jpg?ex=6733414c&amp;is=6731efcc&amp;hm=681518c3df4a5eb2a80e90d585c3d0025a8d5336aed42fa6b038fc51155288e4&amp;
11:51 erle or what do you mean?
11:51 MTDiscord <jordan4ibanez> Oh no, this was an irc meme, it's lost media
11:52 erle jordan4ibanez http://daten.dieweltistgarnichtso.net/pics/zeichnungen/minetest-dad.png
11:52 erle you mean that?
11:53 MTDiscord <jordan4ibanez> HOLY
11:53 MTDiscord <jordan4ibanez> Thank you so much
11:54 celeron55 wait, i remember that but i can't find it in my memes folder
11:54 erle here is the xcf: http://daten.dieweltistgarnichtso.net/pics/zeichnungen/minetest-dad.xcf
11:55 erle happy now?
11:55 erle if so, bring back omsk bird!
11:55 MTDiscord <jordan4ibanez> Yes, thank you so much omg
12:08 SFENCE joined #minetest
12:15 [ erle: why not use both asan and ubsan at once?
12:17 erle [ https://blogs.oracle.com/linux/post/improving-application-security-with-undefinedbehaviorsanitizer-ubsan-and-gcc
12:17 erle > Do not try to compile with both ASan and UBSan at the same time, even though it is possible to do so. Our experience is that the source code needs to be instrumented separately and different runs have to be conducted to detect all errors.
12:17 erle also some sanitizers do not play well AT ALL with each other
12:18 [ "This site requires JavaScript to be enabled."
12:18 erle yes sorry
12:18 erle i have quoted the relevant part
12:19 erle [ IMO it's a conceptual issue. do you want one sanitizer to sanitize the instrumentation the other adds?
12:20 erle maybe i am wrong here
12:23 [ when I fuzz dnethack I usually use both at once if I have enough memory to do so
12:23 erle random: IIRC DWARF debug info was one of the things where zlib outperforms zstd, because LEB128 encoded integers are bad
12:23 erle for zstd https://github.com/facebook/zstd/issues/1325
12:25 erle [ even if it works (as opposed, to, e.g. using asan and msan together), i doubt the instrumentation is designed to run together
12:26 erle [ i don't doubt that ubsan and asan work together somewhat, but since asan adds stuff, i would worry that it might mask bugs
12:27 erle also, memory increase of asan is like, what, ⅛ of memory your app takes anyway?
12:30 SFENCE joined #minetest
12:33 ireallyhateirc Dumb question: if I have my mod and directory ./my-mod/textures, then can I do a subdirectory say ./my-mod/textures/foo ?
12:39 MTDiscord <luatic> ireallyhateirc: yes, you can do that. for all types of media in fact.
12:43 ireallyhateirc that's great
12:45 [ erle: A lot more than 1/8. In this case: ~600M for asan+ubsan, ~500M for asan, ~36M for ubsan, ~15M for no sanitizers
13:10 SFENCE joined #minetest
13:10 Oblomov joined #minetest
13:20 HuguesRoss joined #minetest
13:29 SFENCE joined #minetest
13:31 SwissalpS joined #minetest
13:37 Juliet joined #minetest
14:04 SFENCE joined #minetest
14:11 SFENCE joined #minetest
14:28 Sharpman joined #minetest
14:38 Sharpman joined #minetest
15:05 SFENCE joined #minetest
15:12 SFENCE joined #minetest
15:32 SFENCE joined #minetest
15:45 serp joined #minetest
15:56 tarsovbak joined #minetest
15:56 MacroFaxSax joined #minetest
15:56 tarsovbak joined #minetest
16:12 SFENCE joined #minetest
16:14 SFENCE joined #minetest
16:17 MTDiscord <_devsh_> I don't condone all the design decisions in the video, but pretty nice regardless https://www.youtube.com/watch?v=40JzyaOYJeY
16:20 MTDiscord <_devsh_> 300k tris at sub 0.1ms, that makes >3 GTris/s
16:42 MTDiscord joined #minetest
16:51 tarsovbak joined #minetest
16:51 tarsovbak joined #minetest
17:04 fluxionary joined #minetest
17:17 dabbill joined #minetest
17:29 TomTom joined #minetest
17:41 kamdard joined #minetest
17:44 MTDiscord <warr1024> Build 5.10.0 server, get a minetestserver executible but no luantiserver executible ... run it, and get a warning: "The executable minetestserver is a deprecated alias, please use luantiserver instead"
17:45 specing That's what you get when you don't have erle doing your QA
17:58 sfan5 this works in all of our CI runs, so open a bug
18:03 Talkless joined #minetest
18:03 Markow joined #minetest
18:28 MTDiscord <goodclover> devsh: oo, that's a really nice video. I'd never heard of half these optimisations.
18:30 Krock @_devsh_ instancing requires OpenGL 3.1 afaik
18:30 Krock though that's not a reason to not use it.
18:31 Krock there's also a video about greedy mesher approaches which is rather entertaining.
18:31 Krock not from the same author, but generally a concept that's also applied to a certain degree in Luanti/Minetest
18:46 MTDiscord <_devsh_> Instancing is one of the decisions I don't approve
18:57 erle Krock for ARB_draw_instanced, 3.0 is required according to http://www.opengl.org/registry/specs/ARB/draw_instanced.txt
18:59 Krock transparency sorting could also become a really interesting challenge with such sophisticated approaches.
18:59 erle and according to “glxinfo |grep instance” i don't have it.
18:59 sfan5 ban semi-transparency
18:59 MTDiscord <_devsh_> Greedy meshing is a nasty misoptimization
18:59 Krock glxinfo |grep instance | wc -l
18:59 Krock 13
18:59 MTDiscord <_devsh_> It's called order independent transparency and it's fun
19:00 MTDiscord <_devsh_> MLAB4, WBOIT, hashed and stencil k routed are the goto approaches
19:00 Krock @_devsh_: not necessarily. it can be used as a memory optimization, though not much more than that.
19:01 MTDiscord <_devsh_> Greedy meshing makes edits hard/impossible
19:01 MTDiscord <_devsh_> Without recomputing a whole chunk
19:01 Krock the trick is to have the greedy mesher be somewhat fast, although not perfect.
19:02 erle i for one, agree with sfan5. semi-transparency must be banned. use A1R5G5B5 textures for everything, save half of texture memory and never look back!
19:02 Krock the meshgen in Luanti/Minetest currently works like that. each node update triggers a whole re-meshing of the mapblock.
19:02 erle (it's not like people can see the difference anyway)
19:02 Krock opaque water... hmmmm.
19:03 erle reflective metallic water :D
19:03 MTDiscord <_devsh_> It's like polishing a turd, if you put all the effort you have to put into greedy meshing that works, into raycasting instead you'd get better perfx maintainability and features
19:03 erle Krock is the mesh thing the reason why fiddling with the mapblock size (or was it chunk size?) affects performance?
19:03 MTDiscord <_devsh_> https://jcgt.org/published/0007/03/04/
19:04 sfan5 raycasting for what exactly? culling?
19:04 MTDiscord <_devsh_> No rendering
19:04 Krock erle: that one's down to the amount of draw calls from what I remember
19:04 Krock larger meshes = less drawcalls = faster
19:04 MTDiscord <_devsh_> You draw a Proxy geometry then use a fancy shader to make cubes out of billboards
19:05 * erle shudders
19:05 erle _devsh_ that would also allow people to make geometry that looks like blobs?
19:05 MTDiscord <_devsh_> Whatever you want
19:05 erle i'll call the inquisitor
19:06 MTDiscord <_devsh_> It's kinda like a hybrid stop gap solution between KHR_acceleration_structure raytracing and plain triangle raster
19:09 erle jokes aside, _devsh_ can you tell me why people use shadow maps instead of soft stencil shadows for monochrome shadows in games nowadays? like, screen-space blur of the shadow space or whatever. from all i know it can't do colored shadows (obv.) but has much less artifacts
19:09 erle *shadow pass
19:11 erle and as i understand it, the shadow map is *necessarily* undersampled, except if you are pixar and do not render in realtime
19:11 erle (blurring can help somewhat)
19:19 MTDiscord <_devsh_> There's actually a view distance at which it's faster to splat voxels as point clouds to a fake depth+ID compute shader shared memory using uint64 atomics than actually usibg the HW rasterizer
19:20 MTDiscord <_devsh_> Because silhouette extrusion is extremely PITA and needs to be done every frame, also stencil shadows don't have any way to soften them, they alias like crazy
19:21 MTDiscord <_devsh_> Shadow Maps aren't bad if you've got your cascaded shadow map and adaptive shadow map impl down to a T
19:23 MTDiscord <_devsh_> Furthermore stencil shadows work by flipping bits in screen space and depth fail
19:23 MTDiscord <_devsh_> It means transparent objects can't receive shadows
19:23 MTDiscord <_devsh_> Or cast them (smaller problem)
19:23 erle i know that
19:23 erle transparent cape on player avatar thingy
19:25 MTDiscord <_devsh_> Fixed function sucks balls big time
19:25 MTDiscord <_devsh_> Shadow mapping is basically more robust
19:26 MTDiscord <_devsh_> You can cache them, amortize their draw calls over multiple frames
19:26 MTDiscord <_devsh_> Etc etc
19:28 erle if you want to amortize some draw calls over multiple frames … does the inventory still take more draw calls than the rest of the world if you make it big and add my “studs” mod?
19:28 erle (caching the result is correct for every node that is not animated)
19:29 MTDiscord <_devsh_> I don't get your question
19:29 specing left #minetest
19:29 erle just ignore it then
19:29 erle sorry
19:29 erle _devsh_ on which part of the engine are you working?
19:29 MTDiscord <_devsh_> Huh?
19:30 Krock "What is Minetest?"
19:30 MTDiscord <_devsh_> I'm not touching mine test with a 10 foot pole, codebase is disgusting
19:30 erle LMAO
19:30 MTDiscord <_devsh_> Also I have block game PTSD
19:30 erle do you have your own games/demos that i could look at?
19:30 MTDiscord <_devsh_> There's nothing in the world that would make me render another block
19:30 erle hahahahaha
19:31 MTDiscord <_devsh_> Build a World
19:31 MTDiscord <_devsh_> After that I stopped doing games
19:31 erle _devsh_ if you want to see block game engine abuse, look at my xcam mod. it is a proof-of-concept that abuses the raycasting function to make in-game photos with a redneck raytracer.
19:31 erle turns out casting like 100k rays in a single server step is not the healthiest approach
19:31 erle it got me some downvotes
19:31 erle but it is funny
19:32 erle _devsh_ see here: https://content.luanti.org/packages/erlehmann/xcam/
19:32 MTDiscord <_devsh_> Raycasting the game from a single GL_TEXTURE_3D would probably be faster that drawing with irrlicht
19:32 erle you clearly have not run it on potato hardware
19:32 erle i have potato
19:33 erle despite all the waste going on (tons of drawcalls or so), games that look similar use MUCH more resources
19:33 erle unless you take games from 15 years ago
19:33 MTDiscord <_devsh_> 256 steps through a 256x256x256 occupancy volume take 2048 bits
19:34 Verticen joined #minetest
19:34 MTDiscord <_devsh_> The shittiest GPU you can target has 800 MB/s of bandwidth
19:35 MTDiscord <_devsh_> Sorry
19:35 MTDiscord <_devsh_> 8GB/s
19:36 MTDiscord <_devsh_> You could probably pull of 30fps rendering
19:37 MTDiscord <_devsh_> https://www.shadertoy.com/view/4dX3zl
19:38 MTDiscord <_devsh_> 60 FPS on my phone, 1024x800 viewport
19:38 erle i do actually have 30fps with fixed pipeline on old thinkpad, but i guess soon i will have 0fps, when the gamer guys axe that renderer
19:39 MTDiscord <_devsh_> https://www.shadertoy.com/view/csscD4
19:39 MTDiscord <_devsh_> 40 FPS on my phone
19:39 MTDiscord <_devsh_> No triangles wer harmed
19:39 MTDiscord <_devsh_> All just plain raycasting in shaders
19:39 erle that shader toy thing is like 7fps here small, about 1fps fullscreen
19:39 erle fullscreen 1400x1050
19:40 erle sorry _devsh_ we are living in different hardware realities
19:40 erle _devsh_ link to “build a world” game you made?
19:41 MTDiscord <_devsh_> Yeah I mean your having shitty hardware is such a drag on graphics developers lives that someone should literally just send you an old 780 ti
19:41 erle nah, it is not. no one listens to me.
19:41 MTDiscord <_devsh_> Because the manhours required to pay for that are literally less than trying to maintain a gles 2.1 renderer and "optimize" the irrlicht stack
19:41 erle so don't worry
19:41 Krock This gaming router might be more capable at this point: https://kittenlabs.de/real-gaming-router/
19:42 erle i am waiting for replacement batteries for my reform 2
19:42 MTDiscord <_devsh_> An raspberry pi is more capable
19:42 erle MNT reform (the MNT stands for My New Thinkpad)
19:43 MTDiscord <_devsh_> If I had to pick, developing for that gles 2.0/gl 2.1 hardware your user base loves so much and a software renderer, I'd choose the software renderer
19:44 MTDiscord <luatic> software renderers are kinda fun to write, just not fun to use
19:44 MTDiscord <_devsh_> At least llvmpipe works, is maintained and you can step through them
19:44 erle software renderer but opengl API (this is how mesa developers are created)
19:44 MTDiscord <warr1024> by "software" I assume you mean "software on CPU" which is the thing that actually sounds antiquated, rather than "software on GPU" which is de facto what everyone is doing these days and just using terms like "shader" to pretend it's fundamentally different 😄
19:45 MTDiscord <_devsh_> I literally mean, CPU code
19:45 MTDiscord <_devsh_> No GPU
19:45 erle Warr1024 i can actually get like 7fps by using LIBGL_ALWAYS_SOFTWARE (and enjoying the smell of burnt plastic), so not even an order of magnitude rendering performance improvement and GPU doees not matter
19:46 erle well, i haven't tried actually playing with that tbh
19:46 MTDiscord <luatic> Warr1024: if you're stuck on old GL versions, what you can do on shaders is fundamentally different from what you can do on the CPU :(
19:46 MTDiscord <warr1024> I've been trying to figure out if twitch.tv/nodecoremt is actually fully software rendered, since it runs entirely inside docker, or if some iGPU features are directly available to unprivileged CPU processes...
19:46 MTDiscord <luatic> well, depends on your definition of fundamentally, i guess
19:47 erle luatic what is *fundamentally* different for you?
19:47 erle i mean obviously you can render pixels to screen one way or another
19:48 kamdard joined #minetest
19:48 MTDiscord <warr1024> to me they both involve using a more or less general-purpose-capable computing chip to run potentially arbitrary software to define rendering
19:48 MTDiscord <_devsh_> SSBO
19:48 MTDiscord <_devsh_> https://www.khronos.org/opengl/wiki/Shader_Storage_Buffer_Object
19:49 MTDiscord <_devsh_> https://www.khronos.org/opengl/wiki/Compute_Shader
19:49 MTDiscord <luatic> Warr1024: yeah this "more or less" is doing quite some heavy lifting
19:49 MTDiscord <warr1024> more or less everything requires at least a little heavy lifting
19:50 MTDiscord <_devsh_> The neat thing about compute shader rendering is that you have no helper invocations
19:50 MTDiscord <_devsh_> 4x faster than rendering HW triangles
19:50 MTDiscord <luatic> to give an example, consider order-independent transparency. on real general purpose CPUs this is trivial to implement, just use some data structure to allow for multiple fragment layers per pixel. i'm not aware of an easy way to do this on ancient GL versions. maybe devsh is.
19:51 MTDiscord <_devsh_> Depth peeling but that's stupidly unperformant
19:51 MTDiscord <_devsh_> Ekhm ekhm raytracing
19:51 MTDiscord <_devsh_> Best data structure no data structure
19:52 Krock this is perhaps the first time I've heard "general purpose" used outside of electronics component datasheets
19:52 MTDiscord <_devsh_> Yes yes we know mine test graphics team is non existent
19:53 MTDiscord <warr1024> "general purpose" as in not like a smart thermostat or an iphone or something 😆
19:53 MTDiscord <_devsh_> I've always found it amusing
19:53 MTDiscord <_devsh_> Little gfx knowledge, 0 desire for gfx knowledge, pushing GFX to the side and then wondering why perf sucks
19:54 MTDiscord <luatic> I will admit that I'm not very knowledgeable when it comes to graphics dev, but I don't think there is a need to be condescending like this.
19:54 MTDiscord <luatic> Our performance issues go well beyond graphics by the way.
19:55 MTDiscord <_devsh_> Yes, I know
19:55 MTDiscord <_devsh_> The performance issue comes from building around irrlicht
19:55 MTDiscord <_devsh_> And learning anti patterns
19:55 MTDiscord <_devsh_> Then being locked into anti patterns
19:57 erle i actually like the tone that _devsh_ has, but i'd like it to be backed up by some actual demonstrations of easy gainz performance or effects wise.
19:57 MTDiscord <_devsh_> The reason why other games/engines got a lot nicer over time is because people were actively targeting the problem areas/bottlenecks and not afraid to make huge changes
19:57 erle the proof is in the pudding, so to say
19:58 MTDiscord <_devsh_> Graphics is special
19:58 MTDiscord <_devsh_> Audio, networking, etc don't tend to push your software arch to it's limits
19:58 MTDiscord <_devsh_> So people don't start paying attention to what really matters
19:58 MTDiscord <_devsh_> Which is making software that fits the target arch, is easy to maintain and agile
19:59 erle _devsh_ you can't be agile without discipline in my experience
20:00 MTDiscord <_devsh_> And problem is super magnified if you take 10 different foss libraries tape them together, don't ont fork them, don't want to maintain them and are scared to look inside
20:00 erle and by discipline i mean “write test cases, yes even for the stupidest thing where you just fixed a < into a >”
20:00 celeron55 some downtime on the website Very Soon (tm). i'm trying to do the domain switch now
20:00 erle i wish you success
20:00 MTDiscord <_devsh_> Because then your primary concern is "how do I make the least change so this ducttape tower doesn't collapse"
20:02 Krock negative LOC changes are always a joy to see
20:03 MTDiscord <_devsh_> https://cdn.discordapp.com/attachments/749727888659447960/1305623962444894288/image-3.png?ex=6733b491&amp;is=67326311&amp;hm=30b3488167e2622814c727749590e4514a59d6488352e4166b5b7e9ea230e81e&amp;
20:03 MTDiscord <_devsh_> Let me get you a logarithmic scale so you can see better
20:03 MTDiscord <_devsh_> https://cdn.discordapp.com/attachments/749727888659447960/1305624083219877910/image-4.png?ex=6733b4ae&amp;is=6732632e&amp;hm=a8767a9d36b4807e1c4db2302b130bc66ae1c1d01c74f67512d5d7c419949a27&amp;
20:04 Krock GDI, as in the Windows software rendering?
20:04 MTDiscord <_devsh_> Yes it's for a cad thing
20:04 MTDiscord <grorp> > Because then your primary concern is "how do I make the least change so this ducttape tower doesn't collapse"
20:04 MTDiscord <grorp> indeed, that's the way you currently have to think if you're trying to work on Luanti graphics code
20:04 MTDiscord <_devsh_> https://youtu.be/M-IMQT7yKVI?si=JgTlQpucmS1yLZbu
20:05 MTDiscord <grorp> and it sucks
20:05 erle grorp that's the way you have to think with every project that has that kind of history and hardware platform support and no resources for a full rewrite of some component.
20:05 MTDiscord <_devsh_> And that's why you cut the balast
20:05 MTDiscord <_devsh_> And draw the line at gles 3.1
20:06 MTDiscord <_devsh_> The higher you amputate the better
20:07 celeron55 huh, i think i managed to do it
20:07 ROllerozxa hooray
20:07 Krock what did you amputate?
20:08 MTDiscord <_devsh_> Most of irrlicht
20:08 erle grorp btw i would appreciate if you privately wrote me which kinds of things you found unhelpful. i don't want to debate you on it or justify it, i just would like to know in general what you disliked about cases where you agree with me about the issue at hand (i.e. not if there is a bug).
20:08 MTDiscord <_devsh_> And any GPU that's not getting driver updates
20:08 erle _devsh_ i think the dev team is far ahead of you
20:09 erle _devsh_ they did cut most of irrlicht already
20:09 erle and are definitely planning to cut support for GPUs that still have mesa support
20:09 ROllerozxa now don't forget to fully move over the forums and wiki to luanti.org
20:09 celeron55 well, the forum is dead again, so i can't change the cookie domain there
20:10 ROllerozxa don't you have SSH access?
20:10 ROllerozxa or did that time out too
20:10 celeron55 i don't think that helps with phpbb much
20:10 celeron55 i mean, sure i do
20:11 celeron55 if i'm to spend time with the forum, i'll rather spend it figuring out a good setup for the box i got for moving the forum onto
20:12 celeron55 it's just that i made the mistake of getting a 10x faster dedibox so it doesn't make sense to do anything with it without virtualization on top first
20:12 celeron55 having said that, anyone want to play around with it?
20:13 celeron55 it's kind of fun, i put proxmox on it for testing
20:13 celeron55 but not everything works like i expect
20:14 celeron55 i so far have failed to make a VM that would run a HTTP(S) reverse proxy for the thing
20:14 celeron55 for some reason TCP packets just don't want to go through the network
20:23 erle celeron55 the whole downtime thing, is that some resource exhaustion that can be debugged without having access to the live data you want to keep private?
20:23 celeron55 there's not much point diagnosing it as the resource that's exhausted is CPU time
20:24 celeron55 the server is probably weaker than your old thinkpad
20:24 erle well, computers are fast. there is no reason a phpbb should eat itself
20:24 erle (is it a phpbb?)
20:24 celeron55 i'm not hopping onto the phpbb fork bandwagon
20:24 celeron55 that would be a slowly growing disaster
20:25 erle nah, but it could be that there is some thing that is accidentally quadratic or so
20:25 erle i recently found on an old server that was to be decommissioned that instead of overwriting logfiles, i apparently appended to them … the entire logfile and new logs.
20:25 celeron55 yes, no
20:25 celeron55 i have better use for my time
20:26 erle the question i was asking is: can i help debugging but in a way you don't have to trust me with user data?
20:26 erle i used to do php a long time ago
20:26 celeron55 anyway, i restarted the forum's php-fpm and that brought the forum back online. now the domain should be swapped there too
20:26 erle yay
20:26 celeron55 your forum session will be lost
20:27 celeron55 hopefully nobody is writing a long forum post right now as they'll probably lose it if they don't copy it into a text editor...
20:27 erle i always do that, don't trust web forms
20:27 erle after wordpress ate one too many posts of mine
20:27 celeron55 yeah, never trust web forms. i've learned my lesson too
20:28 erle reddit is especially interesting there. they are happy to serve a stale version of an edited comment once it was edited if the page is refreshed.
20:29 erle but then you refresh a couple times and *sometimes* you get the new one, sometimes the old
20:34 ROllerozxa um, I think you forgot to set up a redirect on minetest.net
20:34 ROllerozxa (well, it redirects to c55.me, but I'm sure that's not intentional)
20:35 sfan5 works fine here
20:36 erle yeah for me as well, but maybe c55 is just ninja fast
20:36 ROllerozxa how embarrassing x_x
20:37 ROllerozxa yes indeed it is fixed now
20:45 celeron55 there were some messed up overall states during all that as i couldn't do it all at once
20:45 celeron55 and depending on when your DNS happens to update, especially if it doesn't follow TTLs, there might still be
21:43 kamdard joined #minetest
21:57 sinvet joined #minetest
21:59 MisterE1230 joined #minetest
22:00 kamdard joined #minetest
22:03 serp joined #minetest
22:28 silverwolf73828 joined #minetest
22:47 jaca122 joined #minetest
23:02 Baytuch_2 joined #minetest
23:04 fling_ joined #minetest
23:34 panwolfram joined #minetest
23:58 shinbet joined #minetest

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