Karl Berg, on 29 April 2013 - 01:08 PM, said:
Hey everyone. Just a quick heads up that a major cause of crash to desktop issues was identified from the crash dumps last friday, and a fix has been given to QA for emergency testing and launch. Not sure of when exactly this will end up getting patched out, but this issue is severe enough that will be rushed through with a very high priority.
Detailed reason for the crash if you're curious:
We recently introduced code making use of the MASKMOVDQU SSE instruction to write out only the first 4-bytes of a result from a 16-byte SSE register coming out of a hand-optimized function. Turns out that this instruction pulls in a full 128 bits of data from main memory, does the masked update on CPU, and then writes the full 128 bits back out to main memory regardless of which bytes were actually changed.
I've not made use of this particular instruction before, and the documentation didn't hint that this might be an issue, even though now it seems pretty obvious in hindsight . So if we were unlucky enough that the memory address we were writing back to was aligned right next to another page marked as unwritable, the kernel would generate an access violation.
Detailed reason for the crash if you're curious:
We recently introduced code making use of the MASKMOVDQU SSE instruction to write out only the first 4-bytes of a result from a 16-byte SSE register coming out of a hand-optimized function. Turns out that this instruction pulls in a full 128 bits of data from main memory, does the masked update on CPU, and then writes the full 128 bits back out to main memory regardless of which bytes were actually changed.
I've not made use of this particular instruction before, and the documentation didn't hint that this might be an issue, even though now it seems pretty obvious in hindsight . So if we were unlucky enough that the memory address we were writing back to was aligned right next to another page marked as unwritable, the kernel would generate an access violation.
I have not experienced a crash to desktop since closed beta, now I carash to desktop about 1 in 5 games how does this coding get past a internal alpha server??? Plus is this not a high priority bug yet im pretty sure 90% of the player base is getting crash to desktop now.....