Which leads to a classic deadlock.Īs usual with these bugs, once you've identified it it's a relatively easy fix (in this case, the loading rendering thread is only allowed to start acting and locking the render system once it has ensured that it will have a frame slot). In very rare circumstances, it could happen that the main rendering thread has already grabbed all the frame slots from that semaphore, but the loading thread locked the rendering subsystem mutex before the main thread could use any of the slots it held. However, there is also a semaphore involved with attempting to make sure that the main game render thread never lags too far behind the game thread, since that would introduce noticeable input lag. And in almost all circumstances this works fine. To make this work, it needs exclusive access to the rendering subsystem, so it locks a mutex in order to ensure that. Basically, whenever there is any loading done by the game, there is a separate thread which has the job of drawing the "Now Loading" indicator if enough time has passed. Thanks for the fix!ĭurante, I'm curious what caused this freeze. F:I was one of the people affected by the black screen freeze.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |