As a graphics engine coder I think when you look at a flickering bug like this one in the video below it’s not immediately obvious what is going on. The key here is observation - to study this flickering/bugged render carefully - what do we see?
Firstly for me it was very obvious that nearly all of the scene shadows were flashing on and off - but (but!) there was a secondary issue where some buildings and parts of the sky were also flashing purple. Hmmmm. Interesting.
I initially thought then this might be two separate bugs - but because the sky purple element could only based on full screen post fx and not 3D rendering I looked at this first with a few GPU captures to step through all our post processing to find the rendering stage which made these pixels turn purple:
When I did this I found the colour 3D texture LUT grading that makes our different biomes have unique colour palettes was going very wrong - colours near 0 or 1 were wrapping and making the purple elements that we see in the said sky and base parts.
The only way this could happen was if the texture was corrupt (which it was not) or if the 3D texture sampling was wrapping and not clamped as intended. That was the Eureka moment - because if the post fx had the wrong texture sampler then the disappearing shadows which also require an exact texture sampler for comparing depth might be also wrong because of the same kind of texture sampling issue!
So with this idea that the engine was using the wrong texture samplers, but only in very high draw call scenes like the big base here I the looked at some engine limits and found the bug very quickly - a circular dx12 descriptor buffer for samplers running out over multiple frames, reusing the wrong data for new scenes inflight. Hence the flickering, as the GPU randomly got wrong samplers for some post textures or shadow depth.
Easy to fix with triple limits for future expansion and also adding an assert/debug spam in case this limit is ever reached again - QA testers would see this message and report if they ever saw a flicker with this style of bug.
My bug and my bad from 2017 porting NMS to DX12 without foreseeing how massively complex bases and our game would grow.
@Griff_ You sir, are a legend! How can I get my hands on them? I'm sure everyone else from the team would get a kick, but probs not for public broadcast 😅
@Griff_ OMG so many blury memories wizzing past the camera 😅Couldn't resist going frame by frame trying to find everyone. So glad you dug this out and took the time to upload it.
Hi @elonmusk
I know you are a fan of a show I did called #BattlestarGalactica.
I’m thrilled you loved our little show.
We’re all really proud of it.
I see you’re bringing AI to twitter.
I would encourage you to have a rewatch of BSG.
#SoSayWeAll
Wow, just wow. The planet is breaking.
Antarctic sea ice extent is the headline for me this morning. There was actually a net *decrease* in ice extent day over day, and it's mid-winter there, peak freeze season.
Extent is now 6.4 standard deviations below the 1991-2020 mean.
🔥Research suggests richer soils could keep world within 1.5C of heating
Crucially important report!
👨🌾Changing our farming systems is the only way to stay within 1.5 degrees
🐞And would also benefit wildlife
What's not to like?
#RegenerativeFarming
https://t.co/Jol99vP8Im
Roll up your sleeves and rev up your engines. Space Ape has just launched its newest game Chrome Valley Customs!🏁🚖
From modern muscle cars to vintage junkyard finds, Chrome Valley Customs is all about restoring rusty junk into rad rides.
Download now! https://t.co/lYpbdMwGGx
@oneofmoo There's a technique in SE called Architecture decision records which can be easily applied to anything. TLDR: Document the problem, Context, Decision, and Consequences. Come back and append with changes later. https://t.co/J0WcC6nSBh
@xndra@WtrLammers Last week I spent 3 hours trying to get one command working, only to realize when it ran in the cloud it was a completely different version and just did everything I asked it wrong. The struggle never ends 😅
If you believe in women's suffrage, you believe in the right to protest.
If you oppose apartheid, you believe in the right to protest.
If you think our children deserve a liveable future, you believe in the right to protest.
Defend our freedoms. Repeal the Public Order Bill!
@tha_rami Agreed - Elon hyped egalitarianism, but just swapped nepotism for plutocracy. At least when it was nepotism it kinda provided it's advertised purpose. Now it just monetizes privilidge, self-importance, or deception - or most charitably staves off being drowned out by the noise.