00:05 <+bridge> [ddnet] yeah i was using it and its rly helpful if u want to spec a team far away 00:06 <+bridge> [ddnet] but took a while to get used to 10:51 <+ChillerDragon> wow when did the spec speed changed? I did not notice anything o.O maybe because i prefer to play over spectating :D 11:18 <+ChillerDragon> 1;3A 11:18 <+ChillerDragon> oop 11:32 <+ChillerDragon> @heinrich5991 can you explain your motivation for f8277267a0a8a4d2ac296cdf4b22cab00047c5e3 and why it is not in vanilla? 12:47 <+bridge> [ddnet] now that the percentage thing is shown at the rank. wouldnt it make sense to reform the rankpoints system? so you get rankpoints for every finish and it doesnt need to be in the top10 12:49 <+bridge> [ddnet] That would mean we have to clean out all duplicate ranks, instead of just in the top 10, way too much work 12:49 <+bridge> [ddnet] (by duplicate I mean same person finishing with multiple names) 12:50 <+bridge> [ddnet] ah right... 12:51 <+bridge> [ddnet] but still its hard to get in the top10 on many maps and its not a good motivation to do a speedrun 12:54 <+bridge> [ddnet] Could measure it as % slower than top time, but I'm not that motivated to change it 14:16 <+bridge> [ddnet] i did the stupid thing of shutting down while updating and it was updating kernel related stuff 14:16 <+bridge> [ddnet] lucky i had a live usb near 14:16 <+bridge> [ddnet] on windows u would be fucked, lucky on linux u have full control 14:18 <+bridge> [ddnet] Ryozuki too stupid for windows 14:21 <+bridge> [ddnet] not stupid 14:21 <+bridge> [ddnet] its simply that on windows u wouldnt be able to fix it 14:23 <+bridge> [ddnet] ChillerDragon: less unused code. that should be enough 14:23 <+bridge> [ddnet] ChillerDragon: I didn't want to engage in discussions whether an obviously unused feature should be removed or not, tw usually seems skeptical of changes like that 15:02 <+ChillerDragon> ok thanks 15:03 <+ChillerDragon> Ryozuki: i wouldnt be able to fix it on linux either and would have to buy a new linux xd 15:20 <+bridge> [ddnet] Cuz u nobo 15:31 <+bridge> [freenode] ChillerDragon do u have a rpi with raspbian? 15:32 <+bridge> [freenode] Heads up: In a significant screw-up, the Raspberry PI foundation pushed an update installing Microsoft GPG keys and repo secretly all Raspberry PIs running Raspbian Linux. They are currently silencing everyone on their forum who is pointing out this issue. https://t.co/wF6eUCoaOn 15:42 <+bridge> [ddnet] mac book pro 2020 44fps ingame 15:42 <+bridge> [ddnet] is it normal? 15:48 <@deen> nope, should be much higher 15:48 <@deen> maybe it renders at 4x resolution and then gets scaled down? 15:50 <+ChillerDragon> wtf Ryozuki yes i use it as router 15:50 <+ChillerDragon> that sounds fucked up 15:50 <+bridge> [ddnet] how 2 fix that btw 15:50 <+bridge> [ddnet] ? 15:50 <+bridge> [freenode] Install arch 15:52 <+bridge> [ddnet] n1 advice 15:52 <+ChillerDragon> it actually is 15:52 <+ChillerDragon> but its some work yikes 15:52 <+ChillerDragon> https://zillyhuhn.com/cs/.1612450328.png 15:52 <+ChillerDragon> that sounds easier 15:52 <+ChillerDragon> but for the furture i might try arch 15:53 <+bridge> [ddnet] what are u graphics settings 15:53 <+ChillerDragon> cl_max_fps 44 15:53 <+ChillerDragon> xd 15:54 <+ChillerDragon> thanks a lot for the info Ryozuki 15:54 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/806900594044305408/IMG_20210204_175430.jpg 15:55 <+ChillerDragon> my try without opengl3 15:55 <+ChillerDragon> but thats just a random guess 15:55 <+bridge> [ddnet] already tried 15:55 <+bridge> [ddnet] nothin changed 15:55 <+ChillerDragon> how does the vanilla teeworlds client perform? 15:56 <+bridge> [ddnet] lemme test 15:58 <+ChillerDragon> hmm ``sudo apt-mark hold raspberrypi-sys-mods`` does not look good to me 15:58 <+ChillerDragon> also i want my router to not break so i have internet :D and debian based stuff is nice for not breaking 15:58 <+ChillerDragon> maybe i should run vanilla debian on my pi then 15:59 <+bridge> [ddnet] I run archlinuxarm on my router pi πŸ˜‰ 15:59 <+bridge> [ddnet] no breaks so far 15:59 <+ChillerDragon> arent u even running arch on ur vps 15:59 <+ChillerDragon> and u didnt brick ur system in 8 yrs or somthing 15:59 <+ChillerDragon> i cant rly compare myself to u 16:03 <+bridge> [ddnet] 300 fps 16:03 <+bridge> [ddnet] default client 16:05 <+bridge> [ddnet] 300-400 fps default client 16:05 <+bridge> [ddnet] why wtf 16:05 <+ChillerDragon> yea i think vanilla does some things different and i also usually have higher fps there 16:05 <+ChillerDragon> but ddnet should still be higher im sure there is a fix for u but dont ask me how 16:05 <+bridge> [ddnet] try high dpi off i heard some ppl had issues with that 16:06 <+bridge> [ddnet] already tried 16:06 <+bridge> [ddnet] still nothin 16:07 <+ChillerDragon> did you try turning ur device off and on again? 16:07 <+ChillerDragon> joke ^^dont do it xd 16:08 <+ChillerDragon> maybe try linux 16:08 <+ChillerDragon> best gaming os 16:08 <+bridge> [ddnet] "facepalm" 16:08 <+ChillerDragon> its actually worth a try 16:09 <+ChillerDragon> in the meantime u can use F-Client which is a vanilla based client with ddr features 16:09 <+bridge> [ddnet] no antpiping i guess? 16:09 <+ChillerDragon> well vanilla has some antipingish thingys 16:10 <+ChillerDragon> https://fokkonaut.github.io/F-Client/ 16:10 <+ChillerDragon> its not that advanced as ddnet tho 16:13 <+ChillerDragon> yikes that fucks with my OCD now it alsays says ``2 packages can be upgraded. Run 'apt list --upgradable' to see them.`` and then does not installed them cuz i blocked ms :D 16:14 <+ChillerDragon> i guess that is the downside of linux getting more used is that companys like ms want to enter the market 16:18 <+bridge> [ddnet] companies* 18:03 <+bridge> [ddnet] U can use any other distro 18:38 <+ChillerDragon> what is this black magic? https://github.com/ddnet/ddnet/blob/cbf5aa6e36be1f1a28f7da64df6a5ef8b2ad1f21/src/game/client/components/menus_browser.cpp#L580 18:38 <+ChillerDragon> changing ui_server_address has no affect on the ui? 18:38 <+ChillerDragon> is the ui somehow constructed after connect and then stored? 18:40 <+ChillerDragon> i leaked my fokin password because i clicked a server in the ingame browser :/ and my pw manager thought i changed server 18:50 <+bridge> [ddnet] Mobo 18:50 <+bridge> [ddnet] Nobo 18:51 <+ChillerDragon> @QshaR how to reset pw on kog? 18:52 <+ChillerDragon> also why is /login not in /cmdlist 18:54 <+bridge> [ddnet] @qshar ^ 18:56 <+bridge> [ddnet] https://qshar.com/reset_password.php 19:03 <+ChillerDragon> ty 19:03 <+ChillerDragon> omg google 19:03 <+ChillerDragon> how does the average user find this? 19:03 <+ChillerDragon> i could not find it on qshar.com and as i reported cmdlist was even worse 19:04 <+ChillerDragon> https://zillyhuhn.com/cs/.1612461826.png 19:04 <+ChillerDragon> also fuck google 19:05 <+ChillerDragon> but thanks for the fast response :) when kog irc or open forum again 19:08 <+bridge> [ddnet] we have all info on discord now 19:09 <+bridge> [ddnet] open irc chillerbridge 19:18 <+ChillerDragon> oof i forgot the email of my dummy 19:19 <+ChillerDragon> oh lol one mail can setup both names? ah nice 19:27 <+ChillerDragon> omg failed to login is it possible that you have bad special character support? @qshar 19:27 <+ChillerDragon> or did i mess something up 19:29 <+ChillerDragon> if some passwords do not work maybe add a filter on the password reset form if the password wont work for login 19:41 <+bridge> [ddnet] how to get id of player from the 19:41 <+bridge> [ddnet] m_pCient 19:43 <+bridge> [ddnet] oh wait nvm its ClientID 19:45 <+bridge> [ddnet] wait no its not 19:46 <+bridge> [ddnet] Eh? Are you on the client or on the server? Which class are you coding in? 20:01 <+bridge> [ddnet] uhh different question 20:01 <+bridge> [ddnet] is there a better way to do this 20:01 <+bridge> [ddnet] ```cpp 20:01 <+bridge> [ddnet] m_pClient->m_aClients[m_pClient->m_Snap.m_LocalClientID].m_Predicted.m_ActiveWeapon != WEAPON_GUN 20:01 <+bridge> [ddnet] ``` 20:01 <+bridge> [ddnet] in players.cpp 20:01 <+bridge> [ddnet] cleint 20:25 <+bridge> [ddnet] m_Snap.m_pLocalCharacter ? 20:28 <+bridge> [ddnet] got a 100% crash with 15.2.5 when joining right now ger1:8305 with Back In Time 2 20:28 <+bridge> [ddnet] on win32 20:32 <+bridge> [ddnet] voting the map on empty server also crash 20:34 <+ChillerDragon> win32 oof 20:34 <+ChillerDragon> can u reproduce consitantly? 20:34 <+bridge> [ddnet] 100% 20:34 <+ChillerDragon> thats a good start i guess :D 20:34 <+bridge> [ddnet] nah its win64 but the client is 32 bits 20:35 <+ChillerDragon> why do u run 32 bit? 20:35 <+bridge> [ddnet] (it's still a bug) 20:35 <+ChillerDragon> ah ye sure 20:35 <+ChillerDragon> just wondering 20:35 <+bridge> [ddnet] 64 bit client does not trigger graphic card switch on laptop 20:36 <+bridge> [ddnet] im trying to implement some derive macro and my brain is melting 20:36 <+bridge> [ddnet] @heinrich5991 have u ever tried this magic? 20:36 <+bridge> [ddnet] no 20:36 <+bridge> [ddnet] im trying to implement a trait Form which outputs a struct as a html form 20:36 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/806971497259991071/unknown.png 20:36 <+bridge> [ddnet] :monkalaugh: 20:37 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/806971644647047268/unknown.png 20:37 <+bridge> [ddnet] im there 20:37 <+bridge> [ddnet] but its hard 20:37 <+bridge> [ddnet] (this is the expanded macro) 20:38 <+bridge> [ddnet] im sure i can even avoid the for loop 20:38 <+bridge> [ddnet] #(#field),* 20:38 <+bridge> [ddnet] or some weird magic 20:38 <+bridge> [ddnet] can't help you rn, in a lesson 20:38 <+bridge> [ddnet] np 20:38 <+bridge> [ddnet] just wanted to show u 20:38 <+bridge> [ddnet] in 30min πŸ™‚ 20:38 <+bridge> [ddnet] ehm, gdb on windows doesnt show anything... 20:38 <+bridge> [ddnet] just say it exited with code 3... 20:39 <+bridge> [ddnet] what does that mean? it doesn't crash when running in gdb? 20:39 <+bridge> [ddnet] ah 20:39 <+bridge> [ddnet] it crashes, but doesnt give a backtrace or anything 20:39 <+bridge> [ddnet] maybe it doesn't crash but actually just exits for some reason 20:39 <+bridge> [ddnet] idk how to debug that in a good way though 20:39 <+bridge> [ddnet] nah, outside gdb i got window saying app has crashed 20:39 <+bridge> [ddnet] ah 20:39 <+bridge> [ddnet] hm 20:39 <+bridge> [ddnet] is there a win version with debug symbols? 20:40 <+bridge> [ddnet] This application has requested the Runtime to terminate it in an unusual way. 20:40 <+bridge> [ddnet] Please contact the application's support team for more information. 20:40 <+bridge> [ddnet] [Inferior 1 (process 4312) exited with code 03] 20:42 <+ChillerDragon> try building from source with visual studio and run it from there 20:42 <+bridge> [ddnet] Code de l’exception: 40000015 20:42 <+bridge> [ddnet] According to internet this means: STATUS_FATAL_APP_EXIT 20:43 <+bridge> [ddnet] no way i install this big factory, my disk is almost full 20:43 <+ChillerDragon> xd 20:43 <+ChillerDragon> fair 20:43 <+bridge> [ddnet] i use mingw 20:43 <+ChillerDragon> im not sure how to debug with mingw 20:43 <+bridge> [ddnet] long time i haven't build ddnet on my computer 20:44 <+bridge> [ddnet] i think we dont compile in mingw 20:44 <+bridge> [ddnet] so it may be bugged 20:44 <+bridge> [ddnet] or maybe deen knows 20:44 <+bridge> [ddnet] releases are compiled with mingw I think 20:45 <+bridge> [ddnet] trying to compile tag 15.2.5 right now 20:45 <+bridge> [ddnet] make sure to pull submodules 20:45 <+bridge> [ddnet] rofl cmake error 20:45 <+bridge> [ddnet] make sure to pull submodules 20:45 <+bridge> [ddnet] git submodule update? 20:45 <+bridge> [ddnet] `git submodule update --init --recursive` 20:46 <+bridge> [ddnet] fixes all your submodules woes 20:46 <+bridge> [ddnet] master and 15.2.5 changed ddnet-libs iirc 20:46 <+bridge> [ddnet] due to discord 20:49 <+bridge> [ddnet] '''shell 20:49 <+bridge> [ddnet] E:\Teeworlds_DDNet\ddnet\src\base\system.c:3392:10: error: 'uintptr_t' undeclared (first use in this function); did you mean 'intptr_t'? 20:49 <+bridge> [ddnet] 3392 | return (uintptr_t)ShellExecuteA(NULL, "open", link, NULL, NULL, SW_SHOWDEFAULT) > 32; 20:49 <+bridge> [ddnet] | ^~~~~~~~~ 20:49 <+bridge> [ddnet] | intptr_t 20:49 <+bridge> [ddnet] E:\Teeworlds_DDNet\ddnet\src\base\system.c:3392:10: note: each undeclared identifier is reported only once for each function it appears in 20:49 <+bridge> [ddnet] E:\Teeworlds_DDNet\ddnet\src\base\system.c:3392:20: error: expected ';' before 'ShellExecuteA' 20:49 <+bridge> [ddnet] 3392 | return (uintptr_t)ShellExecuteA(NULL, "open", link, NULL, NULL, SW_SHOWDEFAULT) > 32; 20:49 <+bridge> [ddnet] ''' 20:49 <+bridge> [ddnet] well, seems like some typedef are missing in mingw 20:50 <+bridge> [ddnet] #include 20:50 <+bridge> [ddnet] only on mingw i guess 20:50 <+bridge> [ddnet] ```shell 20:50 <+bridge> [ddnet] E:\Teeworlds_DDNet\ddnet\src\base\system.c:3392:10: error: 'uintptr_t' undeclared (first use in this function); did you mean 'intptr_t'? 20:50 <+bridge> [ddnet] 3392 | return (uintptr_t)ShellExecuteA(NULL, "open", link, NULL, NULL, SW_SHOWDEFAULT) > 32; 20:50 <+bridge> [ddnet] | ^~~~~~~~~ 20:50 <+bridge> [ddnet] | intptr_t 20:50 <+bridge> [ddnet] E:\Teeworlds_DDNet\ddnet\src\base\system.c:3392:10: note: each undeclared identifier is reported only once for each function it appears in 20:50 <+bridge> [ddnet] E:\Teeworlds_DDNet\ddnet\src\base\system.c:3392:20: error: expected ';' before 'ShellExecuteA' 20:50 <+bridge> [ddnet] 3392 | return (uintptr_t)ShellExecuteA(NULL, "open", link, NULL, NULL, SW_SHOWDEFAULT) > 32; 20:50 <+bridge> [ddnet] ``` 20:50 <+bridge> [ddnet] rip iirc 20:50 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/806975060182564864/unknown.png 20:50 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/806975067250360340/unknown.png 20:50 <+bridge> [ddnet] :monkalaugh: 20:51 <+bridge> [ddnet] works πŸ˜‰ 20:54 <+ChillerDragon> omg it took me 10 sec to realize thats a build err not a crashlog xd 20:54 <+bridge> [ddnet] /src/base/tl/base.h(14): assert! 20:55 <+bridge> [ddnet] wait, i transfer my config for this one 20:56 <+ChillerDragon> assert o.O that should be catched in the log 20:56 <+ChillerDragon> no need to debug that 20:57 <+ChillerDragon> i mean yea debug helps to see why it breaks tho xd 20:58 <+bridge> [ddnet] how do i get gdb prompt when it crashes, it doesn't accept any command, seems just like to hang 20:59 <+ChillerDragon> u should get one instantly 20:59 <+bridge> [ddnet] normally it should give you a prompt when it crashes, yes 21:02 <+bridge> [ddnet] #0 0x77239962 in msvcrt!memcpy () from C:\Windows\syswow64\msvcrt.dll 21:02 <+bridge> [ddnet] #1 0x005a96e8 in mem_copy (dest=0x0, source=0x4a9d0020, size=8) 21:02 <+bridge> [ddnet] at E:\Teeworlds_DDNet\ddnet\src\base\system.c:262 21:02 <+bridge> [ddnet] #2 0x004633a1 in mem_copy_special (pDest=0x0, pSource=0x4a9d0020, Size=8, 21:02 <+bridge> [ddnet] Count=14952016, Steps=12) 21:02 <+bridge> [ddnet] at E:\Teeworlds_DDNet\ddnet\src\game\client\components\maplayers.cpp:397 21:02 <+bridge> [ddnet] #3 0x004652ac in CMapLayers::OnMapLoad ( 21:02 <+bridge> [ddnet] this=0x8d5620 ) 21:02 <+bridge> [ddnet] at E:\Teeworlds_DDNet\ddnet\src\game\client\components\maplayers.cpp:843 21:02 <+bridge> [ddnet] #4 0x004c63ad in CGameClient::OnConnected (this=0x76cfc0 ) 21:02 <+bridge> [ddnet] at E:\Teeworlds_DDNet\ddnet\src\game\client\gameclient.cpp:511 21:02 <+bridge> [ddnet] #5 0x00419589 in CClient::ProcessServerPacket (this=0x3bb0020, 21:02 <+bridge> [ddnet] pPacket=0x28d6f0) 21:02 <+bridge> [ddnet] at E:\Teeworlds_DDNet\ddnet\src\engine\client\client.cpp:1794 21:02 <+bridge> [ddnet] #6 0x0041c63d in CClient::PumpNetwork (this=0x3bb0020) 21:02 <+bridge> [ddnet] at E:\Teeworlds_DDNet\ddnet\src\engine\client\client.cpp:2591 21:02 <+bridge> [ddnet] #7 0x0041d557 in CClient::Update (this=0x3bb0020) 21:02 <+bridge> [ddnet] at E:\Teeworlds_DDNet\ddnet\src\engine\client\client.cpp:2858 21:02 <+bridge> [ddnet] #8 0x0041ea78 in CClient::Run (this=0x3bb0020) 21:02 <+bridge> [ddnet] at E:\Teeworlds_DDNet\ddnet\src\engine\client\client.cpp:3242 21:02 <+bridge> [ddnet] #9 0x0042399f in main (argc=1, argv=0x1c71d78) 21:02 <+bridge> [ddnet] at E:\Teeworlds_DDNet\ddnet\src\engine\client\client.cpp:4355 21:02 <+bridge> [ddnet] https://github.com/ddnet/ddnet/issues/1 21:02 <+bridge> [ddnet] https://github.com/ddnet/ddnet/issues/2 21:02 <+bridge> [ddnet] https://github.com/ddnet/ddnet/issues/3 21:02 <+bridge> [ddnet] https://github.com/ddnet/ddnet/issues/4 21:02 <+bridge> [ddnet] https://github.com/ddnet/ddnet/issues/5 21:02 <+bridge> [ddnet] https://github.com/ddnet/ddnet/issues/6 21:03 <+bridge> [ddnet] https://github.com/ddnet/ddnet/pull/7 21:03 <+bridge> [ddnet] https://github.com/ddnet/ddnet/pull/8 21:03 <+bridge> [ddnet] https://github.com/ddnet/ddnet/issues/9 21:03 <+bridge> [ddnet] ```shell 21:03 <+bridge> [ddnet] #0 0x77239962 in msvcrt!memcpy () from C:\Windows\syswow64\msvcrt.dll 21:03 <+bridge> [ddnet] #1 0x005a96e8 in mem_copy (dest=0x0, source=0x4a9d0020, size=8) 21:03 <+bridge> [ddnet] at E:\Teeworlds_DDNet\ddnet\src\base\system.c:262 21:03 <+bridge> [ddnet] #2 0x004633a1 in mem_copy_special (pDest=0x0, pSource=0x4a9d0020, Size=8, 21:03 <+bridge> [ddnet] Count=14952016, Steps=12) 21:03 <+bridge> [ddnet] at E:\Teeworlds_DDNet\ddnet\src\game\client\components\maplayers.cpp:397 21:03 <+bridge> [ddnet] #3 0x004652ac in CMapLayers::OnMapLoad ( 21:03 <+bridge> [ddnet] this=0x8d5620 ) 21:03 <+bridge> [ddnet] at E:\Teeworlds_DDNet\ddnet\src\game\client\components\maplayers.cpp:843 21:03 <+bridge> [ddnet] #4 0x004c63ad in CGameClient::OnConnected (this=0x76cfc0 ) 21:03 <+bridge> [ddnet] at E:\Teeworlds_DDNet\ddnet\src\game\client\gameclient.cpp:511 21:03 <+bridge> [ddnet] #5 0x00419589 in CClient::ProcessServerPacket (this=0x3bb0020, 21:03 <+bridge> [ddnet] pPacket=0x28d6f0) 21:03 <+bridge> [ddnet] Program received signal SIGSEGV, Segmentation fault. 21:03 <+bridge> [ddnet] 0x77239962 in msvcrt!memcpy () from C:\Windows\syswow64\msvcrt.dll 21:03 <+bridge> [ddnet] ah, good old backtraces triggering github issue linking, now also on discord 21:03 <+bridge> [ddnet] Oh the bot got confused :P 21:03 <+bridge> [ddnet] soryr, wanted to do shift+enter to add a newline, just pressed enter 😦 21:03 <+bridge> [ddnet] epic bot 21:03 <+bridge> [ddnet] @Learath2 i remember u saying to blacklist the first 10 issues 21:04 <+bridge> [ddnet] irc must be overloaded 21:04 <+bridge> [ddnet] + 1 edit 21:04 <+bridge> [ddnet] so can reproduce 100% only on back in time 2 right now 21:04 <+bridge> [ddnet] mem_copy_special? 21:04 <+bridge> [ddnet] Sounds like a jank solution I'd indeed come up with :P 21:04 <+bridge> [ddnet] do we ahve that function? oO 21:04 <+bridge> [ddnet] with release from ddnet website and debug build from mingw 21:04 <+bridge> [ddnet] syswow64 21:04 <+bridge> [ddnet] much wow 21:04 <+ChillerDragon> im ded Ryozuki 21:04 <+bridge> [ddnet] I dont remember a mem_copy_special 21:04 <+bridge> [ddnet] can someone delete the bot message maybe? 21:04 <+Ryozuki> ChillerDragon hi ded im dad 21:05 <+bridge> [ddnet] fix bot 21:05 <+bridge> [ddnet] is the github up to date 21:05 <+bridge> [ddnet] repo 21:05 <+bridge> [ddnet] https://github.com/ddnet/ddnet/blob/1c750a73ff329197ed7661b11ba7aa7ebff33f20/src/game/client/components/maplayers.cpp#L392-L400 21:05 <+bridge> [ddnet] yes, did a pull before building 21:05 <+ChillerDragon> its not a bot issue 21:05 <+ChillerDragon> its non format as code issue 21:06 <+bridge> [ddnet] ah ye 21:06 <+bridge> [ddnet] he forgot first time 21:06 <+ChillerDragon> the name ``mem_copy_special`` is big meme 21:06 <+bridge> [ddnet] my bad 21:06 <+bridge> [ddnet] ``#1`` 21:06 <+bridge> [ddnet] https://github.com/ddnet/ddnet/issues/1 21:06 <+ChillerDragon> oh 21:06 <+bridge> [ddnet] still 21:06 <+ChillerDragon> nvm 21:06 <+Ryozuki> @jao u used 2 backsticks 21:06 <+Ryozuki> try 3 21:06 <+ChillerDragon> then actually bot issue 21:06 <+bridge> [ddnet] Looks like a very dangerous function :P 21:06 <+ChillerDragon> ```#2``` 21:06 <+bridge> [ddnet] ```#1``` 21:06 <+bridge> [ddnet] https://github.com/ddnet/ddnet/issues/1 21:06 <+Ryozuki> gg 21:06 <+ChillerDragon> an no its discord issue 21:06 <+ChillerDragon> xd 21:06 <+ChillerDragon> :D 21:06 <+bridge> [ddnet] $info 21:07 <+bridge> [ddnet] how was it 21:07 <+bridge> [ddnet] to get the url of the bot repo 21:07 <+ChillerDragon> not here i guess 21:07 <+bridge> [ddnet] $about 21:07 <+ChillerDragon> $help 21:07 <+bridge> [ddnet] its about 21:07 <+bridge> [ddnet] Anyway, Count looks way too high 21:08 <+bridge> [ddnet] That would be where I start investigating, the source of that count 21:09 <+bridge> [ddnet] 95 Guilds 21:09 <+bridge> [ddnet] this bot is in lot of places 21:10 <+ChillerDragon> its going places 21:11 <+bridge> [ddnet] at 100 it will get banned 21:11 <+bridge> [ddnet] ?? 21:11 <+bridge> [ddnet] why 21:11 <+bridge> [ddnet] personal ID required by discord or so? 21:12 <+bridge> [ddnet] does this bot use sharding 21:12 <+bridge> [ddnet] after that u need verification 21:12 <+bridge> [ddnet] Spy on the guilds with it 21:12 <+bridge> [ddnet] ow i guess i can rls mine ^^ 21:12 <+bridge> [ddnet] or can you just deactive the invite process? 21:12 <+ChillerDragon> did you try not using discord? 21:12 <+bridge> [ddnet] πŸ₯΄ 21:12 <+bridge> [ddnet] you have a discord bot @Patiga? 21:13 <+bridge> [ddnet] someone invite ddnet to 6 random discords :justatest: 21:13 <+bridge> [ddnet] nah i got a server where i invited the bot 21:13 <+bridge> [ddnet] > Therefore, we are making verification a requirement for bots in 100 or more servers. Until your bot is verified, you will not be able to grow past 100 servers. If your bot is already in more than 100 servers, it will not be able to join any more. 21:13 <+bridge> [ddnet] u wont get banned 21:13 <+bridge> [ddnet] ppl will simply be unable to invite it 21:13 <+bridge> [ddnet] ah 21:13 <+bridge> [ddnet] ye 21:13 <+bridge> [ddnet] nice 21:13 <+bridge> [ddnet] but how to get it verified 21:13 <+bridge> [ddnet] they will decline it like they declined server verification 21:13 <+bridge> [ddnet] send personal data to discord I think 21:14 <+ChillerDragon> server is not verified? 21:14 <+bridge> [ddnet] maybe deen can do it 21:14 <+bridge> [ddnet] if he doesnt care 21:14 <+ChillerDragon> isnt owning ddnet.tw enought? 21:14 <+bridge> [ddnet] server can definitely get verified 21:14 <+bridge> [ddnet] we are not talking about the server 21:14 <+bridge> [ddnet] server got declined 2 times 21:14 <+bridge> [ddnet] lol when 2 times 21:14 <+bridge> [ddnet] or 3 21:15 <+bridge> [ddnet] that sucks i saw some 500 member server verified 21:15 <+bridge> [ddnet] half a year ago and 1 month ago 21:15 <+bridge> [ddnet] member count isnt the only requirement 21:16 <+bridge> [ddnet] I think they want social media presence and third-party sources 21:16 <+bridge> [ddnet] I could only find one third party src I think 21:17 <+bridge> [ddnet] python supports lookaheads right 21:19 <+bridge> [ddnet] yes 21:19 <+bridge> [ddnet] hmm idk if regex is the best way 21:19 <+bridge> [ddnet] lookaheads are bad because they make the language non-regular and thus no guarantees about performance anymore 21:20 <+bridge> [ddnet] `r'(?:(?P\w+)/)?(?P[\w-]*)#(?P[1-9]\d*)\b'` 21:20 <+bridge> [ddnet] this is the current regex 21:23 <+bridge> [ddnet] 32bit :monkalaugh: 21:24 <+bridge> [ddnet] 64 bit client doesn't use graphic card 21:24 <+bridge> [ddnet] so i have to use the 32 bits one 21:24 <+bridge> [ddnet] maybe this would help: https://stackoverflow.com/questions/10535950/forcing-nvidia-gpu-programmatically-in-optimus-laptops/14041061#14041061 21:25 <+bridge> [ddnet] 64 bit client doesn't use graphic card even if i force into nvidia control panel 21:25 <+bridge> [ddnet] 64 bit client doesn't use graphic card even if i force it into nvidia control panel 21:27 <+bridge> [ddnet] Optimus is awful at deciding when to turn on 21:27 <+bridge> [ddnet] Maybe try opengl3.3 that might get it going 21:27 <+bridge> [ddnet] nah, nothing got it working 21:27 <+bridge> [ddnet] it starts the GPU then fall backs to intel integrated graphics 21:28 <+bridge> [ddnet] whatever option i set in ddnet, and even if i force it into nvidia control panel 21:28 <+bridge> [ddnet] client uses too few resources so it falls back to intel? 21:28 <+bridge> [ddnet] is integrated too bad for ddnet? 21:28 <+bridge> [ddnet] but it works for 32 bits version, so i guess it might be a nvidia bug as well 21:29 <+bridge> [ddnet] 64 bits client always use intel graphic whatever i do, 32 bits client does whatever i tell him to do (intel or nvidia) 21:29 <+bridge> [ddnet] the max allocation i see is 80mb at once 21:29 <+bridge> [ddnet] doesnt sound too horrible 21:30 <+bridge> [ddnet] should i also open an issue for graphic card selection (it's a minor defect that i work around)? 21:30 <+bridge> [ddnet] can u even do that in opengl? 21:30 <+bridge> [ddnet] apparently, you need to export a symbol in the binary 21:31 <+bridge> [ddnet] on windows? 21:31 <+bridge> [ddnet] yup 21:31 <+bridge> [ddnet] cant u rightclick ddnet.exe and select the GPU at start? 21:31 <+bridge> [ddnet] it ignores it on the 64bit, not on the 32bit 21:31 <+bridge> [ddnet] strange 21:31 <+bridge> [ddnet] We should probably debug the client with an allocator that randomly fails 21:32 <+bridge> [ddnet] that's why i believe its probably non ddnet related 21:32 <+bridge> [ddnet] well malloc is allowed to return NULL 21:32 <+bridge> [ddnet] i just dont understand why it should for 80mb 21:33 <+bridge> [ddnet] on 32 bit there might not be enough address space 21:33 <+bridge> [ddnet] Maybe it's allocating way too much due to a bug? 21:33 <+bridge> [ddnet] contiguous 21:34 <+bridge> [ddnet] @Chairn can you add a dbg_msg before the malloc to see what `UploadDataSize` is? 21:34 <+bridge> [ddnet] what file? 21:34 <+bridge> [ddnet] but why shouldnt there, what does the compiler do 21:34 <+bridge> [ddnet] so the heap is soo small 21:34 <+bridge> [ddnet] maplayers.cpp 21:34 <+bridge> [ddnet] already did @Learath2 21:34 <+bridge> [ddnet] it's 80 MB is 1/25 of the address space of a 32bit application 21:34 <+bridge> [ddnet] 80 MB is 1/25 of the address space of a 32bit application 21:35 <+bridge> [ddnet] @Jupstar βœͺ you did, can you even reproduce the issue? 21:35 <+bridge> [ddnet] no 21:35 <+bridge> [ddnet] for me the allocation doesnt fail 21:35 <+bridge> [ddnet] pdest is null so it must be the allocation 21:35 <+bridge> [ddnet] Yes, and how can an allocation fail? 21:36 <+bridge> [ddnet] no heap space 21:36 <+bridge> [ddnet] or not enough contiguous address space 21:36 <+bridge> [ddnet] as heinrich said, i just cannot imagine for a rather small allocation like this xd 21:36 <+bridge> [ddnet] 80MB? that's 1/25 of the address space 21:36 <+bridge> [ddnet] that's quite a lot 21:36 <+bridge> [ddnet] mhh i dunno 21:36 <+bridge> [ddnet] doesnt sound alot 21:36 <+bridge> [ddnet] So I assumed the first one, I thought to myself how that could happen and one theory I came up with is UB leading to a massive UploadDataSize 21:37 <+bridge> [ddnet] imagine loading 25 shared libraries at random addresses 21:37 <+bridge> [ddnet] that will give you no remaining space for 80MB on the heap 21:37 <+bridge> [ddnet] idk how ASLR works on 32bit windows 21:37 <+bridge> [ddnet] we could use LARGEADDRESSAWARE flag 21:37 <+bridge> [ddnet] then its only 2.6% of the address space 21:37 <+bridge> [ddnet] UploadDataSize is 299040320 21:38 <+bridge> [ddnet] then it crashes 21:38 <+bridge> [ddnet] that's 280MB 21:38 <+bridge> [ddnet] previous size are 1006320 and 184160 21:38 <+bridge> [ddnet] oh then i usedw the wrong map appearently 21:39 <+bridge> [ddnet] okay, that"s a lot of memory, but should still not crash 21:39 <+bridge> [ddnet] there's enough memory available 21:39 <+bridge> [ddnet] a single 32bit process can only see 2GB of RAM 21:39 <+bridge> [ddnet] oh yeah that map is gigantic πŸ˜„ 21:39 <+bridge> [ddnet] it can use 3GB with largeaddressaware 21:40 <+bridge> [ddnet] largeaddressaware comes with some drawbacks 21:40 <+bridge> [ddnet] yeah cannot remember 21:40 <+bridge> [ddnet] ill print malloc return value 21:40 <+bridge> [ddnet] but i think i had a patch for a 32bit game that then could use more RAM 21:40 <+bridge> [ddnet] is there a perror function like on linux you think? 21:41 <+bridge> [ddnet] Are we even using 2g? 21:41 <+bridge> [ddnet] well, obviously malloc returns 0 πŸ˜„ 21:41 <+bridge> [ddnet] when it crashes, memory usage is around 180MB 21:42 <+bridge> [ddnet] so it should be able to get 280MB more 21:42 <+bridge> [ddnet] As @heinrich5991 pointed out it might be just a ridiculous amount of fragmentation 21:42 <+bridge> [ddnet] btw thats the upload data, so i dont think it can be minimized 21:42 <+bridge> [ddnet] it shouldnt contain any 0 vertices anymore 21:43 <+bridge> [ddnet] So if we aren't using 2g (which sounds like way too much, we shouldn't be using even close to that) then it's likely we have fragmentation 21:43 <+bridge> [ddnet] maybe it could be uploaded in chunks πŸ˜„ 21:43 <+bridge> [ddnet] does it also crash in release mode @Chairn ? 21:43 <+bridge> [ddnet] Permission denied: Not enough space 21:43 <+bridge> [ddnet] We can optimize our heap usage, maybe use a different allocator 21:43 <+bridge> [ddnet] so, weirs 21:43 <+bridge> [ddnet] so, weird 21:44 <+bridge> [ddnet] yeah, it crashes as well using the build from ddnet.tw 21:44 <+bridge> [ddnet] i mean 250mb is already nearly 3 times 80mb so i could understand it more xd 21:44 <+bridge> [ddnet] and still its not too much 21:44 <+bridge> [ddnet] i wonder if the compiler can just sort the heap address better 21:44 <+bridge> [ddnet] that's the runtime 21:44 <+bridge> [ddnet] and the allocator 21:45 <+bridge> [ddnet] and possibly the kernel 21:45 <+bridge> [ddnet] ok 21:45 <+bridge> [ddnet] probably the kernel 21:45 <+bridge> [ddnet] is there a way to see memory maps of process in windows? 21:45 <+bridge> [ddnet] You know what else could cause this? a corrupted heap 21:45 <+bridge> [ddnet] but would sanitizer show it? 21:46 <+bridge> [ddnet] or do u mean inside the kernel? 21:46 <+bridge> [ddnet] Would have to be quite unlucky but I've overwritten the stack return with a pointer to _start once 21:46 <+bridge> [ddnet] I believe everything is possible 21:46 <+bridge> [ddnet] maybe an out of bound array? 21:46 <+bridge> [ddnet] @Jupstar βœͺ could be that it never happens on linux due to the way malloc lays it out there 21:47 <+bridge> [ddnet] but yeah @heinrich5991 u might be right, on linux 32bit it works 21:47 <+bridge> [ddnet] I'm not very familiar with memory debugging on windows, let me read up a bit to see what tools there are to observe allocations 21:48 <+bridge> [ddnet] Actually let me see if it happens for me 21:48 <+bridge> [ddnet] oh on wine it crashes in 32bit 21:49 <+bridge> [ddnet] vmmap seems to be the tool 21:49 <+bridge> [ddnet] i dunno how well wine emulates the win kernel xd 21:49 <+bridge> [ddnet] seems like a fidel reproduction πŸ˜„ 21:49 <+bridge> [ddnet] @Learath2 ^ 21:49 <+bridge> [ddnet] i dunno if malloc layout wrapped in wine πŸ˜„ 21:52 <+bridge> [ddnet] yep consistently crashes, cool 21:53 <+bridge> [ddnet] we could just use non moved pointers for 32bit as workaround 21:53 <+bridge> [ddnet] i implemented both, uploading small chunks and big chunks 21:53 <+bridge> [ddnet] non moved pointers? 21:53 <+bridge> [ddnet] yeah, so you can delete the pointer directly 21:53 <+bridge> [ddnet] instead of keeping it alive for GPU upload 21:54 <+bridge> [ddnet] Using VMMap from windows, address space is not that fragmented 21:54 <+bridge> [ddnet] white is free 21:54 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/806991119958933574/unknown.png 21:54 <+bridge> [ddnet] @Chairn wanna test quickly if 21:54 <+bridge> [ddnet] changing 21:54 <+bridge> [ddnet] int BufferObjectIndex = Graphics()->CreateBufferObject(UploadDataSize, pUploadData, true); 21:54 <+bridge> [ddnet] to 21:54 <+bridge> [ddnet] int BufferObjectIndex = Graphics()->CreateBufferObject(UploadDataSize, pUploadData, false); 21:54 <+bridge> [ddnet] free(pUploadData); 21:54 <+bridge> [ddnet] works 21:55 <+bridge> [ddnet] what line? 21:55 <+bridge> [ddnet] oh found 850 21:55 <+bridge> [ddnet] yeah 21:56 <+bridge> [ddnet] no, still crash 21:56 <+bridge> [ddnet] ok so its the single allocation 21:56 <+bridge> [ddnet] not the previous ones 21:57 <+bridge> [ddnet] i wonder if the driver wouldnt crash 21:57 <+bridge> [ddnet] since it probs has to allocate the same amount of VRAM 21:58 <+bridge> [ddnet] What is this even? `Windows headers require the default packing option. Changing this can lead to memory corruption. This diagnostic can be disabled by building with WINDOWS_IGNORE_PACKING_MISMATCH defined` 21:58 <+bridge> [ddnet] ah 21:58 <+bridge> [ddnet] its probs #pragma pack(...) 21:58 <+bridge> [ddnet] so you can ignore alignment for e.g. 64bit variables 21:59 <+bridge> [ddnet] or increase alignment for variables that dont use such high alignments normally 21:59 <+bridge> [ddnet] This is what happens if I try to build with msvc btw 21:59 <+bridge> [ddnet] didn't touch anything 21:59 <+bridge> [ddnet] oh thats strange tho 22:00 <+bridge> [ddnet] we dont use such stuff 22:00 <+bridge> [ddnet] maybe a broken header? 22:00 <+bridge> [ddnet] not surprised for even a second that something about building on windows is broken 22:00 <+bridge> [ddnet] LTO would warn about mismatches i structures 22:01 <+bridge> [ddnet] LTO would warn about mismatches in structures 22:01 <+bridge> [ddnet] u want to implement a new allocator to fix some 32bit client issues from the 2000s? 22:02 <+bridge> [ddnet] Here I go diving into the stupidities of MSVC again when I try to debug a small allocation issue 22:02 <+bridge> [ddnet] @Ryozuki i dont even know if thats fixable, since it has to be a single buffer on the GPU anyway 22:02 <+bridge> [ddnet] so even if its fixable on the software side we'd need to see if it works on GPU side 22:02 <+bridge> [ddnet] There is absolutely no way we can't fit a 280M buffer in the ram 22:03 <+bridge> [ddnet] ^^ 22:03 <+bridge> [ddnet] actually, this is what i got with VMmap when it segfaults without crashing vmmap as well 22:03 <+bridge> [ddnet] It being un-fixable is absurd 22:03 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/806993282823094292/unknown.png 22:03 <+bridge> [ddnet] @Learath2 i'd say the same, but windows proofes me wrong 22:03 <+bridge> [ddnet] > DX Calls: Any 3D game engine or DirectX application will trigger these calls 22:03 <+bridge> [ddnet] directx 22:03 <+bridge> [ddnet] windows at its best 22:03 <+bridge> [ddnet] so it definetely use way more data than process manager shows 22:04 <+bridge> [ddnet] There was a tool for high frequency sampling like perf on linux I remember that guy from chromium project with the nice blog was using it 22:04 <+bridge> [ddnet] Having trouble remembering the guys name 22:04 <+bridge> [ddnet] Learath2 22:04 <+bridge> [ddnet] :trollet: 22:04 <+bridge> [ddnet] @Chairn if u want to play that map u have to use opengl 1.x for now ^^ 22:05 <+bridge> [ddnet] meh 😦 22:05 <+bridge> [ddnet] not using opengl 3.3 :justatest: 22:05 <+bridge> [ddnet] using 32bits in 2021 is just ridiculous 22:05 <+bridge> [ddnet] not using graphic card for a game is ridiculous as well 22:05 <+bridge> [ddnet] @Ryozuki believe me in south america everyone uses 32bit xD 22:06 <+bridge> [ddnet] Us not being able to fit a game that should work on a gameboy into the 32bit address space is what's ridiculous 22:06 <+bridge> [ddnet] i wonder if > DX Calls: Any 3D game engine or DirectX application will trigger these calls 22:06 <+bridge> [ddnet] means that it doesnt recognize opengl 22:06 <+bridge> [ddnet] intel graphics are not as stable, sometimes fps goes down and game is not really fluid 22:06 <+bridge> [ddnet] to trigger that 22:06 <+bridge> [ddnet] @Chairn can u just disable intel completly? 22:06 <+bridge> [ddnet] now the real question is why does it work for the 32 bit and not the 64 bit? 22:06 <+bridge> [ddnet] how i do that? 22:06 <+bridge> [ddnet] πŸ™ˆ 22:06 <+bridge> [ddnet] in device manager 22:06 <+bridge> [ddnet] u can disable components 22:07 <+bridge> [ddnet] well, intel graphics is used all the time except when i launch a game 22:07 <+bridge> [ddnet] i think i did that too some day 22:07 <+bridge> [ddnet] i just know that i could set opengl configs in the nvidia control panel 22:07 <+bridge> [ddnet] back then 22:08 <+bridge> [ddnet] memory view from vmmap when it crashes 22:08 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/806994523359412254/unknown.png 22:08 <+bridge> [ddnet] https://www.computerbase.de/forum/attachments/zwischenablage01-jpg.891455/ 22:08 <+bridge> [ddnet] like this 22:08 <+bridge> [ddnet] but dunno if that still exists 22:08 <+bridge> [ddnet] havent had nvidia since a longer time ^^ 22:09 <+bridge> [ddnet] See that looks more reasonable 22:10 <+bridge> [ddnet] I swear this thing requires more upkeep than a bleeding edge linux system 22:10 <+bridge> [ddnet] I don't touch it for a week and compilation breaks 22:11 <+bridge> [ddnet] but for some reason i never have problems with MSVC XD 22:11 <+bridge> [ddnet] its only ur setup 22:11 <+bridge> [ddnet] I literally have no setup 22:11 <+bridge> [ddnet] I downloaded VS, I cloned ddnet 22:12 <+bridge> [ddnet] I wouldn't want to set anything up on this sad excuse for a "stable" "ecosystem" atleast apple supports their single ecosystem perfectly 22:12 <+bridge> [ddnet] just had to reboot after this πŸ˜„ 22:12 <+bridge> [ddnet] it turned off the screen with no way to turn it back on 22:12 <+bridge> [ddnet] ah too bad 22:13 <+bridge> [ddnet] Use Metal and develop apps like they want you to and you will never have a single issue. You can compile for x86_64 and it runs perfectly under M1, you can do fat binaries, you can compile for ios and run it under macOS 22:13 <+bridge> [ddnet] yeah, that's what i do, but no change on 64 bit client 22:13 <+bridge> [ddnet] only works on the 32 bit one 22:13 <+bridge> [ddnet] its really strange 22:13 <+bridge> [ddnet] did u install intel drivers manually? 22:13 <+bridge> [ddnet] yup 22:13 <+bridge> [ddnet] @Chairn you sure it's not using the gpu? 22:13 <+bridge> [ddnet] i better say nothing about MacOS ^^ 22:13 <+bridge> [ddnet] yes, power led changes color when using GPU 22:14 <+bridge> [ddnet] blue for intel, orange for Nvidia. 64 bit client start, led goes to orange then fall back to blue 22:14 <+bridge> [ddnet] when looking at the log, it says intel graphic 22:14 <+bridge> [ddnet] 32 bit client, says nvidia 22:14 <+bridge> [ddnet] btw i think newer clients also output the version of the driver capabilities 22:14 <+bridge> [ddnet] [opengl]: Version string 22:14 <+bridge> [ddnet] then u should see if its nvidia 22:15 <+bridge> [ddnet] ypu 22:15 <+bridge> [ddnet] I'll probably be able to take a look after the 2gb update to my 20gb installation of visual studio downloads 22:16 <+bridge> [ddnet] ```shell 22:16 <+bridge> [ddnet] [2021-02-04 22:15:47][client]: starting... 22:16 <+bridge> [ddnet] [2021-02-04 22:15:47][sdl]: SDL version 2.0.8 (compiled = 2.0.8) 22:16 <+bridge> [ddnet] [2021-02-04 22:15:47][gfx]: Created OpenGL zu.zu context. 22:16 <+bridge> [ddnet] [2021-02-04 22:15:48][opengl]: Vendor string: NVIDIA Corporation 22:16 <+bridge> [ddnet] [2021-02-04 22:15:48][opengl]: Version string: 4.6.0 NVIDIA 425.31 22:16 <+bridge> [ddnet] ``` 22:16 <+bridge> [ddnet] Vendor string being NVIDIA strongly suggests it's running on the gpu 22:17 <+bridge> [ddnet] Though optimus does weird things, who knows maybe there is a shim reporting the version? 22:17 <+bridge> [ddnet] Ah yes, I need to restart my computer to finish installing software updates that are completely unrelated to the OS 22:17 <+bridge> [ddnet] brb 22:19 <+bridge> [ddnet] xDDDDD 22:19 <+bridge> [ddnet] created opengl zu.zu context 22:19 <+bridge> [ddnet] is that mingw? 22:19 <+bridge> [ddnet] maybe we should use mingw stdio instead of mSvc broken c98 thing 22:19 <+bridge> [ddnet] nah, release build from ddnet.tw 22:20 <+bridge> [ddnet] yeah that should be mingw 22:20 <+bridge> [ddnet] That should never happen 22:20 <+bridge> [ddnet] smells very much like UB 22:20 <+bridge> [ddnet] ```shell 22:20 <+bridge> [ddnet] [2021-02-04 22:20:14][sdl]: SDL version 2.0.8 (compiled = 2.0.8) 22:20 <+bridge> [ddnet] [2021-02-04 22:20:14][gfx]: Created OpenGL zu.zu context. 22:20 <+bridge> [ddnet] [2021-02-04 22:20:15][opengl]: Vendor string: Intel 22:20 <+bridge> [ddnet] [2021-02-04 22:20:15][opengl]: Version string: 3.0.0 - Build 10.18.14.5162``` 22:20 <+bridge> [ddnet] its bcs c98 didnt had it, and MSVC doesnt care about C 22:21 <+bridge> [ddnet] mingw build because i did not configure nvidia to turn on for this one 22:21 <+bridge> [ddnet] atleast not C std 22:21 <+bridge> [ddnet] Ah true we need to compile to ancientC 22:21 <+bridge> [ddnet] and ofc an update to vs completely broke the project in which I just cloned ddnet so I need to clone again 22:22 <+bridge> [ddnet] there are a lot of warning to fix then ^^ 22:23 <+bridge> [ddnet] we can just use c++ for system.c 22:23 <+bridge> [ddnet] just as we wanted always 22:23 <+bridge> [ddnet] why struggle with C 22:23 <+bridge> [ddnet] system.rs 22:23 <+bridge> [ddnet] iirc the idea was to keep compatible with tw 22:23 <+bridge> [ddnet] yeah but our codebase isnt really compatible anyway 22:24 <+bridge> [ddnet] deen did convert to C++ but closed his pr 22:24 <+bridge> [ddnet] we could just copy paste if they ever have smth useful πŸ˜„ 22:24 <+bridge> [ddnet] don't remember his reason but he said it here 22:24 <+bridge> [ddnet] yeah i know 22:24 <+bridge> [ddnet] i think its mainly heinrich being against it xd 22:24 <+bridge> [ddnet] I don't remember this guy's blog name either 😦 22:26 <+bridge> [ddnet] i think _mingw.h 22:26 <+bridge> [ddnet] 22:26 <+bridge> [ddnet] changes behaviour of c98 stuff 22:26 <+bridge> [ddnet] https://github.com/mirror/mingw-w64/blob/master/mingw-w64-headers/crt/_mingw.h.in#L420 22:26 <+bridge> [ddnet] https://randomascii.wordpress.com/ 22:27 <+bridge> [ddnet] ETW is the name of the tool 22:27 <+bridge> [ddnet] Windows Performance Toolkit (xperf) is the thing it's part of 22:28 <+bridge> [ddnet] It's about as intuitive to use as radare2 though 22:28 <+bridge> [ddnet] Okay ddnet does not compile on MSVC 22:29 <+bridge> [ddnet] mingw emulates most windows stuff tho 22:29 <+bridge> [ddnet] so msvcrt is compatible 22:29 <+bridge> [ddnet] or does it compile in some instructions? 22:31 <+bridge> [ddnet] ? 22:31 <+bridge> [ddnet] error message? 22:32 <+bridge> [ddnet] thought it was related to the xperf stuff 22:32 <+bridge> [ddnet] but u just meant i doesnt compile ^^ 22:34 <+bridge> [ddnet] First of all it's not generating the protocol so let me figure that out but the main issue is: `WINDOWS_IGNORE_PACKING_MISMATCH` this thing 22:36 <+bridge> [ddnet] Okay it is generating just fine 22:36 <+bridge> [ddnet] I guess it's just intellisense failing to find them 22:37 <+bridge> [ddnet] Yeah it's `error C2338: Windows headers require the default packing option. Changing this can lead to memory corruption. This diagnostic can be disabled by building with WINDOWS_IGNORE_PACKING_MISMATCH defined.` 22:37 <+bridge> [ddnet] while compiling backend_sdl.cpp 22:37 <+bridge> [ddnet] that sounds bad 22:39 <+bridge> [ddnet] Okay figured it out, how this compiles with anyone else is beyond me, but apparently including SDL_syswm.h messes with the packing 22:40 <+bridge> [ddnet] it's fixed in SDL 2.0.12 22:41 <+bridge> [ddnet] u should create an issue for that then 22:41 <+bridge> [ddnet] if we dont use 2.0.12 22:41 <+bridge> [ddnet] including syswm after windows.h "fixes" it 22:41 <+bridge> [ddnet] I'm eager to find what it breaks though 22:43 <+bridge> [ddnet] Let us all come together and invent the ideal OS 22:43 <+bridge> [ddnet] I'm sure between us we can come up with something that's not as shit as every option available right now 22:44 <+bridge> [ddnet] let's call it systemdos 22:45 <+bridge> [ddnet] teeworlds-os 22:46 <+bridge> [ddnet] microkernel? 22:46 <+bridge> [ddnet] lets build it with rust 22:47 <+bridge> [ddnet] I must say the CRTs heap debugging functions are quite nice 22:47 <+bridge> [ddnet] link/explanation? 22:48 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/807004764775645204/unknown.png 22:49 <+bridge> [ddnet] I can see what kinds of objects are on the heap, I can see where the allocations happened, I can see the call stack leading to each allocation 22:49 <+bridge> [ddnet] nice πŸ™‚ 22:56 <+bridge> [ddnet] Okay, the heap seems completely fine, so no heap corruptio 22:56 <+bridge> [ddnet] n 23:05 <+bridge> [ddnet] vmmap really seems like the tool to look at this but ofc it can't do high frequency 23:09 <+bridge> [ddnet] In other news we seem to leak a bit 23:10 <+bridge> [ddnet] Depending on the map size joining and leaving a server leaks some heap 23:14 <+bridge> [ddnet] I don't get it we don't use nearly enough heap for address space to become an issue :/ 23:25 <+bridge> [ddnet] Well the error is `ERROR_NOT_ENOUGH_MEMORY` so I guess it is an issue 23:45 <+bridge> [ddnet] I managed to make it crash earlier, amazing 23:51 <+bridge> [ddnet] Preallocating an entire gb of heap memory doesn't seem to help either wtf 23:53 <+bridge> [ddnet] are the vectors maybe too big? 23:53 <+bridge> [ddnet] i think it allocates width * height, and then prepares the buffers for GPU upload 23:54 <+bridge> [ddnet] tho it "only" uses 700mb on that map 23:54 <+bridge> [ddnet] so in worst case it shouldnt be much higher than 1400MB 23:55 <+bridge> [ddnet] ah yeah it works on 32bit linux anyway 23:55 <+bridge> [ddnet] The tooling looks pretty but it's quite shit, VS snapshots quickly seems to be well integrated with the crt, but it has no fragmentation view. VMMap has the fragmentation view but it can only snap at 1 second intervals 23:55 <+bridge> [ddnet] forgot already πŸ˜„ 23:55 <+bridge> [ddnet] I don't know why/where we are hitting the boundry because I can't see the whole memory map because there is no way to make vmmap snap when I want 23:56 <+bridge> [ddnet] I guess people just abandoned 32bit 23:56 <+bridge> [ddnet] in 64 bit out of memory is just a joke anyway 23:56 <+bridge> [ddnet] atleast the address space kind 23:56 <+bridge> [ddnet] thats true, i just wonder what gcc does differently when compiling / or if wine actually simulates windows that accurate xD 23:56 <+bridge> [ddnet] when compiling for windows* 23:57 <+bridge> [ddnet] My theory is that our shared libs land in a shitty position in the address space so that there is no contiguous block of memory of 290m after the first shared lib 23:58 <+bridge> [ddnet] possibly 23:58 <+bridge> [ddnet] πŸ‘€ 23:58 <+bridge> [ddnet] then heinrichs first guess would be right already πŸ˜„ 23:58 <+bridge> [ddnet] i wonder if we can tell gcc to try to maximize heap or smth 23:59 <+bridge> [ddnet] look at my gigantic heap 23:59 <+bridge> [ddnet] https://cdn.discordapp.com/attachments/293493549758939136/807022618405503027/unknown.png 23:59 <+bridge> [ddnet] Still didn't save me πŸ˜› fails on a smaller allocation