01:46 < bridge_> Its a clan 10:36 < ChillerDragon> @davide55 still _c 10:56 < bridge_> e 11:46 < bridge_> @jupeyy_keks any chance to build a new mobile client for him? 11:46 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1131160121909727323/IMG_1728.png 11:52 < bridge_> I'm not sure if that still works since the rust support :/ 11:53 < bridge_> And restoring the old controls is probs lot of work too xd 11:54 < ChillerDragon> watf is he playing touch or with external mouse? 11:55 < ChillerDragon> if its touch i wanna see camera footage or didnt happen 11:56 < ChillerDragon> also trol deen for having the url at the bottom 11:56 < ChillerDragon> leaking the dms 11:57 < ChillerDragon> https://ddnet.org/players/SuPerp-95-/ 11:57 < ChillerDragon> 1919. with 6607 points 11:57 < bridge_> I don't remember touch support being in client, but I assume the android version is very old so maybe it way removed 11:57 < bridge_> I'd be willing to help with the rust support 11:57 < bridge_> I don't remember touch support being in client, but I assume the android version is very old so maybe it was removed 11:57 < ChillerDragon> > I haven't played the PC DDNet. 11:57 < ChillerDragon> insanity 11:58 < bridge_> i would start over tbh. isn’t that piece of work on gles1 11:59 < bridge_> I believe the app would only be great if it was for spectating and chatting only, not for playing 11:59 < bridge_> all UI is a NIGHTMARE and the client is so old that basics like antiping aren’t there 11:59 < ChillerDragon> this mf started playing in 2022 mobile only and exceeded my decade of pc tryharding omg 11:59 < ChillerDragon> in points 11:59 < bridge_> I’ve seen this guy on usa 11:59 < bridge_> never suspected mobile 11:59 < bridge_> maybe trolling 12:00 < bridge_> Yes was removed 12:01 < bridge_> I once proposed a mouse change to make touch ez to integrate. But MacOS is the least game friendly environment sadly xd 12:11 < ChillerDragon> this mobile player needs a medal 12:11 < ChillerDragon> and a new android release asap 12:13 < bridge_> Tell em to bring him his new release 12:29 < bridge_> rust can compile for Android 12:29 < bridge_> ndk 12:35 < ws-client> I guess I also prefer to focus on next-gen teeworlds for now, but i can gladly assist with build script information and quirks for android 12:36 < ws-client> if someone is motivated 12:37 < bridge_> I have no doubt about that. It's more about the cmake build setup and if the libraries support it(if we use libraries that do non std stuff) 12:41 < bridge_> Hey does someone have the link to the accounts issue on github? 12:42 < bridge_> It kinda needs to get pinned in this channel ngl 12:42 < ws-client> #3411 12:42 < bridge_> search for "accounts issue" in discord 12:42 < bridge_> Thx 12:42 < bridge_> #3411 12:42 < bridge_> https://github.com/ddnet/ddnet/issues/3411 12:42 < ws-client> thanks for ignore @DDNet 12:43 < bridge_> Troll 12:52 < bridge_> Anyone want to merge #6871? 12:52 < bridge_> https://github.com/ddnet/ddnet/pull/6871 12:54 < bridge_> (done) 12:56 < ChillerDragon> jopsti chilerbot is currently under maintenance he will soon listen to your issue mentions 13:16 < bridge_> After reading the accounts issue completely through I have 2 main questions 13:16 < bridge_> What is the benefit of using a decentralised system? I genuinely have no knowledge in that kind if stuff 13:16 < bridge_> And who is this zoozti guy lmao 13:16 < ws-client> konsti 13:16 < bridge_> What is the benefit of using a decentralised system? I genuinely have no knowledge in that kind of stuff 13:16 < bridge_> And who is this zoozti guy lmao 13:17 < bridge_> What a surprise 13:19 < ws-client> well tbh decentralized is one of these words that isn't crystal clear imo. But generally for accounts it would probably mean that ddnet is not in full control of the account directly 13:19 < ChillerDragon> #123 13:19 < chillerbot> https://github.com/ddnet/ddnet/issues/123 13:19 < ws-client> e.g. if kog uses ddnets auth system for their login that would be centralized on ddnet 13:19 < ChillerDragon> ez 13:19 < ws-client> Chillerdragon epic 13:19 < ws-client> xd 13:19 < ChillerDragon> !p 00 00 00 00 00 00 00 00 00 00 00 00 08 00 45 00 00 35 1a eb 40 00 40 11 21 cb 7f 00 00 01 7f 00 00 01 f3 67 20 6f 00 21 fe 34 10 0c 01 42 78 0d 88 55 e9 f0 87 e6 07 68 d6 d0 5b f8 69 2f ff 8c 14 37 00 13:19 < bridge_> Command not found! 13:20 < ChillerDragon> oh o 13:20 < bridge_> And why shouldn’t ddnet be in full control of accounts? 13:20 < ws-client> well from ddnet's perspective it doesnt matter 13:20 < ws-client> from mods perspective it's probably more attractive 13:21 < bridge_> Because of security and privacy concerns? 13:21 < ChillerDragon> your fakin space makes it look like you quote shit 13:21 < ws-client> thinking about it, the only decentralized system is probably using key-pair directly 13:21 < bridge_> @jupeyy_keks What got ignored? 13:21 < ChillerDragon> ? xd 13:22 < ws-client> so @heinrich5991 approach is not decentralized, right? 13:22 < ChillerDragon> ddnet bot talking axaxax 13:22 < ws-client> bcs the recovery also happens over ddnet directly 13:22 < ChillerDragon> the discord bot ignores irc but dont worry we got chillerbot on irc side so all good 13:22 < ws-client> @chillerdragon lol wtf is that 13:22 < ChillerDragon> not me 13:22 < ws-client> in discord it was vy0x3 walking 13:22 < ChillerDragon> watfak 13:22 < ws-client> talking* 13:23 < ChillerDragon> im irc it says 13:23 < ChillerDragon> matterbridge moment? 13:23 < ws-client> LOLL 13:23 < ws-client> his accountname is ddnet 13:23 < ws-client> biggest troll 13:23 < bridge_> username and display name moment 13:23 < ChillerDragon> xd 13:23 < bridge_> bad implementation i would say 13:23 < ChillerDragon> trollest 13:23 < ws-client> biggest troll ever 13:23 < ChillerDragon> https://zillyhuhn.com/cs/.1689765854.png 13:24 < bridge_> Were you not forced to change your name to the new username system btw? 13:24 < ChillerDragon> he da original ddnet 13:25 < bridge_> No 13:25 < bridge_> No, gotta back to work now, no ping pls thanks 13:25 < bridge_> 🏓 13:27 < ws-client> stay with us DDNet 13:29 < ws-client> chillerdragon are u here? 13:29 < ws-client> #6889 13:29 < ws-client> vulkan is designed to work without surfaces, why can't you link it? 13:30 < ws-client> or what is your problem with it exactly 13:30 < ws-client> does your vulkan package require x11 deps or smth? 13:31 < ws-client> should probably lazy load vk ;) 13:32 < ws-client> but anyway, maybe its really easier if we dont do so much hacks for headless client 13:32 < ws-client> u can install x11 without display just fine afaik 13:33 < ChillerDragon> jopsti i kiled chilerbot again with the !p command xd 13:33 < ChillerDragon> new fixes and new bugs 13:39 < ChillerDragon> #6889 13:39 < chillerbot> https://github.com/ddnet/ddnet/issues/6889 13:39 < ChillerDragon> o it my issue 13:40 < ChillerDragon> jopsti its no hack its just turning vulkan off by default if compiling headless client 13:40 < ws-client> yeah, issue is the right word :) 13:40 < ChillerDragon> axaxax 13:40 < ws-client> yeah but as heinrich said 13:40 < ws-client> opengl is still on 13:40 < ws-client> i'd see opengl as a bigger problem, since there is no surfaceless opengl 13:41 < ChillerDragon> opengl is next then :p 13:41 < ws-client> troll 13:43 < ws-client> chillerdragon when rename headless to surfaceless 13:44 < ChillerDragon> thats not a thing 13:45 < ws-client> do you disable anything else besides graphics? 13:45 < ws-client> well u want libnotify disabled, but i guess its kinda part of graphics 13:49 < ChillerDragon> it tries to keep most ddnet code 13:49 < ChillerDragon> just being low on dependencies during compile and runtime 13:50 < ChillerDragon> the bloatest dependency of them all ofc being having a graphical environment 13:50 < ws-client> better buy 128 GB RAM 13:50 < ws-client> xd 13:52 < ChillerDragon> check dis out jopsti 13:52 < ChillerDragon> !p 00000000000000000000000086dd600e1643002511400000000000000000000000000000000100000000000000000000000000000001fc45206f002500388014024ac23217dd5030b2adc340c75aa68d463c9e0f55c399d42b6e00 13:52 < bridge_> Command not found! 13:52 < chillerbot> ```extracting udp payload from ethernet packet ...``` 13:52 < chillerbot> ```[twnet_parser v0.8.0] udp payload: 80 14 02 4a c2 32 17 dd 50 30 b2 ad c3 40 c7 5a a6 8d 46 3c 9e 0f 55 c3 99 d4 2b 6e 00``` 13:53 < chillerbot> ```--- 0.7``` 13:53 < chillerbot> error 13:53 < chillerbot> ```--- 0.6``` 13:53 < chillerbot> ```: {'flags': , 'ack': 20, 'token': b'J\xc22\x17', 'num_chunks': 2, 'connless_version': 1, 'response_token': b'\xff\xff\xff\xff'}``` 13:53 < chillerbot> ```: {'message_type': 'game', 'message_name': 'cl_emoticon', 'system_message': False, 'message_id': 23, 'header': , 'emoticon': 7}``` 13:53 < chillerbot> ```: {'message_type': 'system', 'message_name': 'input', 'system_message': True, 'message_id': 16, 'header': , 'ack_snapshot': 2660, 'intended_tick': 2661, 'input_size': 40, 'input': }``` 13:54 < bridge_> @heinrich5991 u know if a packed struct can have a align >1? 13:54 < bridge_> packed struct has align 1 13:55 < bridge_> so no, it cannot 13:55 < bridge_> f 13:56 < bridge_> why? 13:57 < bridge_> no reason 13:57 < bridge_> well cuz smth at work 13:57 < bridge_> Do u have to use rust? 13:58 < bridge_> its llvm 13:58 < bridge_> Pragma pack 2 13:58 < bridge_> Does not work? 13:58 < bridge_> i mean its not c++ either 13:58 < bridge_> its llvm ir 13:58 < bridge_> I don't know about llvm 13:58 < bridge_> my answer was about rust 13:58 < bridge_> yeye 13:58 < bridge_> but it makes sense to ask what rust does too 13:58 < bridge_> cuz it uses llvm 13:59 < bridge_> but according to my findings packed structs have align 1 ye 13:59 < bridge_> @heinrich5991 ever used the Layout struct from rust? 13:59 < bridge_> its awesome, it calculates padding, alignment, etc for mixing fields and stuff 13:59 < bridge_> https://doc.rust-lang.org/stable/std/alloc/struct.Layout.html 13:59 < bridge_> have not. I think it's a new thing :p 14:00 < bridge_> 1.28 is new? 14:00 < bridge_> ah, not that new I guess 14:00 < bridge_> i guess u didnt do low level allocs 14:00 < bridge_> yea 14:01 < ws-client> rust seems to allow it too btw @heinrich5991 14:01 < ws-client> https://doc.rust-lang.org/reference/type-layout.html 14:01 < bridge_> ```rust 14:01 < bridge_> let struct_with_ptr_u32_u64 = Layout:🆕:<*mut ()>() 14:01 < bridge_> .extend(Layout:🆕:())? 14:01 < bridge_> .0 14:02 < bridge_> .extend(Layout:🆕:())? 14:02 < bridge_> .0; 14:02 < bridge_> ``` 14:02 < bridge_> interesting 😮 14:02 < bridge_> TIL 14:03 < bridge_> @heinrich5991 never used https://docs.rs/bumpalo/latest/bumpalo/ ? 14:03 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1131194655359389817/bumpalo.png 14:03 < ws-client> @ryozuki whats your usecase 14:03 < bridge_> epic logo 14:03 < ws-client> im interested in it 14:03 < ws-client> i find the disadvantage a pretty huge disadvantage 14:04 < ws-client> (a practical usecase) 14:04 < ws-client> theoretically it's clear to me what the advantage is 14:05 < ChillerDragon> @davide55 :c 14:05 < ChillerDragon> time to play w vpn i guess 14:05 < bridge_> we have a JIT engine from MLIR, we deserialize the inputs from json and allocate the resulting structures in the arena and pass it to the jit executing a function with those inputs, returning the outputs as pointers which we serialize back to json 14:06 < bridge_> it also works with natively compiling, in which case for now we call the method using a wrapper C program 14:07 < bridge_> ```C 14:07 < bridge_> static void run_bench(return_values_t *, void *, uint64_t) 14:07 < bridge_> __attribute__((weakref("_mlir_ciface_main::main::main"))); 14:07 < bridge_> ``` 14:07 < bridge_> which is why i once asked this weakref stuff time ago 14:07 < bridge_> kek 14:07 < bridge_> @jupeyy_keks bumpalo works best when u want fastest allocation and dont care about deallocating 14:08 < ws-client> man ur job is so interesting 😂 14:08 < bridge_> xd 14:08 < ChillerDragon> ryo and deen only two ppl who made it in life 14:09 < ws-client> tru xDDD 14:10 < bridge_> xd 14:10 < bridge_> well chiller u live ur life making bots 14:11 < ChillerDragon> :c 14:11 < bridge_> when ai powered? 14:11 < ChillerDragon> all ppl asking "client" questions in developer channel is just me under different names 14:11 < bridge_> xdd 14:13 < bridge_> @jupeyy_keks btw 14:13 < bridge_> in ur rust tw client 14:13 < bridge_> do u use mimalloc? 14:13 < bridge_> free perfomance 14:13 < bridge_> just change the default rust global allocator 14:13 < bridge_> https://docs.rs/mimalloc/latest/mimalloc/ 14:14 < ChillerDragon> ryo jopsti is making performant game 14:14 < ChillerDragon> to go blazingly fast he doesnt do allocations at all 14:14 < ChillerDragon> he just pipes frames straight out of /dev/urandom because its webscale 14:15 < bridge_> xd 14:16 < ws-client> why doesnt rust use it standard 14:17 < ws-client> if its always faster 14:17 < ws-client> but chillerdragon you are right, ofc i'm not trying to do a allocation twice and use pools 14:17 < ws-client> quite heavily 14:17 < ws-client> additionally its vulkan first 14:17 < ws-client> so i directly write into driver memory 14:17 < ws-client> to save the 2ns 14:18 < ws-client> but there are cases where i optionally waste lot of performance 14:18 < ws-client> and that is WASM support, which is defs slower than native 14:21 < bridge_> i guess portability? 14:21 < bridge_> or idk tbh 14:21 < ws-client> first class modding support ;) 14:21 < bridge_> ah mimalloc has no wasm rn 14:27 < bridge_> yo btw https://github.com/ddnet/ddnet/blob/master/scripts/compile_libs/gen_libs.sh here on the lines where it calls the other files it should be bash instead of ./ 14:27 < bridge_> atleast it failed for me with a ./ even though the files had execution rights. 14:28 < ws-client> mhh thats surprising, which scripts failed exactly to execute? 14:28 < ws-client> and what error did u get? 14:28 < bridge_> its just a permission error 14:29 < ws-client> so execution rights or other? 14:29 < bridge_> yea but they already had execution rights 14:29 < bridge_> i changed the ./ to bash and its working now 14:30 < ws-client> chillerdragon: help pls 14:30 < bridge_> yo btw https://github.com/ddnet/ddnet/blob/master/scripts/compile_libs/gen_libs.sh here on the lines where it calls the other files it should be bash instead of ./ 14:30 < bridge_> atleast it failed for me with a ./ even though the files had execution rights. 14:30 < ws-client> does that ever make sense? xd 14:30 < bridge_> ll. 85, 108, 120 14:30 < bridge_> im on arch btw ;) 14:30 < ws-client> I've really never heard of such an issue and also never encountered it, is maybe "#!/bin/bash" missing in these files? 14:31 < ws-client> the ones that fail 14:31 < bridge_> Jupstar: because they don't want every rust program to ship with an allocators 14:31 < bridge_> Jupstar: because they don't want every rust program to ship with an allocator 14:31 < bridge_> when i executed them by hand they worked fine 14:31 < bridge_> they use the system allocators instead 14:32 < ws-client> @heinrich5991 so the one ryo posted does some kind of pre allocations and then represents a heap on its own? 14:33 < bridge_> probably uses the OS page maps to create their own allocator 14:33 < bridge_> mimalloc is a drop-in replacement for malloc and can be used in other programs without code changes, for example, on dynamically linked ELF-based systems (Linux, BSD, etc.) you can use it as: 14:33 < ws-client> @teero777 i really dunno if this is not allowed in strict bash or smth. i always used it like this :D 14:33 < bridge_> > free list sharding: instead of one big free list (per size class) we have many smaller lists per "mimalloc page" which reduces fragmentation and increases locality -- things that are allocated close in time get allocated close in memory. (A mimalloc page contains blocks of one size class and is usually 64KiB on a 64-bit system). 14:33 < bridge_> > 14:34 < ws-client> yeah @ryozuki but it must have some disadvantages :D 14:34 < bridge_> > free list multi-sharding: the big idea! Not only do we shard the free list per mimalloc page, but for each page we have multiple free lists. In particular, there is one list for thread-local free operations, and another one for concurrent free operations. Free-ing from another thread can now be a single CAS without needing sophisticated coordination between threads. Since there will be thousands of separate free lists, contention is naturally di 14:34 < bridge_> > eager page purging: when a "page" becomes empty (with increased chance due to free list sharding) the memory is marked to the OS as unused (reset or decommitted) reducing (real) memory pressure and fragmentation, especially in long running programs. 14:34 < bridge_> > 14:34 < ws-client> oh ok 14:34 < bridge_> > secure: mimalloc can be built in secure mode, adding guard pages, randomized allocation, encrypted free lists, etc. to protect against various heap vulnerabilities. The performance penalty is usually around 10% on average over our benchmarks. 14:34 < ws-client> here it comes xD 14:34 < bridge_> > 14:34 < bridge_> > first-class heaps: efficiently create and use multiple heaps to allocate across different regions. A heap can be destroyed at once instead of deallocating each object separately. 14:34 < bridge_> > bounded: it does not suffer from blowup [1], has bounded worst-case allocation times (wcat) (upto OS primitives), bounded space overhead (~0.2% meta-data, with low internal fragmentation), and has no internal points of contention using only atomic operations. 14:34 < bridge_> > fast: In our benchmarks (see below), mimalloc outperforms other leading allocators (jemalloc, tcmalloc, Hoard, etc), and often uses less memory. A nice property is that it does consistently well over a wide range of benchmarks. There is also good huge OS page support for larger server programs. 14:34 < bridge_> size 14:35 < ws-client> i mean its worth a try, but i generally try to reuse memory anyway without any allocators ^^ 14:36 < bridge_> the best allocator is the stack kek 14:36 < bridge_> ^ this also interesting 14:36 < bridge_> . 14:36 < bridge_> Mh ok xd 14:37 < bridge_> Discord scrolls weirdly for me 14:38 < bridge_> https://os.phil-opp.com/heap-allocation/ 14:38 < bridge_> https://os.phil-opp.com/allocator-designs/ 14:38 < bridge_> interesting resources 14:38 < bridge_> no-OS allocators 14:39 < ws-client> i guess don't overengineer stuff :D 14:39 < bridge_> i remember implementing a slab one? 14:39 < bridge_> i think u have a linked list of various sizes 14:39 < ws-client> the rust client is not faster than ddnet, even tho it does no heap allocation, while ddnet probably does :D 14:40 < bridge_> 16,32,64,128,512,1024,2024 14:40 < bridge_> etc 14:40 < bridge_> ah no 14:40 < bridge_> fixed size block 14:40 < bridge_> ```rust 14:40 < bridge_> 14:40 < bridge_> /// The block sizes to use. 14:40 < bridge_> /// 14:40 < bridge_> /// The sizes must each be power of 2 because they are also used as 14:40 < bridge_> /// the block alignment (alignments must be always powers of 2). 14:40 < bridge_> const BLOCK_SIZES: &[usize] = &[8, 16, 32, 64, 128, 256, 512, 1024, 2048]; 14:40 < bridge_> ``` 14:41 < ChillerDragon> @teero777 can you run the failing script with ``bash -x script.sh`` and share the output in a paste snippet? 14:41 < bridge_> xd 14:44 < bridge_> Now im completely confused. It works 14:47 < bridge_> I was following the cross compiling to wasm from the ddnet readme 14:48 < ws-client> is it so different to the android one? 14:48 < ws-client> does the client compile btw? no problems with rust choosing the wrong toolchain etc? 14:49 < ChillerDragon> i get a bunch of file not found when running ge_libs.sh . linux 14:49 < ws-client> do u have android ndk installed? 14:49 < ChillerDragon> me? 14:49 < ws-client> yes 14:49 < ChillerDragon> no 14:49 < ChillerDragon> it didnt tell me to 14:49 < ws-client> it does 14:50 < ws-client> https://github.com/ddnet/ddnet/blob/master/scripts/android/README.md 14:50 < bridge_> It's in the available in the aur 14:50 < ChillerDragon> crapshot in progress 14:50 < bridge_> permalink: https://github.com/ddnet/ddnet/blob/9aa04d90f6ca5ae02526b7a95f94daf2c7cd3e4f/scripts/android/README.md 14:50 < ChillerDragon> omg i have 2 fps in irc 14:51 < ChillerDragon> https://zillyhuhn.com/cs/.1689771037.png 14:51 < bridge_> pasting logs as images 14:51 < bridge_> bad thing 14:51 < ChillerDragon> mimimi 14:51 < ws-client> better than posting 5000000 lines of log xD 14:51 < ChillerDragon> snippet have no preview 14:51 < ws-client> linux is not supported by that script rn 14:51 < ws-client> but it's easy to add 14:51 < ChillerDragon> it didnt show which is supported 14:52 < ChillerDragon> or didnt complain 14:52 < ws-client> at any way, currently it wont work anyway. bcs SDL2 already named itself SDL3 xD 14:52 < ChillerDragon> this script makes it easy to shoot ur self in the foot 14:52 < ws-client> idc if u shoot yourself into the foot 14:52 < ws-client> go ahead xD 14:52 < ChillerDragon> you use latest commit already? 14:52 < ChillerDragon> not some pinned known to be working? 14:52 < ws-client> yes 14:52 < ws-client> i dont want to maintain that 14:53 < ChillerDragon> bleeding edge 14:53 < ws-client> u can add support for it 14:53 < ws-client> idc 14:54 < ChillerDragon> why not pick a dir in the source tree? 14:54 < ws-client> do what u want 14:54 < ChillerDragon> xd 14:54 < ws-client> dont blame me if gitignore doesnt prevent trigger tho 14:54 < ChillerDragon> a just for file showing up in git? 14:55 < ws-client> also asserts write the full path into your binary 14:55 < ws-client> so it might leak personal info 14:55 < ws-client> if u care about that 14:55 < ChillerDragon> a 14:55 < ws-client> blame sdl for that btw 14:55 < ChillerDragon> /home/chiller/git/Desktop/ddnet btw 14:55 < ws-client> xd 14:55 < ChillerDragon> leak 14:56 < ws-client> for dbg_assert we can fix it i think 14:56 < ws-client> there is relative path support 14:56 < ws-client> /home/ilovechiller/git/good/in/ddnet 14:57 < ChillerDragon> axaxa 14:57 < ChillerDragon> oke ima use /home/deen/isos/ddnet/android like a true ddnetter 14:58 < ws-client> xd 14:58 < ws-client> /root/safe_builds 15:31 < bridge_> @jupeyy_keks Is there a reason why memory for texture data in graphics commands is allocated with `malloc` whereas other commands use the command data buffer? Seems like we currently leak the texture data memory if `AddCmd` fails. 15:37 < ws-client> @robyt3 it can't fail :tm: 15:37 < ws-client> if it fails it flushes the command queue 15:37 < ws-client> and if the queue is flushed its empty 15:37 < ws-client> and the CMD is never too big then 15:38 < ws-client> textures as well as buffers use malloc bcs they can be very huge 15:38 < ws-client> and the command data have a limit of a few kb or maybe mbytes 15:39 < bridge_> I see, hard to understand code though 15:40 < bridge_> If it can't fail twice then we should assert and make `AddCmd` return `void` 15:40 < ws-client> yeah vanilla tends to never use dynamic memory 15:41 < ws-client> do we never handle the fail path? 15:41 < ws-client> then we can probably do that 15:41 < bridge_> Seems like in some cases we just return early 15:41 < bridge_> can u link to code 15:41 < bridge_> https://github.com/ddnet/ddnet/blob/master/src/engine/client/graphics_threaded.cpp 15:41 < bridge_> Search for `AddCmd` 15:42 < bridge_> In some cases it's in `if`-statements, but in many it's not 15:42 < bridge_> This would also be a way for a texture handle index to not be freed correctly, but if `AddCmd` never fails then it's not that 15:43 < ws-client> from feeling i'd say if we ever fail, it's an fatal error anyway 15:43 < ws-client> i would know if most code could recover from this 15:43 < ws-client> would not* 15:44 < ws-client> @robyt3 i really have the feeling we have a buffer overflow somewhere. or the crash logs are really bad 15:44 < ws-client> and dont show the actual bug 15:47 < ws-client> i'd highly suggest to not handle content bugs like this anyway. Fail where the content is loaded. for skins for example don't load the whole skin is one part fails. then we can safely assume that there are no invalid textures 15:47 < ws-client> that's also why i dislike that we allow having no data dir 15:47 < ws-client> they __must__ be a default skin 15:47 < ws-client> and a default entities 15:47 < ws-client> and default whatever 15:49 < ws-client> it also minimizes the chance such content is shared in the community bcs it does not work at all. that also worked with the warnings :D ppl were mad first but now i havent seen it in a longer time 15:57 < ws-client> i dunno how much time you want to waste, but e.g. for maps, we currently dynamically load anything that is compressed. In my tw version whatever loads the map has to directly tell which stuff it wants to load. This allows to validate the map files directly at loading. and it also increases performance 15:57 < ws-client> because the whole code works on memory instead of files 15:58 < ws-client> so if u want to improve that you could think about redesigning how maps, skins etc are loaded xd 16:01 < ws-client> dynamically load anything that is compressed when used the first time* 16:01 < ws-client> chillerdragon: can u fix that i cannot select text xD 16:01 < ws-client> feature request 😂 16:18 < ChillerDragon> yea its on ma todo its so bad i know 16:37 < bridge_> ```rust 16:37 < bridge_> ptr = unsafe { libc::malloc(inner_layout.size()).cast() }; 16:37 < bridge_> ``` 16:37 < bridge_> im doing rust sins 16:44 < ws-client> cargo uninstall ryoos 17:00 < bridge_> ``` 17:00 < bridge_> oot@dkLinux:/home/dk/ddnet/ddnet/build# emcmake cmake .. -DVIDEORECORDER=OFF -DVULKAN=OFF -DSERVER=OFF -DTOOLS=OFF -DPREFER_BUNDLED_LIBS=ON 17:00 < bridge_> configure: cmake .. -DVIDEORECORDER=OFF -DVULKAN=OFF -DSERVER=OFF -DTOOLS=OFF -DPREFER_BUNDLED_LIBS=ON -DCMAKE_TOOLCHAIN_FILE=/usr/share/emscripten/cmake/Modules/Platform/Emscripten.cmake -DCMAKE_CROSSCOMPILING_EMULATOR=/usr/bin/node;--experimental-wasm-threads 17:00 < bridge_> -- Could NOT find Curl (missing: CURL_INCLUDEDIR) 17:00 < bridge_> -- Could NOT find Freetype (missing: FREETYPE_INCLUDEDIR) 17:00 < bridge_> -- Could NOT find GTest (missing: GTEST_LIBRARY GTEST_INCLUDE_DIR GTEST_MAIN_LIBRARY) 17:00 < bridge_> -- Could NOT find Ogg (missing: OGG_INCLUDEDIR) 17:00 < bridge_> -- Could NOT find Opus (missing: OPUS_INCLUDEDIR) 17:00 < bridge_> -- Could NOT find Opusfile (missing: OPUSFILE_INCLUDEDIR) 17:00 < bridge_> -- Could NOT find SDL2 (missing: SDL2_LIBRARY SDL2_INCLUDEDIR) 17:00 < bridge_> -- Could NOT find SQLite3 (missing: SQLite3_INCLUDEDIR SQLite3_LIBRARY) 17:00 < bridge_> -- Could NOT find Threads (missing: Threads_FOUND) 17:00 < bridge_> -- ******** DDNet ******** 17:00 < bridge_> -- Target OS: linux x86 17:00 < bridge_> -- Compiler: /usr/bin/em++ 17:00 < bridge_> -- Rust version: rustc 1.66.1 (90743e729 2023-01-10) (built from a source tarball) 17:00 < bridge_> -- Build type: Release 17:00 < bridge_> -- Dependencies: 17:00 < bridge_> -- * Curl not found 17:00 < bridge_> -- * Freetype not found 17:00 < bridge_> -- * Glew not found (using bundled version) 17:01 < bridge_> -- * GTest not found 17:01 < bridge_> -- * Ogg not found 17:01 < bridge_> -- * OpenSSL Crypto found 17:01 < bridge_> -- * Opus not found 17:01 < bridge_> -- * Opusfile not found 17:01 < bridge_> -- * PNG not found 17:01 < bridge_> -- * PythonInterp found 17:01 < bridge_> -- * SDL2 not found 17:01 < bridge_> -- * SQLite3 not found 17:01 < bridge_> -- * Wavpack not found (using bundled version) 17:02 < bridge_> the error says that it can't find the libs but they were created and are in the ddnet-libs folder in the root directory 17:18 < ws-client> how does your ddnet-libs look like, e.g. for ogg 17:21 < bridge_> I dunno if u should delete ddnet-libs. I could imagine header files are not copied 17:36 < bridge_> yea i overread that you need to merge both of the ddnet-libs... but there is one more problem over and this is sqlite 17:36 < bridge_> i rebuild the ddnet-libs after i installed mariadbclient 17:36 < bridge_> but i still get here the error that sqlite3 -> no such file or directory 17:37 < bridge_> ``` 17:37 < bridge_> 99%] Building C object CMakeFiles/opus.dir/silk/float/pitch_analysis_core_FLP.c.o 17:37 < bridge_> [100%] Linking C static library libopus.a 17:37 < bridge_> [100%] Built target opus 17:37 < bridge_> Cloning into 'opusfile'... 17:37 < bridge_> remote: Enumerating objects: 2157, done. 17:37 < bridge_> remote: Counting objects: 100% (227/227), done. 17:37 < bridge_> remote: Compressing objects: 100% (83/83), done. 17:37 < bridge_> remote: Total 2157 (delta 115), reused 221 (delta 112), pack-reused 1930 17:37 < bridge_> Receiving objects: 100% (2157/2157), 936.67 KiB | 16.15 MiB/s, done. 17:37 < bridge_> Resolving deltas: 100% (1316/1316), done. 17:37 < bridge_> Updating build configuration files for opusfile, please wait.... 17:37 < bridge_> ./autogen.sh: 10: autoreconf: not found 17:37 < bridge_> find: ‘/root/Android/Sdk/ndk’: No such file or directory 17:37 < bridge_> /usr/bin/llvm-ar-13: warning: creating libopusfile.a 17:37 < bridge_> --2023-07-19 17:31:52-- https://www.sqlite.org/2021/sqlite-amalgamation-3360000.zip 17:37 < bridge_> Resolving www.sqlite.org (www.sqlite.org)... 2600:3c00::f03c:91ff:fe96:b959, 45.33.6.223 17:37 < bridge_> Connecting to www.sqlite.org (www.sqlite.org)|2600:3c00::f03c:91ff:fe96:b959|:443... connected. 17:37 < bridge_> HTTP request sent, awaiting response... 200 OK 17:37 < bridge_> Length: 2477662 (2,4M) [application/zip] 17:37 < bridge_> Saving to: ‘sqlite-amalgamation-3360000.zip’ 17:37 < bridge_> 17:37 < bridge_> sqlite-amalgamation-33600 100%[===================================>] 2,36M 2,61MB/s in 0,9s 17:37 < bridge_> 17:37 < bridge_> 2023-07-19 17:31:54 (2,61 MB/s) - ‘sqlite-amalgamation-3360000.zip’ saved [2477662/2477662] 17:37 < bridge_> 17:37 < bridge_> scripts/compile_libs/gen_libs.sh: line 114: 7z: command not found 17:38 < bridge_> scripts/compile_libs/gen_libs.sh: line 118: cd: sqlite3: No such file or directory 17:38 < bridge_> mkdir: cannot create directory ‘ddnet-libs’: File exists 17:38 < bridge_> mkdir: cannot create directory ‘ddnet-libs’: File exists 17:38 < bridge_> cp: cannot stat 'compile_libs/sdl/build_webasm_wasm/libSDL2.a': No such file or directory 17:38 < bridge_> btw im using ubunutu :feelsscary: 17:38 < bridge_> yea i overread that you need to merge both of the ddnet-libs... but there is one more problem over and this is sqlite 17:38 < bridge_> i rebuild the ddnet-libs after i installed mariadbclient 17:38 < bridge_> but i still get here the error that sqlite3 -> no such file or directory amd its the only small folder in it with 12k 17:38 < bridge_> rest over or close to 1m 17:47 < bridge_> well sdl2 thing is clear why it fails 17:47 < bridge_> sqlite3 is weird 17:47 < bridge_> ah 17:47 < bridge_> u dont have 7zip installed 17:48 < bridge_> for sdl2 u have to modify the script and pin a current sdl2 version 17:48 < bridge_> or rename libsdl3.a to libsdl2.a manually ^^ 17:48 < bridge_> no idea if that will work with different headers tho xD 17:52 < bridge_> let me test it 🙂 17:58 < bridge_> ```bash 17:59 < bridge_> function build_cmake_lib() { 17:59 < bridge_> if [ ! -d "${1}" ]; then 17:59 < bridge_> git clone "${2}" "${1}" 17:59 < bridge_> fi 17:59 < bridge_> 17:59 < bridge_> # THIS IS NEW 17:59 < bridge_> if [[ "${1}" == "sdl" ]]; then 17:59 < bridge_> git checkout release-2.28.1 17:59 < bridge_> fi 17:59 < bridge_> ( 17:59 < bridge_> cd "${1}" || exit 1 17:59 < bridge_> cp "${CURDIR}"/scripts/compile_libs/cmake_lib_compile.sh cmake_lib_compile.sh 17:59 < bridge_> ./cmake_lib_compile.sh "$_ANDROID_ABI_LEVEL" "$OS_NAME" "$COMPILEFLAGS" "$LINKFLAGS" 17:59 < bridge_> ) 17:59 < bridge_> } 17:59 < bridge_> ``` 17:59 < bridge_> 17:59 < bridge_> in gen_libs.sh 17:59 < bridge_> for sdl checkout a 2.x tag 17:59 < bridge_> if tags are not auto downloaded with your git, you can try `release-2.28.x` 18:00 < bridge_> i dont need sdl like i only need DDNet-Server 18:10 < bridge_> oh ok 18:11 < bridge_> why do u want to compile the server to WASM? 18:11 < bridge_> i hope you are aware that WASM over a browser does not offer UDP in any kind 18:11 < bridge_> and i am not sure if u can host a websocket server either 18:17 < bridge_> mhh. haven't thought about it yet but when you say it like that it sounds logical with the udp. @teero777 and I had played around a bit and built a ui with some info for fun and wanted to see if we could get that with wasm in the browser. 18:18 < bridge_> btw it failed near finish xD 18:18 < bridge_> ``` 18:18 < bridge_> root@dkLinux:/home/dk/ddnet/ddnet/build# make -j8 DDNet-Server 18:18 < bridge_> [ 0%] Built target json 18:18 < bridge_> [ 0%] Generating wasm32-unknown-emscripten/release/libddnet_engine_shared.a 18:18 < bridge_> [ 2%] Built target rust-bridge-shared 18:18 < bridge_> [ 13%] Built target game-shared 18:18 < bridge_> [ 63%] Built target engine-shared 18:18 < bridge_> Compiling link-cplusplus v1.0.6 18:18 < bridge_> Compiling ddnet-test v0.0.1 (/home/dk/ddnet/ddnet/src/rust-bridge/test) 18:18 < bridge_> Compiling ddnet-engine-shared v0.0.1 (/home/dk/ddnet/ddnet/src/engine/shared) 18:18 < bridge_> error[E0463]: can't find crate for `core` 18:18 < bridge_> | 18:18 < bridge_> = note: the `wasm32-unknown-emscripten` target may not be installed 18:18 < bridge_> = help: consider downloading the target with `rustup target add wasm32-unknown-emscripten` 18:18 < bridge_> 18:18 < bridge_> error[E0463]: can't find crate for `compiler_builtins` 18:18 < bridge_> 18:18 < bridge_> For more information about this error, try `rustc --explain E0463`. 18:18 < bridge_> error: could not compile `link-cplusplus` due to 2 previous errors 18:18 < bridge_> warning: build failed, waiting for other jobs to finish... 18:18 < bridge_> error[E0463]: can't find crate for `std` 18:19 < bridge_> | 18:19 < bridge_> = note: the `wasm32-unknown-emscripten` target may not be installed 18:19 < bridge_> = help: consider downloading the target with `rustup target add wasm32-unknown-emscripten` 18:19 < bridge_> 18:19 < bridge_> error: could not compile `ddnet-test` due to previous error 18:19 < bridge_> make[3]: *** [CMakeFiles/rust_engine_shared_target.dir/build.make:86: wasm32-unknown-emscripten/release/libddnet_engine_shared.a] Error 101 18:19 < bridge_> make[2]: *** [CMakeFiles/Makefile2:232: CMakeFiles/rust_engine_shared_target.dir/all] Error 2 18:19 < bridge_> make[1]: *** [CMakeFiles/Makefile2:373: CMakeFiles/DDNet-Server.dir/rule] Error 2 18:19 < bridge_> make: *** [Makefile:319: DDNet-Server] Error 2 18:19 < bridge_> btw it failed near finish xD 18:19 < bridge_> ``` 18:19 < bridge_> root@dkLinux:/home/dk/ddnet/ddnet/build# make -j8 DDNet-Server 18:19 < bridge_> [ 0%] Built target json 18:19 < bridge_> [ 0%] Generating wasm32-unknown-emscripten/release/libddnet_engine_shared.a 18:19 < bridge_> [ 2%] Built target rust-bridge-shared 18:19 < bridge_> [ 13%] Built target game-shared 18:19 < bridge_> [ 63%] Built target engine-shared 18:19 < bridge_> Compiling link-cplusplus v1.0.6 18:19 < bridge_> Compiling ddnet-test v0.0.1 (/home/dk/ddnet/ddnet/src/rust-bridge/test) 18:19 < bridge_> Compiling ddnet-engine-shared v0.0.1 (/home/dk/ddnet/ddnet/src/engine/shared) 18:19 < bridge_> error[E0463]: can't find crate for `core` 18:19 < bridge_> | 18:19 < bridge_> = note: the `wasm32-unknown-emscripten` target may not be installed 18:19 < bridge_> = help: consider downloading the target with `rustup target add wasm32-unknown-emscripten` 18:19 < bridge_> 18:19 < bridge_> error[E0463]: can't find crate for `compiler_builtins` 18:19 < bridge_> 18:19 < bridge_> For more information about this error, try `rustc --explain E0463`. 18:19 < bridge_> error: could not compile `link-cplusplus` due to 2 previous errors 18:20 < bridge_> warning: build failed, waiting for other jobs to finish... 18:20 < bridge_> error[E0463]: can't find crate for `std` 18:20 < bridge_> | 18:20 < bridge_> = note: the `wasm32-unknown-emscripten` target may not be installed 18:20 < bridge_> = help: consider downloading the target with `rustup target add wasm32-unknown-emscripten` 18:20 < bridge_> 18:20 < bridge_> error: could not compile `ddnet-test` due to previous error 18:21 < bridge_> See the rust up warning 18:22 < bridge_> yea i already installed everything 18:22 < bridge_> you know how to disable ddnet-test to compile? 18:23 < bridge_> yea i already installed everything 18:23 < bridge_> ``` 18:23 < bridge_> oot@dkLinux:/home/dk/ddnet/ddnet/build# rustup target add wasm32-unknown-emscripten 18:23 < bridge_> info: component 'rust-std' for target 'wasm32-unknown-emscripten' is up to date 18:23 < bridge_> ``` 18:23 < bridge_> you know how to disable ddnet-test to compile? 18:25 < bridge_> what ddnet-test? xd 18:26 < bridge_> ah its client component 18:26 < bridge_> ah its rust component 18:26 < bridge_> what's wrong with it? 18:39 < bridge_> let me try to build current ddnet with wasm 18:39 < bridge_> havent done that in a while 18:54 < bridge_> yeah dunno got harder xdd 19:33 < bridge_> This was painful but i got it to work mostly by trial and error 19:33 < bridge_> ```C++ 19:33 < bridge_> float TopLeftX, TopLeftY, BottomRightX, BottomRightY; 19:33 < bridge_> Graphics()->GetScreen(&TopLeftX, &TopLeftY, &BottomRightX, &BottomRightY); 19:33 < bridge_> float FakeHeightFactor = Graphics()->ScreenHeight() / (BottomRightY - TopLeftY); 19:33 < bridge_> return UI()->MouseDeltaY() / FakeHeightFactor / View.h; 19:33 < bridge_> ``` 19:35 < bridge_> 😂 is there a point where it fails? 19:37 < bridge_> i cant even compile openssl anymore 19:48 < ws-client> jopsit 19:48 < ws-client> i "fixed" text selection xd 19:48 < ws-client> you need to click on da new cogwheel and disable emoji_picker and then reload page 19:48 < ws-client> https://zillyhuhn.com/cs/.1689788937.png 19:55 < bridge_> Good job ChillerDragon3. 19:56 < ChillerDragon> xd 20:04 < bridge_> An interrupted pacman -Syu killed my boot parition somehow 20:04 < bridge_> How can I make a master server and add my list server on the client in a section that I added? 20:04 < bridge_> ouch 20:05 < bridge_> I searched on the internet but did not find any results 20:10 < bridge_> I wonder how it could even happen I had my /boot mounted ro 20:15 < ChillerDragon> F lerato 20:16 < ChillerDragon> you back in? 20:16 < ChillerDragon> got a usb stick? 20:16 < ChillerDragon> how can pacman do kernel updates if /boot is ro? 20:18 < ChillerDragon> @shahriar_ghanbari making a master server i understood the second part i did not understand what do you mean by adding a list server on the client? you mean make your client talk to your master server instead of ddnet master server? 20:19 < ChillerDragon> this is how you create a master server https://github.com/ddnet/ddnet/tree/master/src/mastersrv 20:19 < ChillerDragon> https://github.com/ddnet/ddnet/blob/946f792add791c9377e06ef8b85dd1fd3e5bb1eb/src/engine/client/serverbrowser_http.cpp#L493-L498 20:20 < ChillerDragon> and those lines in the client pick the master it talks to here you can add your own 20:40 < bridge_> Thank you very much for your help 20:40 < bridge_> It was meant to show my own servers in the section I added "my server" 20:40 < bridge_> https://cdn.discordapp.com/attachments/293493549758939136/1131294451977961492/Screenshot_2023-07-19_220806.png 20:53 < ChillerDragon> idk the way i understand the code is it is looking for "servers-kog" in the servers.json served by the master but i dont see it in there :shrug: 20:53 < ChillerDragon> https://github.com/ddnet/ddnet/commit/11fee99b9cf42f9236c5108372d6eb6013116cda#diff-64f65b9589678af8ccfe6558a3ea6712dff9e74becd3d0e22fcac74758546776R1053 20:54 < ChillerDragon> https://zillyhuhn.com/cs/.1689792880.png 20:54 < bridge_> Don't run out of battery while doing a `pacman -Syu` if you value your sanity 20:54 < ChillerDragon> ok will do thanks for the research lerato 20:54 < bridge_> Had to boot with a live usb, chroot in and reinstall just every package because it was so broken 20:54 < ChillerDragon> average archlinux moment 20:55 < bridge_> idk how it managed to delete my kernel, it wouldn't remount it rw just on it's own right? 😄 21:00 < ChillerDragon> https://zillyhuhn.com/cs/.1689793238.png 21:00 < ChillerDragon> a its in here 21:00 < ChillerDragon> thats not the master server is it? 21:00 < ChillerDragon> is info.ddnet.org open source? 21:02 < bridge_> it's just a served json file iirc 21:02 < bridge_> don't remember what generates it 21:03 < ChillerDragon> @shahriar_ghanbari idk what you are building but i wouldnt setup a master server only for that tab :D just hardcode it in the client the list of servers you want to add there 21:03 < ChillerDragon> if you want it to update then do it like ddnet 21:03 < ChillerDragon> serve a json 21:05 < ChillerDragon> put your custom url here https://github.com/ddnet/ddnet/blob/946f792add791c9377e06ef8b85dd1fd3e5bb1eb/src/engine/client/client.cpp#L4906 21:05 < ChillerDragon> https://info.ddnet.org/info 21:05 < ChillerDragon> should spit out json in that format 21:05 < ChillerDragon> and replace the server-kog entries 21:05 < ChillerDragon> https://github.com/ddnet/ddnet/commit/11fee99b9cf42f9236c5108372d6eb6013116cda#diff-64f65b9589678af8ccfe6558a3ea6712dff9e74becd3d0e22fcac74758546776R1053 and then also edit this line 21:06 < ChillerDragon> no need for a master server 21:23 < bridge_> wtf, how you did this? numbers are overflowing on the left 21:32 < bridge_> <_voxeldoesart> https://cdn.discordapp.com/attachments/293493549758939136/1131307646780190821/Screenshot_20230705_004428_Discord.jpg 21:32 < bridge_> <_voxeldoesart> cyber did it first 21:33 < bridge_> link? 21:33 < bridge_> <_voxeldoesart> 1234. test lol 21:33 < bridge_> <_voxeldoesart> ITS A MARKDOWN BUG LOL 21:33 < bridge_> <_voxeldoesart> ```1234. test lol``` 21:35 < bridge_> <_voxeldoesart> https://discord.com/channels/252358080522747904/342454474117218334/1125927301104816188 21:35 < bridge_> is ur game blushing or wut 21:36 < bridge_> lol, i cant even select the numbers 21:36 < bridge_> 2023. shitty or good year ? 21:36 < bridge_> ah 😄 21:37 < bridge_> 999999999. wtf is that thingy 22:12 < bridge_> 15. bkfl 22:26 < bridge_> wtf xD 22:38 < bridge_> you can only do that for your own client, not for other people's 22:39 < bridge_> datasette is oficially only on db.ddstats.org now 22:39 < bridge_> i started working on the other thing xd 22:39 < bridge_> 1 hour poc https://ddstats.org/ 22:39 < bridge_> im bad at design 22:40 < bridge_> something funny i found 22:40 < bridge_> some servers dont evenn list a clients [] array 22:40 < bridge_> at all 22:41 < bridge_> weird 22:41 < bridge_> which servers are those? 22:41 < bridge_> I think the client will reject them 22:41 < bridge_> yeah but the master not 22:41 < bridge_> i dont know rn, i didnt specifically save em, i just found i had to filter for that too 22:41 < bridge_> the master doesn't but who puts up servers that the client doesn't list? 22:42 < bridge_> 22:43 < bridge_> I think I'd prefer if each server entry didn't have a lot of different colors 22:44 < bridge_> yeah i mostly copied the design from another web i have 22:44 < bridge_> its just work i did in 1 hour 22:44 < bridge_> i dont like the cyan color on this 22:45 < bridge_> also the page is massive xD 22:51 < bridge_> https://tenor.com/view/p-diddy-money-dollars-cash-rich-gif-3555043 23:20 < bridge_> DDNet Turkey 23:20 < bridge_> 4 / 4 € (sponsored by Learath2) 23:21 < bridge_> very generous 😄 23:21 < bridge_> where the hell did you find a 4€ server ? 23:30 < bridge_> 4 for the year? 23:46 < bridge_> in Turkey presumably 🦃