So, I think it’s hard to explain exactly why this is the way it is, and that’s partly because the cold truth is that we don’t know yet. What we do know is that it’s something that has to do with our instancing and instanced skinning system. (Instancing being drawing multiple copies of the same mesh at different places faster than it would be drawing them one by one, Skinning being transforming vertices of a mesh to a set of of ‘bones’ to make the mesh move around, end of graphics programming crash course )
We also know that whatever is causing the issue must be a product of some pesky “race condition”, which means that occasionally when you are processing stuff on many threads and processors at the same time, things can come out of expected order. It’s like finding a neele in a haystack, it’s probably something super-dumb, its almost always is once you finally solve a bug. But the nature of it is that it’s always on a move, the slighest change in timing between threads and the gpu can make it just work as it’s supposed to, or crash and burn horribly.
For people with slower CPUs and slower GPUs, it seems to be much less likely that whatever goes wrong goes wrong. For people with faster CPUs, with more cores and especially faster GPUs (30xx series+) It’s much more likely that whatever goes wrong goes wrong. This is also why lowering worker threads, capping frame rates seems to help.
To that end, the reason there have not been any stability fixes in the main release yet is because we haven’t found the culprit yet. The disabling of the portraits is a measure that seems to reduce the likelyhood of the issue to occur, but it’s not the issue itself. It still happens, just in a lesser frequency than before, and it also entirely depends on the hardware and the current mood of the PC, since it’s so highly dependent on time. This is also why each patch can seem to “move” the crash around, patches may fix it for some, and make it worse for others. Unfortunately.
We have managed to create an artifical repocase where we almost reliably can casue a hang to happen, and this is the first time since launch that we have been able to do that, if this is THE hang we’re not sure, but it is A hang. The people who can work on this issue are working 100% on solving it every day. The rest of the team are not equipped to work on this, so they will naturally continue to work on other aspects of the game, and that is why we release patches without fixing this issue. The things that are easily fixed are getting fixed while we continue to work on this beast.