opticfluorine | Sovereign MMORPG Engine
banner
sovereignengine.com
opticfluorine | Sovereign MMORPG Engine
@sovereignengine.com
Developer of Sovereign Engine, an open source 2.5D MMORPG engine. https://sovereignengine.com | https://github.com/opticfluorine/sovereign

#gamedev #mmorpg #programming #software #gaming
Those race conditions are tough to debug, but they sure feel like an accomplishment when you figure them out haha!
December 1, 2024 at 1:21 AM
4/ From there it was straightforward. Inspect the barriers around the buffer update, find that the barrier scope didn't include uniform buffer operations. NVIDIA either implicitly applied a barrier or was just fast enough that it didn't happen. AMD on the other hand showed a race condition. Fun!
December 1, 2024 at 1:14 AM
3/ I found out by breaking it with another bug. I made a typo that accidentally blew up the sprites to around 5x their usual size. Suddenly it was clear that it wasn't noise - it was the font atlas from the previous draw call. The texture offset in the uniform was still pointing to it - sometimes.
December 1, 2024 at 1:12 AM
2/ The breakthrough came in figuring out what the flickering was. At first the sprites were small and the flicker looked like noise. Oddly, it even flickered within the same frame in Renderdoc. That's a giant red flag for a race condition or missing barrier, but what was it?
December 1, 2024 at 1:10 AM
Poorly worded, but referring to the direction that interfaces are crossed in the architecture - specifically, it gives better alignment with something like Clean Architecture where dependencies only flow in one direction. Reflection-based IoC makes it easier to break that rule without thinking.
November 26, 2024 at 5:50 AM
Thanks, appreciate it!
November 25, 2024 at 2:20 PM
Hey, any room left to join?
November 25, 2024 at 2:18 AM
Careful, this is a slippery slope that ends in writing your own OS because the stock filesystem isn't good enough...
November 25, 2024 at 2:14 AM