00:00 <+bridge> [ddnet] some messages are only displayed with the debug hud active [CTR + SHIFT + D] 00:10 <+bridge> [ddnet] what version are you on? 00:11 <+bridge> [ddnet] But `./DDNet "debug 1"` might help 00:17 <+bridge> [ddnet] master branch from yesterday or few days ago. using `debug 1` gave me a few `[uuid]` tagged logs with api calls or something 01:55 <+bridge> [ddnet] well okay @Patiga my friend didn't have much to say and maybe their opinion has changed a bit but 01:55 <+bridge> [ddnet] 01:55 <+bridge> [ddnet] - matrix has vastly more heavy metadata handling through the server protocol compared to XMPP, which is a performance concern 01:55 <+bridge> [ddnet] - as a protocol it's generally "heavier" than XMPP (didn't specify) 01:55 <+bridge> [ddnet] - still better than Discord, and easier to onboard compared to XMPP 01:55 <+bridge> [ddnet] - maybe XMPP is technically better but it lacks hype and devs 01:55 <+bridge> [ddnet] and the last sentiment they had was basically just 01:55 <+bridge> [ddnet] it exists, it's e2ee, and it's federated 01:55 <+bridge> [ddnet] so not much to complain about for now while it's the only reasonable one 01:57 <+bridge> [ddnet] i really like XMPP so im sad to see the last ambassador for it in my life kinda raise Matrix's hand in defeat 01:57 <+bridge> [ddnet] but hey that's life right 01:57 <+bridge> [ddnet] a new shiny protocol comes along and devs are like YOOOOO 01:58 <+bridge> [ddnet] thanks for checking up on it again! 01:59 <+bridge> [ddnet] I can understand that you like XMPP and are maybe not that hyped about Matrix 02:00 <+bridge> [ddnet] but nice that we agree that it does its job, is nicely federated and e2ee (although that last thing took a while) 02:00 <+bridge> [ddnet] it surely also does some things differently, no? 02:01 <+bridge> [ddnet] which XMPP client are you using @lynn? :) 02:04 <+bridge> [ddnet] i only use Conversations 02:04 <+bridge> [ddnet] i don't actually use a desktop client 02:04 <+bridge> [ddnet] they are all terrible imo 02:04 <+bridge> [ddnet] ow ^^ 02:04 <+bridge> [ddnet] unless Dino has Windows support suddenly 02:05 <+bridge> [ddnet] Dino gud? 02:05 <+bridge> [ddnet] yea this part is my biggest complaint i guess. some things are awkward in the protocol compared to XMPP 02:05 <+bridge> [ddnet] i actually think XMPP is closer to Discord than Matrix 02:05 <+bridge> [ddnet] if a client was actually shaped to be used like that 02:06 <+bridge> [ddnet] supposedly 02:06 <+bridge> [ddnet] for linux 02:06 <+bridge> [ddnet] it may also be for Mac because haha unix 02:06 <+bridge> [ddnet] just no one made a really good client for XMPP. it's a shame 02:06 <+bridge> [ddnet] or somehow no one advertises the best one and i never accidentally found it myself 02:09 <+bridge> [ddnet] try Dino 02:10 <+bridge> [ddnet] is not good, but also not bad 02:10 <+bridge> [ddnet] ow 02:12 <+bridge> [ddnet] Dino is written in Vala with strong GTK binding... so I think there will be no support at any time 😄 02:14 <+bridge> [ddnet] Mh but there seems to be a ValaOnWindows project... 02:14 <+bridge> [ddnet] can't you even run xorg guis with wsl on windows 11... 02:16 <+bridge> [ddnet] just use linux 😗 02:17 <+bridge> [ddnet] or use a matrix bridge xD and use an matrix client 02:17 <+bridge> [ddnet] i'm using it... - on my phone xd 02:17 <+bridge> [ddnet] or use a matrix bridge xD and use a matrix client 02:19 <+bridge> [ddnet] I once wanted to port the signal client to xmpp, to have a nicer GUI. But I had given up advertising XMPP, and also on programming for XMPP, years ago. 02:42 <+bridge> [ddnet] when does the pr "improvements for new hud" will get merged? 03:02 <+bridge> [ddnet] i will move to Linux if vseeface gets a Linux release :P 03:02 <+bridge> [ddnet] until then no can do 03:56 <+bridge> [ddnet] okay hear me out 03:56 <+bridge> [ddnet] if people dont want color settings for PSA/scoreboard 03:56 <+bridge> [ddnet] at least respect the UI color 03:56 <+bridge> [ddnet] for it 03:56 <+bridge> [ddnet] so if i set a UI color, put that for scoreboard and PSA tooltip 04:06 <+bridge> [ddnet] uhh kinda need help with something 04:06 <+bridge> [ddnet] how can i use an FTP client if im using key-only SSH config? 04:07 <+bridge> [ddnet] is there a way i can use my privkey with Filezilla 04:27 <+bridge> [ddnet] PSA? 04:27 <+bridge> [ddnet] again those acronyms... 04:28 <+bridge> [ddnet] public service announcement? 04:28 <+bridge> [ddnet] you mean broadcast? 05:11 <+bridge> [ddnet] @lynn ^ 05:11 <+bridge> [ddnet] lmao. people were using these acronyms in this chat before me 05:11 <+bridge> [ddnet] position-speed-angle 05:11 <+bridge> [ddnet] i guess now it's most like position-speed 06:16 <+bridge> [ddnet] Just discovered SchildiChat @Patiga 06:16 <+bridge> [ddnet] way better than Element imo 08:40 <+bridge> [ddnet] filezilla sux 09:19 <+bridge> [ddnet] yes 09:19 <+bridge> [ddnet] but it works now 09:19 <+bridge> [ddnet] i found the key options 09:53 <+bridge> [ddnet] https://www.reddit.com/r/ProgrammerHumor/comments/vinh1r/even_babies_fear_fuing_sql/ 09:56 <+bridge> [ddnet] hey, anyone got lldb working on an m1? 10:21 <+bridge> [ddnet] yes 10:24 <+bridge> [ddnet] can u send ```whereis lldb && lldb --version``` output please? 10:26 <+bridge> [ddnet] ``` 10:26 <+bridge> [ddnet] lldb: /usr/bin/lldb /Library/Developer/CommandLineTools/usr/share/man/man1/lldb.1 10:26 <+bridge> [ddnet] lldb-1316.0.9.46 10:26 <+bridge> [ddnet] Apple Swift version 5.6.1 (swiftlang-5.6.0.323.66 clang-1316.0.20.12) 10:27 <+bridge> [ddnet] ``` 10:27 <+bridge> [ddnet] yeah thanks, that's what I thought, i'll try to get the last version of lldb 10:51 <+bridge> [ddnet] yay it worked thanks 😄 11:25 <+bridge> [ddnet] when I play the dummy map skychase with ddnet-libs cloned it doesn't have deepfly enabled, whereas the official one has. how is that? 11:25 <+bridge> [ddnet] when I play the dummy map skychase locally with ddnet-libs cloned it doesn't have deepfly enabled, whereas the official one has. how is that? 11:27 <+bridge> [ddnet] i enable it manually with sv_deepfly 1 11:44 <+bridge> [ddnet] As soon as I have fixed all requests 11:46 <+bridge> [ddnet] What do you think is faster/better? 11:46 <+bridge> [ddnet] the switch or the array access 11:46 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/989466460835438622/unknown.png 11:46 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/989466461187739678/unknown.png 11:46 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/989466461594591232/unknown.png 11:48 <+bridge> [ddnet] i think the switch may be faster 11:49 <+bridge> [ddnet] since its an immutable thing, the array might be mutated and the compiler may not optimize it or smth 11:49 <+bridge> [ddnet] but im just talking out of my ass xd 11:49 <+bridge> [ddnet] the constant array probably optimizes better 11:49 <+bridge> [ddnet] :O 11:49 <+bridge> [ddnet] but is it constant? 11:50 <+bridge> [ddnet] yes 11:50 <+bridge> [ddnet] I only did not add const 11:50 <+bridge> [ddnet] ah ok 11:50 <+bridge> [ddnet] why does it return 16 for NETOBJTYPE_EX? 11:50 <+bridge> [ddnet] It is the size of our Net Objects... they are constant 11:50 <+bridge> [ddnet] for UUIDs 11:50 <+bridge> [ddnet] they are stored in the snapshot 11:51 <+bridge> [ddnet] with type = 0 11:51 <+bridge> [ddnet] are they? 11:52 <+bridge> [ddnet] ah yeah 11:52 <+bridge> [ddnet] xD yes I researched the whole snapshot system ^^ And you made the UUID think you should know it 11:52 <+bridge> [ddnet] but it's none of the game code's business, I think 11:53 <+bridge> [ddnet] it looks like an implementation detail, not something the game code should interact wtih 11:53 <+bridge> [ddnet] did u write ur research down? 11:53 <+bridge> [ddnet] xD no 11:53 <+bridge> [ddnet] sadge 11:53 <+bridge> [ddnet] https://github.com/heinrich5991/libtw2/blob/c67bb33d7f2dc5bd78ea8238ec6119b754c13da3/doc/snapshot.md 11:53 <+bridge> [ddnet] add stuff there if you have some 11:53 <+bridge> [ddnet] ohh 11:53 <+bridge> [ddnet] (always document stuff when you research it) 11:54 <+bridge> [ddnet] that is only basic details xD not enough to understand the whole thing 11:55 <+bridge> [ddnet] we could add documentation to the code in future 11:55 <+bridge> [ddnet] usefull comments xD 11:55 <+bridge> [ddnet] no, you could add documentation to the document above now 😉 11:55 <+bridge> [ddnet] "in the future" is never 11:56 <+bridge> [ddnet] (I wrote that document while re-implementing snapshots in rust, and I know of one other person who used that document 🙂 ) 11:56 <+bridge> [ddnet] xD yes I readed it too, it is a good starting point 11:56 <+bridge> [ddnet] xD yes I read it too, it is a good starting point 11:57 <+bridge> [ddnet] so what now... switch or array access. I think the switch looks more clean, but in the end it is only a generated file... 11:57 <+bridge> [ddnet] did u need unsafe code? 11:58 <+bridge> [ddnet] What are you making? 11:58 <+bridge> [ddnet] clean up of https://github.com/ddnet/ddnet/pull/5210 11:59 <+bridge> [ddnet] array is probably smaller and thus faster 12:00 <+bridge> [ddnet] array is probably smaller and thus also faster 12:00 <+bridge> [ddnet] is it rly? 12:00 <+bridge> [ddnet] But the switch could get inlined at places where a constant is passed to it 12:00 <+bridge> [ddnet] i would have always believed more "static" code can get optimized better 12:00 <+bridge> [ddnet] but the constant array access not? @Learath2 12:00 <+bridge> [ddnet] But I need to do one extra condition... 12:00 <+bridge> [ddnet] @Ryozuki the problem is that it likely generates a jump table 12:01 <+bridge> [ddnet] @c0d3d3v the switch is an indirect jump, much worse than an always correctly predicted branch 12:01 <+bridge> [ddnet] ok 12:01 <+bridge> [ddnet] can u put it on godbolt? 12:01 <+bridge> [ddnet] xD 12:01 <+bridge> [ddnet] Hm, I'm not sure actually. It should if the array is constexpr atleast 12:02 <+bridge> [ddnet] oh yeah 12:02 <+bridge> [ddnet] constexpr everything 12:02 <+bridge> [ddnet] no constants get passed to it. I use it to get the correct size for malloc 12:02 <+bridge> [ddnet] mem_copy** 12:02 <+bridge> [ddnet] no constants get passed to it. I use it to get the correct size for 12:03 <+bridge> [ddnet] okay, gcc and clang manage to compile the switch to an array 12:04 <+bridge> [ddnet] msvc fails to do so 12:04 <+bridge> [ddnet] smh microsoft 12:04 <+bridge> [ddnet] ☕ 12:06 <+bridge> [ddnet] Yeah the array is better. I though switch might inline better but it's not even a concern when you never oass anything constant 12:08 <+bridge> [ddnet] I wonder if you could get rid of the branch aswell, it's one where branch prediction should do fairly well, but still 12:08 <+bridge> [ddnet] https://godbolt.org/z/jrqfobvYY 12:08 <+bridge> [ddnet] fairly well = always correctly predicted 12:09 <+bridge> [ddnet] sounds negligible (except for the extra branch in the branch predictor) 12:09 <+bridge> [ddnet] the test says that both functions inline fine, even with just `const` (why would `const` not suffice?) 12:09 <+bridge> [ddnet] normal objects go from 0-23 and Ex Objects from 65456 somthing to ... 12 more 12:10 <+bridge> [ddnet] (except on msvc, where nothing inlines and the switch isn't optimized to an array) 12:10 <+bridge> [ddnet] normal objects go from 0-23 and Ex Objects from 65456 somthing to ... 9 more 12:10 <+bridge> [ddnet] if you talk about "in the snapshot", then the ex objects don't really have fixed type IDs 12:10 <+bridge> [ddnet] I just didn't know the rules there, I knew the constexpr variant inlines from an earlier tesst 12:10 <+bridge> [ddnet] they're dynamically assigned by the server 12:11 <+bridge> [ddnet] type is always 0 and id is the type of the ex obj in the snapshot from the server 12:11 <+bridge> [ddnet] yes, that's the lookup table the client can use 12:11 <+bridge> [ddnet] and 16 byte of the uuid of that ex type 12:11 <+bridge> [ddnet] to correlate the high snapshot type IDs with the UUIDs 12:11 <+bridge> [ddnet] exactly 12:12 <+bridge> [ddnet] I remember wanting to optimize that for some reason. Did we have a profiling bottleneck in that lookup? 12:12 <+bridge> [ddnet] Did profiling reveal a bottleneck in that lookup?* 12:12 <+bridge> [ddnet] there was a bottleneck 12:13 <+bridge> [ddnet] I fixed it for the real-world at that time 12:13 <+bridge> [ddnet] it can be improved 12:13 <+bridge> [ddnet] what do you use for profiling 12:13 <+bridge> [ddnet] Perf, gprof and callgrind are all useful. I mostly use the first and the third 12:14 <+bridge> [ddnet] the lookup table is always at the beginning of the snapshot. So it should not be to bad, but if an unknow uuid is in that snapshot, it will try to go through the whole snapshot 12:15 <+bridge> [ddnet] Do you remember the issue or the fix? 12:15 <+bridge> [ddnet] yea, I changed iteration order 12:15 <+bridge> [ddnet] let me check 12:16 <+bridge> [ddnet] heh, 4321: https://github.com/ddnet/ddnet/pull/4321 12:18 <+bridge> [ddnet] Thanks 12:20 <+bridge> [ddnet] One day I want to try an unordered map for this 12:23 <+bridge> [ddnet] would be nice to have benchmarks to see if an unordered map is faster than the linear search 12:26 <+bridge> [ddnet] isnt c++ std unordered map rly bad perf wise 12:27 <+bridge> [ddnet] https://news.ycombinator.com/item?id=31801814 12:27 <+bridge> [ddnet] It's not the best, but its not awful either 12:27 <+bridge> [ddnet] > The fact that the STL api leaks these kind of implementation details is such a shame. Multiplied globally over all users of unordered_map, the amount of CPU time that has been wasted because of that decision boggles the mind. Has to be one of the biggest library design blunders in the history of the industry (up there with C strings being null-terminated). They should just add a new map to the standard with a better API. 12:27 <+bridge> [ddnet] xD 12:27 <+bridge> [ddnet] I'd probably use another implementation of unordered map since this'd be in the critical path 12:29 <+bridge> [ddnet] https://abseil.io/about/design/swisstables 12:29 <+bridge> [ddnet] https://github.com/google/cwisstable 12:29 <+bridge> [ddnet] we can use this 12:31 <+bridge> [ddnet] i wonder if u can use only parts of absel 12:31 <+bridge> [ddnet] Is there a single header C++ version? 12:31 <+bridge> [ddnet] its the absel itself i guess 12:32 <+bridge> [ddnet] https://abseil.io/docs/cpp/quickstart-cmake 12:32 <+bridge> [ddnet] Rest of abseil seems mostly useless for us :P 12:32 <+bridge> [ddnet] yeah thats why 12:35 <+bridge> [ddnet] xD I just thought I know now nearly all about out snapshot system. And now I tested demos and wondered how there the lookup is done there, because I see no lookup table in the snapshot xD 12:35 <+bridge> [ddnet] xD I just thought I know now nearly all about out snapshot system. And now I tested demos and wondered how the lookup for Ex Obj Ids is done there, because I see no lookup table in the snapshot xD 12:35 <+bridge> [ddnet] I just thought I know now nearly all about out snapshot system. And now I tested demos and wondered how the lookup for Ex Obj Ids is done there, because I see no lookup table in the snapshot xD 12:36 <+bridge> [ddnet] rust ported that and uses it on the std btw 12:36 <+bridge> [ddnet] :BASED: 12:36 <+bridge> [ddnet] I just thought I know now nearly all about our snapshot system. And now I tested demos and wondered how the lookup for Ex Obj Ids is done there, because I see no lookup table in the snapshot xD 12:36 <+bridge> [ddnet] "A hash map implemented with quadratic probing and SIMD lookup." 12:37 <+bridge> [ddnet] c++ one doesnt do quadratic probing 12:37 <+bridge> [ddnet] it uses a clossed addressing scheme 12:37 <+bridge> [ddnet] old age 12:37 <+bridge> [ddnet] I wonder why they decided on changing it up 12:38 <+bridge> [ddnet] a quote from the article 12:38 <+bridge> [ddnet] > Back in the day, open-addressing approaches were not regarded as sufficiently mature, so closed addressing was taken as the safe implementation of choice. 12:42 <+bridge> [ddnet] Hm, but why wouldn't they upgrade it later? 12:44 <+bridge> [ddnet] I was lost, in demos not all snapshots are unpacked using delta unpack, thats why I have not seen the lookup table in the debug hud ^^ 12:46 <+bridge> [ddnet] one could just create the lookup table while validating the snapshot... and use that instead of looking it up every time accessing a snapshot item 12:48 <+bridge> [ddnet] https://youtu.be/ncHmEUmJZf4 good talk 13:16 <+bridge> [ddnet] xD does someone have an idea, why pylint crahses on 13:16 <+bridge> [ddnet] pylint just decided it has enough. Locally I get the same error. 13:17 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/989489342735077386/unknown.png 13:19 <+bridge> [ddnet] ``` 13:19 <+bridge> [ddnet] datasrc/compile.py:244:12: C0209: Formatting a regular string which could be a f-string (consider-using-f-string) 13:19 <+bridge> [ddnet] Exception on node in file '/home/daniel/Desktop/other_repos/ddnet_master/datasrc/compile.py' 13:19 <+bridge> [ddnet] Traceback (most recent call last): 13:19 <+bridge> [ddnet] 13:19 <+bridge> [ddnet] .... 13:19 <+bridge> [ddnet] 13:19 <+bridge> [ddnet] 13:19 <+bridge> [ddnet] RecursionError: maximum recursion depth exceeded 13:19 <+bridge> [ddnet] 13:19 <+bridge> [ddnet] The above exception was the direct cause of the following exception: 13:19 <+bridge> [ddnet] 13:19 <+bridge> [ddnet] Traceback (most recent call last): 13:19 <+bridge> [ddnet] File "/usr/lib/python3.10/site-packages/pylint/utils/ast_walker.py", line 90, in walk 13:19 <+bridge> [ddnet] callback(astroid) 13:19 <+bridge> [ddnet] File "/usr/lib/python3.10/site-packages/pylint/checkers/refactoring/recommendation_checker.py", line 172, in visit_for 13:19 <+bridge> [ddnet] self._check_consider_using_dict_items(node) 13:19 <+bridge> [ddnet] File "/usr/lib/python3.10/site-packages/pylint/checkers/refactoring/recommendation_checker.py", line 254, in _check_consider_using_dict_items 13:19 <+bridge> [ddnet] iterating_object_name = utils.get_iterating_dictionary_name(node) 13:19 <+bridge> [ddnet] File "/usr/lib/python3.10/site-packages/pylint/checkers/utils.py", line 1601, in get_iterating_dictionary_name 13:19 <+bridge> [ddnet] inferred = safe_infer(node.iter) 13:19 <+bridge> [ddnet] File "/usr/lib/python3.10/site-packages/pylint/checkers/utils.py", line 1262, in safe_infer 13:19 <+bridge> [ddnet] raise AstroidError from e 13:19 <+bridge> [ddnet] astroid.exceptions.AstroidError 13:19 <+bridge> [ddnet] datasrc/compile.py:1:0: F0002: datasrc/compile.py: Fatal error while checking 'datasrc/compile.py'. Please open an issue in our bug tracker so we address this. There is a pre-filled template that you can use in '/home/daniel/.cache/pylint/pylint-crash-2022-06-23-13.txt'. (astroid-error) 13:20 <+bridge> [ddnet] ``` 13:20 <+bridge> [ddnet] 13:20 <+bridge> [ddnet] It fails on line 296 13:20 <+bridge> [ddnet] I use RC3, there is something that can cause micro freezes or drop fps? 13:20 <+bridge> [ddnet] before my last force push it worked 😦 13:29 <+bridge> [ddnet] It seems to me, or is it my schizophrenia, that after choosing vulkan, the game feels a little different? 14:33 <+ChillerDragon> can we get an mod on 176.9.114.238:8322 pls? 14:33 <+ChillerDragon> ddnet://176.9.114.238:8322 is this clickable? xd 14:34 <+ChillerDragon> nvm fixed 14:37 <+bridge> [ddnet] ChillerDragon: still need help? 14:38 <+ChillerDragon> no sorry he left 14:39 <+bridge> [ddnet] I reported it now to pylint 14:39 <+bridge> [ddnet] 14:39 <+bridge> [ddnet] I feel really bad -.- it is probably a really bad python error 14:39 <+bridge> [ddnet] I reported it now to pylint 14:39 <+bridge> [ddnet] 14:39 <+bridge> [ddnet] I feel really bad -.- it is probably a really bad python error, because of wrong rebase 15:03 <+bridge> [ddnet] no worries, a linter should never crash, no matter how broken the code 15:07 <+bridge> [ddnet] https://devblogs.microsoft.com/oldnewthing/20140627-00/?p=633 17:32 <+bridge> [ddnet] is ready for review 😄 17:32 <+bridge> [ddnet] Since I refactored compile.py, I want point point out the following functions/elements are new/changed: 17:32 <+bridge> [ddnet] CNetObjHandler::ms_apExObjNames 17:32 <+bridge> [ddnet] CNetObjHandler::ms_aUnpackedObjSizes 17:32 <+bridge> [ddnet] CNetObjHandler::ms_aUnpackedExObjSizes 17:32 <+bridge> [ddnet] CNetObjHandler::ms_apExMsgNames 17:32 <+bridge> [ddnet] CNetObjHandler::GetUnpackedObjSize 17:32 <+bridge> [ddnet] CNetObjHandler::GetObjName 17:32 <+bridge> [ddnet] CNetObjHandler::GetMsgName 17:32 <+bridge> [ddnet] CNetObjHandler::SecureUnpackObj 17:32 <+bridge> [ddnet] 17:32 <+bridge> [ddnet] @heinrich5991 for NETOBJTYPE_EX the UUID I defined the unpacking kind of hardcoded instead of creating a NetObject for it. If you want I could make an NetObject for it instead. But the parsing would be none the less done manually here: https://github.com/C0D3D3V/ddnet/blob/1fd1976fc1c83e1c8a10c51f29a871841d82bd8a/src/engine/shared/snapshot.cpp#L45-L48 17:54 <+bridge> [ddnet] @deen how did this get merged into staging o.O https://github.com/ddnet/ddnet/commit/0fe58795c14231812a5b180778e93d1dc6268767 17:54 <+bridge> [ddnet] 17:54 <+bridge> [ddnet] I did change a bunch of his changes in https://github.com/ddnet/ddnet/pull/5420 17:54 <+bridge> [ddnet] @deen how did this get merged into staging o.O 17:54 <+bridge> [ddnet] 17:54 <+bridge> [ddnet] I did change a bunch of his changes in 17:56 <+bridge> [ddnet] what is staging even used for? 18:00 <+Konsti> can we make mapzones where you cannot go in with /practice mode enabled? xD Extra Rooms especially on solo maps lose their magic when u just can tp in 18:03 <+bridge> [ddnet] staging is what bors uses to check if the change still works on current master state 18:03 <+bridge> [ddnet] ah 18:05 <+bridge> [ddnet] https://googleprojectzero.blogspot.com/2022/06/curious-case-carrier-app.html 18:07 <+bridge> [ddnet] I will later this evening (or maybe tomorrow) work in the new textures from Ravie in 18:07 <+bridge> [ddnet] And make the requested changes. 18:07 <+bridge> [ddnet] @deen 18:07 <+bridge> [ddnet] Do we still want to stay with no stars for 16.2? And if a lot do complain, discuss options? (since there were some more comments added to this PR) 18:08 <+bridge> [ddnet] I will later this evening (or maybe tomorrow) work in the new textures from Ravie in 18:08 <+bridge> [ddnet] And make the requested changes. 18:08 <+bridge> [ddnet] @deen 18:08 <+bridge> [ddnet] Do we still want to stay with no stars for 16.2? And if a lot do complain, discuss options for 16.3? (since there were some more comments added to this PR) 18:14 <+bridge> [ddnet] I think 16.2 can serve well to test it. If there is really a big counter-response, we can react quickly with 16.3. 18:14 <+bridge> [ddnet] or 16.2.1 xD 18:30 <+bridge> [ddnet] 16.2-rc4 will be the test, 16.2 will be a regular release and stay for the usual 4-8 weeks 18:31 <+bridge> [ddnet] I think no stars is better 18:33 <+bridge> [ddnet] I personally think the freezebar feels cluttered, compared to the stars 18:34 <+bridge> [ddnet] Feels quite distracting 18:34 <+bridge> [ddnet] i can count to 3 in my head, real pro 18:35 <+bridge> [ddnet] I guess... 18:35 <+bridge> [ddnet] but yeah, if u dont provide a legacy option, someone will rage 18:35 <+bridge> [ddnet] like always xd 18:35 <+bridge> [ddnet] But you're acting like people don't get frozen off screen 18:36 <+bridge> [ddnet] dyncam 18:36 <+bridge> [ddnet] The nice thing about the stars, they disappear between ticks and are only visible for brief moments 18:36 <+bridge> [ddnet] Suggesting dyncam for ddrace is absurd. 18:37 <+bridge> [ddnet] xd 18:37 <+bridge> [ddnet] i played all fly maps with fulldync 18:37 <+bridge> [ddnet] i played all fly maps with fulldyn 18:37 <+bridge> [ddnet] good training 18:37 <+bridge> [ddnet] Dyncam shouldn't exist 18:37 <+bridge> [ddnet] LOL 18:37 <+bridge> [ddnet] usa nobo 18:38 <+bridge> [ddnet] Was a mistake that it was added, since it added unfair advantage to PVP modes, forcing people to use it. And it's inferior to zoom in ddrace, jarring and limited to play with. 18:38 <+bridge> [ddnet] Nobo 18:38 <+bridge> [ddnet] it was there since teewars existed xD 18:38 <+bridge> [ddnet] Yes I know 18:38 <+bridge> [ddnet] in fact it static was added xD 18:38 <+bridge> [ddnet] in fact static was added xD 18:38 <+bridge> [ddnet] I've been playing for 13 years :kek: 18:38 <+bridge> [ddnet] pro 18:39 <+bridge> [ddnet] Tragic that you can't undo mistakes that were added to the game to begin with 18:39 <+bridge> [ddnet] its the best feature for pvp 18:39 <+bridge> [ddnet] for ddrace its ofc useless 18:39 <+bridge> [ddnet] gores even more 18:40 <+bridge> [ddnet] And you still decided to suggest using dyncam in a ddrace discussion, interesting. 18:40 <+bridge> [ddnet] i know ppl that still use it XD 18:53 <+bridge> [ddnet] This 19:00 <+bridge> [ddnet] no one against the new hud but freezebar, meh 19:01 <+bridge> [ddnet] yes, always provide legacy option, else u feel the rage in ur neck xd 19:06 <+bridge> [ddnet] @nori now that u here 19:07 <+bridge> [ddnet] in input.cpp 19:07 <+bridge> [ddnet] there is 19:07 <+bridge> [ddnet] ```c++ 19:07 <+bridge> [ddnet] case SDL_QUIT: 19:07 <+bridge> [ddnet] return 1; 19:07 <+bridge> [ddnet] ``` 19:07 <+bridge> [ddnet] 19:07 <+bridge> [ddnet] can u replace it with 19:07 <+bridge> [ddnet] ```c++ 19:07 <+bridge> [ddnet] case SDL_QUIT: 19:07 <+bridge> [ddnet] { 19:07 <+bridge> [ddnet] dbg_msg("test", "sdl closed my client, but why xd"); 19:07 <+bridge> [ddnet] return 1; 19:07 <+bridge> [ddnet] } 19:07 <+bridge> [ddnet] ``` 19:07 <+bridge> [ddnet] 19:07 <+bridge> [ddnet] i really wonder wtf closes ur client 19:07 <+bridge> [ddnet] its the weirdest thing ever xd 19:08 <+bridge> [ddnet] :d ok i'll try 19:08 <+bridge> [ddnet] btw now that u here xd 19:08 <+bridge> [ddnet] where should i report this weird vulkan bug 19:08 <+bridge> [ddnet] this 19:09 <+bridge> [ddnet] sdl or mesa? 19:09 <+bridge> [ddnet] defs mesa 19:09 <+bridge> [ddnet] SDL is just for opening the window 19:09 <+bridge> [ddnet] okay 19:09 <+bridge> [ddnet] also vulkan uses much less SDL/WM stuff than e.g. opengl 19:09 <+bridge> [ddnet] that wrapps swapbuffer and stuff like that 19:09 <+bridge> [ddnet] but it happens when i force sdl to wayland so 19:10 <+bridge> [ddnet] yeah but its the wayland vulkan driver i'd say 19:10 <+bridge> [ddnet] or ur window manager struggles 19:10 <+bridge> [ddnet] bcs i dont have any problems on KDE wayland 19:10 <+bridge> [ddnet] i use sway 19:10 <+bridge> [ddnet] neither with GLES no vulkan 19:10 <+bridge> [ddnet] also tested mesa 22.2-devel 19:12 <+bridge> [ddnet] maybe it is sway related either? somehow tries to close window 19:13 <+bridge> [ddnet] possible 19:13 <+bridge> [ddnet] but what triggers it 19:13 <+bridge> [ddnet] since its not a force close 19:13 <+bridge> [ddnet] its a clean close, bbut yeah it might not be related to SDL directly 19:14 <+bridge> [ddnet] just the event SDL sees 19:25 <+bridge> [ddnet] The only thing that I prefer from the freeze bar, is that it doesn't show while frozen, unlike stars. 19:25 <+bridge> [ddnet] And I guess I get a more accurate timing of when they'll unfreezer 19:25 <+bridge> [ddnet] And I guess I get a more accurate timing of when they'll unfreeze 19:26 <+bridge> [ddnet] The visual clutter it brings isn't worth it though 19:26 <+bridge> [ddnet] ``` 19:26 <+bridge> [ddnet] [2022-06-23 20:26:31][test]: sdl closed my client, but why xd 19:27 <+bridge> [ddnet] [2022-06-23 20:26:31][client]: disconnecting. reason='unknown' 19:27 <+bridge> [ddnet] /home/arda/ddnet/src/game/client/prediction/gameworld.cpp:147:20: runtime error: member access within address 0x619001202a80 which does not point to an object of type 'CEntity' 19:27 <+bridge> [ddnet] ``` 19:27 <+bridge> [ddnet] @Not Keks 19:27 <+bridge> [ddnet] so its indeed the SDL event 19:28 <+bridge> [ddnet] @Not Keks hmm i reproducing it much more if i compile with asan, otherwise it is pretty random 19:28 <+bridge> [ddnet] just figured it out 19:29 <+bridge> [ddnet] a random guess is, the client/GPU is busy for too long and the OS sends a kill event 19:29 <+bridge> [ddnet] and it starts with a "clean" kill 19:29 <+bridge> [ddnet] terminate event 19:29 <+bridge> [ddnet] and after 4-5 seconds it would hard kill 19:29 <+bridge> [ddnet] and it shutdowns gracefully? 19:29 <+bridge> [ddnet] yeah 19:29 <+bridge> [ddnet] i mean it tries 19:29 <+bridge> [ddnet] yeah 19:30 <+bridge> [ddnet] when i join bit3 19:30 <+bridge> [ddnet] except that our code probably bugs around 19:30 <+bridge> [ddnet] https://github.com/libsdl-org/SDL/blob/5f6d0abebe3b5bbd6426ccf1f9b77b88a7f94b41/src/video/wayland/SDL_waylandevents.c#L379-L388 19:30 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/989583149946273832/unknown.png 19:30 <+bridge> [ddnet] it is frozen for like 5 secs 19:30 <+bridge> [ddnet] it is not like that on other maps 19:30 <+bridge> [ddnet] it instantly joins 19:30 <+bridge> [ddnet] it joins also a bit late on back in the sky but never had this 19:30 <+bridge> [ddnet] yeah the map is huge 19:30 <+bridge> [ddnet] building it takes a few seconds 19:33 <+bridge> [ddnet] wait 19:33 <+bridge> [ddnet] so if we get bit4, i would never be able to join xd 19:33 <+bridge> [ddnet] gimme a second 19:34 <+bridge> [ddnet] in maplayers.cpp 19:34 <+bridge> [ddnet] 19:34 <+bridge> [ddnet] can you add 19:34 <+bridge> [ddnet] 19:34 <+bridge> [ddnet] `Client()->UpdateAndSwap();` after line 866 19:34 <+bridge> [ddnet] 19:34 <+bridge> [ddnet] which says ` Graphics()->IndicesNumRequiredNotify(vtmpTiles.size() * 6);` 19:35 <+bridge> [ddnet] if that works i will just add it as soon as the client takes longer than 500ms, like other loading does now too 19:35 <+bridge> [ddnet] since this is indeed a problem generally 19:36 <+bridge> [ddnet] can't we speed up this xd 19:36 <+bridge> [ddnet] well without asan it probs doesnt take as long? 19:36 <+bridge> [ddnet] yeah maybe 19:36 <+bridge> [ddnet] so this is why it is more regularly 19:37 <+bridge> [ddnet] but still it takes 5-10 secs 19:37 <+bridge> [ddnet] and my pc is not old 19:38 <+bridge> [ddnet] i can't find it 19:38 <+bridge> [ddnet] ``` 19:38 <+bridge> [ddnet] grep -Ri "Client()->UpdateAndSwap()" 19:38 <+bridge> [ddnet] src/game/client/components/menus.cpp: Client()->UpdateAndSwap(); 19:38 <+bridge> [ddnet] src/game/client/components/menu_background.cpp: pSelf->Client()->UpdateAndSwap(); 19:38 <+bridge> [ddnet] src/game/client/components/menu_background.cpp: pSelf->Client()->UpdateAndSwap(); 19:38 <+bridge> [ddnet] src/game/client/gameclient.cpp: Client()->UpdateAndSwap(); 19:38 <+bridge> [ddnet] ``` 19:38 <+bridge> [ddnet] Graphics()->IndicesNumRequiredNotify(vtmpTiles.size() * 6); 19:38 <+bridge> [ddnet] this is what to find 19:38 <+bridge> [ddnet] the other is what u add 19:38 <+bridge> [ddnet] oh ok 19:40 <+bridge> [ddnet] ``` 19:40 <+bridge> [ddnet] diff --git a/src/game/client/components/maplayers.cpp b/src/game/client/components/maplayers.cpp 19:40 <+bridge> [ddnet] index 89c2ab06d..ece25af5a 100644 19:40 <+bridge> [ddnet] --- a/src/game/client/components/maplayers.cpp 19:40 <+bridge> [ddnet] +++ b/src/game/client/components/maplayers.cpp 19:40 <+bridge> [ddnet] @@ -864,6 +864,7 @@ void CMapLayers::OnMapLoad() 19:40 <+bridge> [ddnet] Visuals.m_BufferContainerIndex = Graphics()->CreateBufferContainer(&ContainerInfo); 19:40 <+bridge> [ddnet] // and finally inform the backend how many indices are required 19:40 <+bridge> [ddnet] Graphics()->IndicesNumRequiredNotify(vtmpTiles.size() * 6); 19:40 <+bridge> [ddnet] + Client()->UpdateAndSwap(); 19:40 <+bridge> [ddnet] } 19:40 <+bridge> [ddnet] 19:40 <+bridge> [ddnet] ++CurOverlay; 19:40 <+bridge> [ddnet] ``` 19:40 <+bridge> [ddnet] like this? 19:41 <+bridge> [ddnet] yes 19:42 <+bridge> [ddnet] it joins but it doesn't render map at first and reconnects 19:42 <+bridge> [ddnet] xd 19:43 <+bridge> [ddnet] it simply clears the menu buffer 19:43 <+bridge> [ddnet] thats why it looks like it reconnects 19:43 <+bridge> [ddnet] but still better than crashing ^^ 19:44 <+bridge> [ddnet] yea i can't reproduce it now 19:44 <+bridge> [ddnet] yeah 19:44 <+bridge> [ddnet] then i assume wayland kills it bcs the GPU is busy for over 2-3 seconds 19:44 <+bridge> [ddnet] i even tried alt tabbing hard 19:44 <+bridge> [ddnet] no crash 19:48 <+bridge> [ddnet] damn it why do we enforce the linker, valgrind doesnt work with mold xD 19:48 <+bridge> [ddnet] callgrind 19:50 <+bridge> [ddnet] ah did we remove it again, guess cmake still cached it 😄 20:29 <+bridge> [ddnet] @Not Keks i still have few wayland related bug if you want to fix it xd 20:29 <+bridge> [ddnet] doubt i can fix all xD 20:30 <+bridge> [ddnet] i mean this indeed is not directly a wayland bug 20:30 <+bridge> [ddnet] just very strict about GPU usage 😄 20:30 <+bridge> [ddnet] guess KDE overwrote it or smth to be less strict 20:30 <+bridge> [ddnet] yeah it is not bug 20:30 <+bridge> [ddnet] but i have one 20:30 <+bridge> [ddnet] i can't launch desktop file 20:30 <+bridge> [ddnet] it takes few try 20:30 <+bridge> [ddnet] only for ddnet 20:31 <+bridge> [ddnet] also crashes? 20:31 <+bridge> [ddnet] or just refuses 20:31 <+bridge> [ddnet] i fix it by adding Terminal=true on desktop file 20:31 <+bridge> [ddnet] i can launch it terminal without issue 20:31 <+bridge> [ddnet] no idea i don't see anything 20:32 <+bridge> [ddnet] since i can't reproduce it on terminal i can't get any output :d 20:32 <+bridge> [ddnet] uff, is this really a wayland issue? does the program that parses the desktop file maybe have no permission to start the app? 20:32 <+bridge> [ddnet] it is random 20:32 <+bridge> [ddnet] if it doesn't have permission to launch, it wouldn't start right 20:32 <+bridge> [ddnet] do u call it asset files or assets files 20:32 <+bridge> [ddnet] or just assets? 20:32 <+bridge> [ddnet] without files 20:33 <+bridge> [ddnet] uh no idea 20:33 <+bridge> [ddnet] wdym 20:33 <+bridge> [ddnet] lemme share desktop file 20:33 <+bridge> [ddnet] i am just struggling with english rn xD 20:33 <+bridge> [ddnet] ``` 20:33 <+bridge> [ddnet] [Desktop Entry] 20:33 <+bridge> [ddnet] Type=Application 20:33 <+bridge> [ddnet] Name=DDNet 20:33 <+bridge> [ddnet] GenericName=Platform Game 20:34 <+bridge> [ddnet] Exec=env DDNET_DRIVER=GLES SDL_VIDEODRIVER=wayland /home/arda/.ddnetsrc/build/DDNet 20:34 <+bridge> [ddnet] Icon=teeworlds 20:34 <+bridge> [ddnet] Keywords=game;multiplayer; 20:34 <+bridge> [ddnet] Categories=Game;ArcadeGame; 20:34 <+bridge> [ddnet] MimeType=x-scheme-handler/ddnet; 20:34 <+bridge> [ddnet] Comment=Launch DDNet 20:34 <+bridge> [ddnet] #Terminal=true 20:34 <+bridge> [ddnet] ``` 20:35 <+bridge> [ddnet] well im not an expert, but looks correct to me 21:08 <+bridge> [ddnet] ChillerDragon: can you take a look when you have some free time? i have a segfault (i think it starts from there : ||https://github.com/NouaaTW/ddnet/blob/bb3020eb425b35b3bbdbbd5d6cbbb4041b4fbd22/src/game/server/entities/character.cpp#L911)|| 21:08 <+bridge> [ddnet] when the character dies while he has the advanced passive indicator, which shouldn't happen because it's the same process as deleting it with a simple chat command ||(https://github.com/NouaaTW/ddnet/blob/bb3020eb425b35b3bbdbbd5d6cbbb4041b4fbd22/src/game/server/cmtchatcmds.cpp#L140)|| 23:48 <+bridge> [ddnet] <`Mahdiyar> Chiller