A couple of weeks ago, we released a patch aiming to reduce the frequency of the crashes, but stated that it was not a permanent solution. We have conducted a thorough investigation and came up with a build that we believe will remedy this situation.
We found out that the problem lay with our acceleration structure. The raytracing implementation requires us to prepare Bottom Level Acceleration Structures (BLAS) and Top Level Acceleration Structure (TLAS). We have two types of BLAS - static and dynamic. The static BLAS contains information about static props and terrain. It is generated once, during loading, and stored for the entire gameplay duration. Dynamic BLAS contains information about all the other objects - buildings, destructible props, creatures, and the player. These structures need to be rebuilt every frame to maintain accuracy. TLAS uses the information stored in BLASes to provide us with accurate data during the raycasting pass.
We noticed that the issue occurred when a "fast rebuild" of our acceleration structures was triggered. It is an optimization technique that reuses some parts of the old acceleration structure to build a new one. When using fast rebuild on the new driver version, it was possible for the data stored in the GPU memory to get corrupted and result in a critical failure. This only became apparent on new driver versions. Disabling this optimization reduces the risk of failure by quite some margin, but we are not 100% certain whether it is the final fix. We will continue investigating this issue and hope that the patch we are releasing today will solve this problem for as amny people as possible.
We are very sorry it took so long for us to find and fix this error. It was well hidden - it relied on a specific combination of GPU, drivers, and other variables. Only one PC in our studio was capable of reproducing the crash on a regular basis, which made the process extremely tedious and difficult.
Please let us know if you encounter any GPU-related issues with the latest build.
EXOR Studios