01:03 < bridge> cl_predict_freeze seems a bit messy in the last releases, anyone else experimenting issues? 01:03 < bridge> Or has it been changed recently? 01:04 < bridge> Only visually I think 01:08 < bridge> Yeah 01:18 < bridge> it's so bugged now πŸ˜„ 01:20 < bridge> Check nightly 07:56 < bridge> @kollpotato: 0.7 only flooder here u go! https://gitlab.com/teeworlds-network/twnet_parser/-/tree/5b54a9c2facfa0bba54adee2fc1a397657e70375/examples/07/flood 08:11 < bridge> Isolated enough that my PR got rejected because of it -.- 08:28 < bridge> ill call my kernel libc "elibc" 08:30 < bridge> https://www.desmos.com/calculator/wh6on32ml7 08:30 < bridge> squishy quad 09:34 < bridge> i achieved glory, had to add PIC support to the elf loader tho xd 09:34 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1404005067723505675/image.png?ex=68999d1d&is=68984b9d&hm=b0c562868f4f339cd3c263d6433eaf42d3eead2bddcb95d00fe168882134a2ce& 09:46 < bridge> i can load pic pie elf programs 09:46 < bridge> idk if i need smth special for aslr 09:57 < bridge> mh in https://github.com/ddnet/ddnet/pull/4980/commits/65b7380023f37210ef55b35b1dd4b6b2530214a6 I changed that turrets will fire to the closest player in team, and ignore solo players. But the same mechanic is also build in draggers, seems I should revert it, because it is a game mechanic that it draggs only the solo team mate if he is closer, instead of both (solo would get dragged anyway) 10:25 < bridge> ChillerDragon: 10:25 < bridge> 10:25 < bridge> why did you use `AUTOMATED` for #10665 - isnt that kind of misleading? i think `CONTROLLED` or something would fit better, the camera is not automated in a literal sense, is it? 10:26 < bridge> I coined that word. 10:26 < bridge> https://github.com/ddnet/ddnet/pull/9407#issuecomment-2764730661 for your comment btw 10:26 < bridge> 10:26 < bridge> the AB will require a bump for it anyway 10:27 < bridge> Also what happened to AUTOMATED, did chiller change what it does? It was supposed to mark dummy hammer input as AUTOMATED 10:28 < bridge> looks like `AUTOMATED` simply tracks if camera is of type spec 10:28 < bridge> ```cpp 10:28 < bridge> { 10:28 < bridge> m_aLastPos[g_Config.m_ClDummy] = GameClient()->m_Controls.m_aMousePos[g_Config.m_ClDummy]; 10:28 < bridge> GameClient()->m_Controls.m_aMousePos[g_Config.m_ClDummy] = m_PrevCenter; 10:28 < bridge> GameClient()->m_Controls.m_aInputType[g_Config.m_ClDummy] = CControls::EInputType::AUTOMATED; 10:28 < bridge> GameClient()->m_Controls.ClampMousePos(); 10:28 < bridge> m_CamType = CAMTYPE_SPEC; 10:28 < bridge> } 10:28 < bridge> ``` 10:28 < bridge> ```cpp 10:28 < bridge> { 10:28 < bridge> m_aLastPos[g_Config.m_ClDummy] = GameClient()->m_Controls.m_aMousePos[g_Config.m_ClDummy]; 10:28 < bridge> GameClient()->m_Controls.m_aMousePos[g_Config.m_ClDummy] = m_PrevCenter; 10:28 < bridge> GameClient()->m_Controls.m_aInputType[g_Config.m_ClDummy] = CControls::EInputType::AUTOMATED; <--------- 10:28 < bridge> GameClient()->m_Controls.ClampMousePos(); 10:28 < bridge> m_CamType = CAMTYPE_SPEC; 10:28 < bridge> } 10:28 < bridge> ``` 10:30 < bridge> I did did that 10:30 < bridge> Hmm 10:30 < bridge> I'll just stop commenting about it. There's a reason I've given up on it lol 10:30 < bridge> :justatest: 10:30 < bridge> trying to understand it thats all xd 10:32 < bridge> Ah I think automated is set when camera jumps, cuz it wasn't user input (and originally treated as absolutely but Heinrich wanted another flag) 10:32 < bridge> Whenever camera type changes, input target was forcefully overridden 10:32 < bridge> aaah, okay in that context automated may make sense, as its `automated absolute input` 10:32 < bridge> I hate looking at these code tho 10:33 < bridge> I'll still stop doing that 10:33 < bridge> Also idk about the AB changes, ~~and kinda sounds like a implementation leak on the AB side oof. ~~ 10:34 < bridge> Cuz the ABI definitely didn't change. 10:35 < bridge> Just a minor detail I guess but I'm pretty sure AB implementation should handle flags better if extra bits affect AB implementation even when ABI didn't change. 10:41 < bridge> None of the admins acknowledged my comment or chillers regarding to ABI either. 10:44 < bridge> Actually, I remembered what happened 10:44 < bridge> I'll add more context on GitHub 10:44 < bridge> ❀️ 10:44 < ws-client> **** sos im blind 10:45 < ws-client> **** someone knows where client ids get chosen? 10:45 < bridge> Maintainer btw 10:45 < ws-client> **** @blaiszephyr not my choice read the old pr comments 10:45 < bridge> Wtf is a weak bounce? 10:46 < ws-client> **** @blaiszephyr fakof xd 10:46 < bridge> have you ever tried dropping down from a fly-position and you had weak as the driver, and no matter how hard the bottom tee hammered you keep on dropping? 10:47 < ws-client> **** skil issue 10:47 < ws-client> **** but ye ik what you mean sometimes ships sinkin 10:48 < bridge> Context added 10:50 < bridge> heinrich seems to want that, so i guess that'll be done in a seperate PR at some point then 10:50 < bridge> Want what 10:51 < bridge> the input disctinction in the ab 10:51 < bridge> It's in the ABI already 10:51 < bridge> the input distinction in the ab 10:51 < bridge> Via player flags 10:51 < bridge> That's why I took it out? 10:51 < bridge> Cuz it's in there 10:52 < bridge> Fuck it, I'll look at the code. 10:52 < bridge> :bruhh: 10:53 < bridge> Looked it's in there. AB can use the new flags 10:53 < bridge> And Heinrich personally removed the tag of ABI in the original PR 10:53 < bridge> I'm pretty sure it's not needed anymore 10:54 < bridge> Looked, it's in there. AB can use the new flags 10:55 < bridge> ah this is player bouncing, and not laser bouncing :kek: thank you 10:56 < bridge> do you know about the interaction of a bounced-off laser hitting a tee holding space+grenade vs a direct hit? 10:56 < bridge> the game works in mysterious ways 10:57 < bridge> draggory's alter ego 10:58 < bridge> @pioooooo I invite you to optimize setup time in render layers ^.^ namely [this]() function for tilelayers and [this]() function for quad layers. Most performance issues come probably from the quads. 10:59 < bridge> I know of players shooting a laser and disconnecting making the projectile invalid. Maybe we should accept Chillers PR about that 10:59 < bridge> Double checked again in case i'm just dumb. ye i'm 99% sure AB have the entire playerflags (which includes the two new flags) already. https://github.com/ddnet/ddnet/commit/8fd6d7da1051a51750477058ec28f8352e404269#diff-29ffe32916052e1066eed938021aadfeb29f855d7c63d9c1ca3350aceffb79f3R1355-R1369 11:04 < bridge> maybe we could introduce yet another variable for quad render mode: 11:04 < bridge> `sv_quad_render_mode 0 = grouping and auto clip activated, 1 = only grouping activated, 3 = all deactivated, low setup time, lowest performance` 11:09 < bridge> does anybody know a good extension to find unused imports in vs code? 11:09 < bridge> --- 11:09 < bridge> does anybody know a good extension to find unused imports in vs code? 11:13 < bridge> Hello 11:30 < ws-client> **** found it 11:30 < ws-client> **** this seems to determine the client id https://github.com/ddnet/ddnet/blob/2934124cc9fa3f87d8bbd98193282ee2c9c0e5de/src/engine/shared/network_server.cpp#L549-L561 11:36 < ws-client> **** @robyt3 any chance i can frame debug dummies being replaced by humans on join as a bug so we can fix it? xd 11:37 < ws-client> **** or is it a feature? 11:38 < ws-client> **** need it for non debug dummies in forks -.- #8385 11:38 < chillerbot> https://github.com/ddnet/ddnet/issues/8385 11:46 < bridge> I think it would make sense if debug dummies would behave like normal clients when possible, if it's possible to do cleanly, ideally without changing `CNetServer` 11:48 < ws-client> **** sounds tricky because the way i understand it the server allocates client ids based on ids not being used by a net connection here 11:48 < ws-client> **** https://github.com/ddnet/ddnet/blob/2934124cc9fa3f87d8bbd98193282ee2c9c0e5de/src/engine/shared/network_server.cpp#L549-L561 11:49 < ws-client> **** so the debug dummy would need a different state in net connection than offline which to me sounds like having to touch cnetserver and introducing a state bot 11:50 < ws-client> **** https://github.com/ddnet/ddnet/blob/2934124cc9fa3f87d8bbd98193282ee2c9c0e5de/src/engine/shared/network.h#L226-L234 11:50 < ws-client> **** patching that enum is what i did in my fork thats why i would like to move that low level network diff to ddnet 11:50 < ws-client> **** but if u say thats bad im rip 11:52 < bridge> See https://github.com/ddnet/ddnet/issues/9554#issuecomment-2601810313 11:52 < ws-client> **** or maybe state online would also work instead of state bot but im afraight we get timeouting debug dummies and the server sending network traffic to it self 11:53 < ws-client> **** oh heino opinion :eyes: 11:59 < bridge> @robyt3 this is the only open conversation on my huge PR right now: 11:59 < bridge> 11:59 < bridge> Do you prefer if I ping you or request review? 12:04 < bridge> Does it work if you remove the `const` or does clang-tidy complain? 12:05 < bridge> Otherwise add both a const function returning const pointer and non-const function returning non-const pointer 12:07 < bridge> I like #10634 more than #10636. Can I just merge that or should we get one more person to weigh in? 12:07 < bridge> https://github.com/ddnet/ddnet/pull/10634 12:07 < bridge> https://github.com/ddnet/ddnet/pull/10636 12:13 < bridge> What I mean is, that I need to drop all const modifiers on the functions using Graphics(), because they call non const functions, if I return a const IGraphics* 12:14 < bridge> so there is no points to ever return a const IGraphics* 12:14 < bridge> so there is no point to ever return a const IGraphics* 12:14 < bridge> Then only return a non-const pointer with a non-const getter 12:15 < bridge> yes, but I don't need a const getter with a const pointer, if every function needs to drop const then 12:16 < bridge> Then also add a const function returning a const pointer, so the functions can be const when possible consistent with the discussion in #10555 12:16 < bridge> https://github.com/ddnet/ddnet/pull/10555 12:17 < bridge> Here an example: 12:17 < bridge> ``` 12:17 < bridge> void CRenderMap::RenderTile(int x, int y, unsigned char Index, float Scale, ColorRGBA Color) const 12:17 < bridge> { 12:18 < bridge> if(Graphics()->HasTextureArraysSupport()) 12:18 < bridge> ``` 12:18 < bridge> 12:18 < bridge> `HasTextureArraysSupport()` is non-const. So if I have `const IGraphics* Graphics() const {...}` and `IGraphics* Graphics {...}` I need to drop the const modifier of RenderTile 12:18 < bridge> I don't know what's the point of the const modifier then? It doesn't change anything on CRenderMap, only in the graphics backend 12:19 < bridge> Make the functions non-const for now, unless you want to also make the graphics functions const first πŸ˜… 12:19 < bridge> okay :justatest: 12:22 < bridge> every day i think more 12:22 < bridge> if ddnet had a account system 12:22 < bridge> it would help proliferate a lot of ecosystems 12:22 < bridge> because if u can verify a player is who he is u can do lot of services based on that 12:22 < bridge> for example the wiki wouldnt need a captcha, simply a oauth from ddnet 12:23 < bridge> or openid or whathever 12:25 < bridge> yeah just dropped all const πŸ€·β€β™‚οΈ 12:28 < bridge> I would know how to do this with a federated system :justatest: this would add yet another column in funding tho, because we'd need regional login servers 12:31 < bridge> - one for each continent 12:31 < bridge> - use the official ddnet servers themself as ISP using the database in the background 12:31 < bridge> - forward login from continental federated AAI to ISP based on regional/config info 12:31 < bridge> - round robin login attempts 12:31 < bridge> 12:31 < bridge> legally you'd need a DPS and probably a TOS 12:34 < bridge> - one for each continent 12:34 < bridge> - use the official ddnet servers themself as ISP using the database in the background 12:34 < bridge> - forward login from continental federated AAI to ISP based on regional/config info 12:34 < bridge> - round robin regional login attempts on official regional servers 12:34 < bridge> 12:34 < bridge> legally you'd need a DPS and probably a TOS 12:36 < bridge> use iFCity's account system 12:37 < bridge> https://www.debian.org/News/2025/20250809 12:37 < bridge> !!! 12:38 < bridge> > i386 is no longer supported as a regular architecture: there is no official kernel and no Debian installer for i386 systems. The i386 architecture is now only intended to be used on a 64-bit (amd64) CPU. Users running i386 systems should not upgrade to trixie. Instead, Debian recommends either reinstalling them as amd64, where possible, or retiring the hardware. 12:44 < bridge> Wow so progressive. Impressive from ddnet pov πŸ€“ 12:55 < bridge> chillerdragon: yeah thanks, i already figured out a builtin way to flood 12:56 < bridge> btw chiller i found ur coc account 12:56 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1404055700342313100/IMG_20250809_222259.jpg?ex=6899cc45&is=68987ac5&hm=8b78655f3971bbfb035b1d85881cf181031c877745f3d3a2c8846df2e3097ef5& 12:58 < bridge> xDDDDDDDDDD 12:58 < bridge> :brownbear: 13:43 < bridge> https://cpu.land/ Interesting article 14:08 < bridge> do a kernel and u learn that and more 14:10 < bridge> imagine doing a kernel in production ready language 14:29 < bridge> is that arrogance, that I am smelling πŸ‘€ 14:30 < bridge> πŸ‘ƒ 16:44 < bridge> Sry I was just ranting as an player who was annoyed by the load time. Currently I don't really have motivation for optimization of rendering stuffs... 16:45 < bridge> I understand your frustration 17:57 < bridge> Should be easy to save like 25% by only performing the calculations in `GetRawData` once for every layer 18:09 < bridge> @pioooooo how high are load times for u? 18:10 < bridge> 16s before and 29s after according to #10663 18:10 < bridge> https://github.com/ddnet/ddnet/issues/10663 18:11 < bridge> 16s? Debug mode? 18:12 < bridge> I doubt cpus got 8 times faster since 2005 single threaded lol 18:12 < bridge> Was definitely faster than that for me in release with Vulkan 18:14 < bridge> @essigautomat how much processing even was added? Did u add like a new loop or smth? 18:14 < bridge> Almost double as slow sounds completely insane 18:19 < bridge> so waht u do in this scenario is deepfly with hammer 18:19 < bridge> B) 18:23 < bridge> from ddnet.org/downloads 18:25 < bridge> On what setup 18:25 < bridge> setup mean my pc spec? 18:25 < bridge> Yes 18:28 < bridge> CPU 18:28 < bridge> 18:28 < bridge> Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz 18:28 < bridge> 18:28 < bridge> GPU 1 18:28 < bridge> 18:28 < bridge> NVIDIA GeForce GTX 1650 18:31 < bridge> And you are sure u didn't count the whole connecting phase? Only preparing map? 18:31 < bridge> could be counting, but I don't think connection changed that lot between those 2 versions 18:32 < bridge> Sure But i don't want network weirdness be a problem 18:32 < bridge> the loading time is consistently twice for me 18:34 < bridge> I'll look into it too when I'm home tonight 18:34 < bridge> Is it possible that pcie speed also matters here since it looks like the uploaded data size increase? 18:34 < bridge> idk 18:34 < bridge> Almost double is defs unacceptable, but 16s sounds comoletely unrealistic to me 18:34 < bridge> I dunno that map tho 18:35 < bridge> large insane hammerhit maps be like 18:35 < bridge> I dunno.. No matter how bad the pcie is. Moving around 1gb of data should not take longer than 1-2s 18:36 < bridge> Generally i cannot imagine anything that could be that slow, except hdd and network 18:36 < bridge> But that shouldn't change between versions 18:37 < bridge> What can be slow ofc is smth like a swap 18:37 < bridge> But i assume you have like 8gb ram and 3gb vram 18:38 < bridge> i got 16gb ram but could be almost full at all time :D 18:42 < bridge> I test on phone with my awesome internet connection, give me few minutes 😬 18:42 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1404142934529413310/Screenshot_20250810-184201_DDNet-18.8.1.png?ex=689a1d83&is=6898cc03&hm=a5c71befe56eb9272d86ab7a22e663364301d1ea41fec482e9ce552cf334dcf5& 18:44 < bridge> :justatest: 18:51 < bridge> Yeah dunno, smth around 4-5s 18:51 < bridge> On phone 18:51 < bridge> Battery 18:56 < bridge> maybe i should download more ram 18:57 < bridge> or does phone gpu support the thing to do the tile buffer or something 18:58 < bridge> i remember once checked the code and it's guarded by some if enabled stuff 18:58 < bridge> i remember once checked the onInit code and it's guarded by some if enabled stuff 18:58 < bridge> Vk backend 18:59 < bridge> 12 gb ram. No vram since integrated 18:59 < bridge> I don't know, I'd still be glad if you could look into it later 19:01 < bridge> Sure, but note I'm not complaining about that the new client sucks even more. I'd be interested how to similar strong computers can be so much off 19:02 < bridge> Sure, but note I'm not complaining about that the new client sucks even more. I'd be interested how two* similar strong computers can be so much off 19:03 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1404148172871438386/Screenshot_20250810-185854_DDNet-18.8.1.png?ex=689a2264&is=6898d0e4&hm=ee989b865f4932432960d8ea6b355a7533389a715bb31c7c46ba5493f5033680& 19:03 < bridge> See i use old ver too on phone 19:05 < bridge> why does my bun bun have a chunk cut out of it, im just rendering a single freeform 19:05 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1404148603357888594/image.png?ex=689a22ca&is=6898d14a&hm=8a94e5d9bccd139ca7cdd564cdc420474be52dfa144a3ff400cb5a9a6b3c1ee0& 19:05 < bridge> ```cpp 19:05 < bridge> const auto P1 = Transform({-0.5f, -0.5f}); 19:05 < bridge> const auto P2 = Transform({0.5f, -0.5f}); 19:05 < bridge> const auto P3 = Transform({0.5f, 0.5f}); 19:05 < bridge> const auto P4 = Transform({-0.5f, 0.5f}); 19:05 < bridge> const IGraphics::CFreeformItem Item = {P1.x, P1.y, P2.x, P2.y, P3.x, P3.y, P4.x, P4.y}; 19:05 < bridge> ``` 19:06 < bridge> Texture coords 19:06 < bridge> same hapens if i dont use texture and just solid color 19:06 < bridge> is there an order i need to follow? 19:06 < bridge> Yes 19:07 < bridge> would u happen to know what it is 19:07 < bridge> or should i just keep swapping till it works xd 19:07 < bridge> 012023 i think 19:07 < bridge> scuse me? 19:07 < bridge> Not sure by heart 19:08 < bridge> thats how the triangles are formed? 012 and 023? 19:08 < bridge> thats how the triangles are formed? 021 and 023? 19:08 < bridge> so opposites then the rest 19:08 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1404149545180336128/image.png?ex=689a23ab&is=6898d22b&hm=3c67896fb64b39389bcfa416be5da674e6f27ecc53fd1d172322da323ca36b35& 19:09 < bridge> and flip everything 19:09 < bridge> xd 19:09 < bridge> maybe 19:09 < bridge> Yeah best look inside graphics threaded 19:09 < bridge> i should do it will solid color lmao 19:09 < bridge> okay 19:10 < bridge> 013 032 19:11 < bridge> Look at the indices 19:11 < bridge> For free form 19:11 < bridge> Just switch p4 and p3 or smth in your code and test :brownbear: 19:12 < bridge> sigh 19:12 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1404150391326769172/image.png?ex=689a2475&is=6898d2f5&hm=23887f3202a246de095e84bf3c0c50ca291d55c0a7aeddbff12f9cfc36a1c7c6& 19:13 < bridge> grouping + automatic quad clipping 19:14 < bridge> it iterates twice through all quads 19:14 < bridge> it iterates twice through all quads (in the worst case) 19:14 < bridge> today I am going to make a map worse than the mona lisa 19:15 < bridge> screw this im gonna make the triangles myself x-x 19:16 < bridge> you cant?!?!? 19:16 < bridge> epic ddnet moment 19:20 < bridge> all orderings i try it keeps 19:20 < bridge> adding a point in the middle 19:21 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1404152804385226873/image.png?ex=689a26b4&is=6898d534&hm=2bafdb6c398678de8ab4e8efbc7e19979fc6b99174ae2a99653ac3162342b955& 19:22 < bridge> this happens in the editor when the top 2 points are swapped 19:22 < bridge> And does that map have lots of quads 19:22 < bridge> Until Dawn 19:26 < bridge> Must be at least 200 million to take 10s longer xD 19:27 < bridge> My speculation is map size (w*h) matters much 19:27 < bridge> My speculation is map size (w*h) matters a lot 19:29 < bridge> Possible but then assa doesn't know his own code changes :frozen: 19:40 < bridge> I don't experience loading times beyond 1 second. 19:42 < bridge> a bunch of 2048x2048 stars quads 19:42 < bridge> like a lot 19:42 < bridge> Until dawn is really slow I must admit :justatest: it probably is map size 19:42 < bridge> i deleted them entirely xd 19:42 < bridge> the loading speed felt the same 19:45 < bridge> idk when i removed them the fps went up and it didnt take long to load 19:46 < bridge> As I commented on the issue, `GetTileData` is very slow because it calls `GetRawData` every time. 19:46 < bridge> tho i guess the size is still the biggest factor 19:46 < bridge> abyss also takes some time to load 19:47 < bridge> but i never noticed any load time difference between versions 19:48 < bridge> Oh u already debugged lol 19:49 < bridge> Ofc doesnt explain freaking 16s xD 19:54 < bridge> I give up, I can't get envelopes to sync with start at all πŸ™ 19:54 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1404160971181785118/screenshot_2025-08-10_19-53-10.png?ex=689a2e4f&is=6898dccf&hm=9c9afc78f781a320c12c78b7931244b9347022194dfad348838e277e0c06e459& 19:56 < bridge> almost there 19:56 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1404161404079968376/image.png?ex=689a2eb6&is=6898dd36&hm=a10aeb28068d4017260bd51ffa36a8c438fbd0a6631ee18851043464e9e95584& 20:02 < bridge> https://www.bilibili.com/video/BV1zJGjzoEdx/ 20:02 < bridge> there are multiple ways to archive this 20:03 < bridge> mine is too expensive with 30 (fps) * 3,40 (minutes) * 60 (seconds) * ~300 (height) * 480 (width) = a lot of quads 20:03 < bridge> One quad and envelope per pixel? 20:04 < bridge> one quad per pixel, one envelope per map, a lot of offsets per pixel 20:04 < bridge> one quad per pixel, one envelope per map, one offset per quad 20:04 < bridge> one quad per pixel, one envelope per map, one offset per quadlayer 20:04 < bridge> one second per group 20:05 < bridge> one editor crash after 20 seconds, 7 fps πŸ˜„ 20:06 < bridge> no I even optimize quads in width 20:15 < bridge> somehow with the same code ive gotten it the other way around 20:15 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1404166183569068112/image.png?ex=689a332a&is=6898e1aa&hm=b41a33ffd682afb66b98e59f6cba9fce4c39ece33f4c3865adc14831e52c7ee3& 20:15 < bridge> i hate this 20:15 < bridge> i hate this 20:17 < bridge> Never mind, maps can only contain 65536 envelopes 20:18 < bridge> whats that 20:18 < bridge> squishy tees but for some reason my code is special 20:18 < bridge> @cyberfrighter worlds 20:19 < bridge> my first try is the exact same as how quadcontaineraddquads does it 20:19 < bridge> but takes out a chunk 20:19 < bridge> after actually looking at quadcontaineraddquads ive got the same code again and it takes out a chunk in the opposite side 20:19 < bridge> i dont fucking understand 20:23 < bridge> only? well that sucks . /s 20:33 < bridge> I am now "rendering" all of it, lets see if I can create same crashes πŸ™‚ 20:34 < bridge> I wonder if this is the biggest ddnet map of all time 20:39 < bridge> ):< 20:39 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1404172236885327933/image.png?ex=689a38cd&is=6898e74d&hm=c3efe76b62182e3a9e0c87ab6b7de9743284576a6f4720ee13a5560e7ef7c1e5& 20:39 < bridge> ```cpp 20:39 < bridge> const auto PTL = Transform({-0.5f, -0.5f}); 20:39 < bridge> const auto PTR = Transform({0.5f, -0.5f}); 20:39 < bridge> const auto PBR = Transform({0.5f, 0.5f}); 20:39 < bridge> const auto PBL = Transform({-0.5f, 0.5f}); 20:39 < bridge> // TODO: Figure out what is up with texture mapping and draw a single quad instead of 2 20:39 < bridge> const IGraphics::CFreeformItem Items[] = { 20:39 < bridge> {PTL.x, PTL.y, PTR.x, PTR.y, PBR.x, PBR.y, PBL.x, PBL.y}, 20:39 < bridge> {PTR.x, PTR.y, PTL.x, PTL.y, PBL.x, PBL.y, PBR.x, PBR.y}, 20:39 < bridge> }; 20:39 < bridge> Graphics()->QuadsBegin(); 20:39 < bridge> Graphics()->QuadsSetRotation(pAnim->GetBody()->m_Angle * pi * 2.0f); 20:39 < bridge> Graphics()->SetColor(pInfo->m_ColorBody.r, pInfo->m_ColorBody.g, pInfo->m_ColorBody.b, Alpha); 20:39 < bridge> Graphics()->QuadsDrawFreeform(&Items[0], 1); 20:39 < bridge> Graphics()->QuadsSetSubset(1, 0, 0, 1); 20:39 < bridge> Graphics()->QuadsDrawFreeform(&Items[1], 1); 20:39 < bridge> Graphics()->QuadsEnd(); 20:39 < bridge> ``` 20:39 < bridge> stupid 20:49 < bridge> thi also breaks for transparent skins 20:56 < bridge> ? 20:57 < bridge> cyberfighterworlds 20:57 < bridge> why me 20:59 < bridge> I actually wonder how I should improve this. GetRawData returns a void* and I need to cast it into a CTile/CTuneTile/CTeleTile ... somehow and extract sometimes more sometimes less information out of it 20:59 < bridge> egg 21:00 < bridge> You only need to perform all of the calls and checks in `GetRawData` once, then store the validated data pointer 21:01 < bridge> oh yes 21:53 < bridge> this also significantly improves ogl 1 22:00 < bridge> @pioooooo can you test this? 22:29 < bridge> @kollpotato: please don’t leak my cock 22:33 < bridge> :monkaS: 22:35 < bridge> I don't feel like that does anything :omo: 22:49 < bridge> ogl1 has some weird artifacts on the map Cyber Space :justatest: 22:52 < bridge> ogl1 randomly crashed on me, but unfortunatly this was on a feature branch, but it crashed at an unrelated position to that :justatest: 23:15 < bridge> This indeed decreased loading time like by half 23:15 < bridge> really? 23:15 < bridge> I see no benefits on my system 23:15 < bridge> like none 23:16 < bridge> 13s vs 25s 23:16 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1404211916108337242/52b73f22a6392f34.png?ex=689a5dc1&is=68990c41&hm=3c170edfda50d44759a10e9031b23e4b9276630f759497c6004528b1b5d5c99c& 23:16 < bridge> https://cdn.discordapp.com/attachments/293493549758939136/1404211916641009674/7b0067f6173c28e8.png?ex=689a5dc1&is=68990c41&hm=9890d6a9be9fee08f25e8c9081cafd37326a29a7ea617fa8b16dc2b4998e8fe6& 23:16 < bridge> I guess you use vulkan backend? 23:16 < bridge> yes vulkan 23:18 < bridge> left is new and right is old? 23:18 < bridge> yes, new read from old and old read from new 23:18 < bridge> because left is 13 seconds and right is 25 23:18 < bridge> :D 23:19 < bridge> ah I see 23:19 < bridge> I hope this is not just some caching effect 23:19 < bridge> I wonder why I don't see any improvements, maybe some different bottlenecks 23:21 < bridge> I tested two times for each, quite consistent 23:31 < bridge> glad to help you btw (I am glad to help anybody who finished my map :brownbear: ) 23:52 < bridge> :D