Forum Discussion
@Benef1cient - Thanks for your feedback. I went back through this whole thread and didn't see any apex_crash.txt from you, so I don't know whether you're getting one of the crashes I've already commented on. But I can tell from our source code history that this one function that is reporting these crashes has not changed since before Apex Legends first shipped. If you'd be willing to post an apex_crash.txt, I can tell whether you are getting this or another crash.
@Falkentyne - Thanks for those suggestions. I looked into them. Unfortunately, you cannot write code to generate a "CPU Parity Error", because this is an error reported by the CPU itself to indicate that it is malfunctioning. Similarly, WHEA is Windows Hardware Error Architecture - it exists to report hardware errors (your machine itself), not software errors (the programs you run on the machine). The best we can do is try to get the compiler to generate a different set of instructions that achieves the same computation while luckily managing to avoid the hardware errors. This is very hard to do when we can't repro the errors internally. It would be like the movie where a blind guy keeps turning one face of a Rubik's cube and then asking his friend, "is this it?"
Regarding your AVX suggestion, Apex doesn't use AVX on PC, since our min-spec CPU doesn't include AVX. However, AVX and SSE often use the same hardware. It actually looks like AVX was designed so you could implement it in a CPU by reusing SSE execution units and registers, and just changing the instruction decode part of the chip! (You can treat one AVX register as two SSE registers put together, and an AVX instruction as running the equivalent SSE instruction sequentially on both SSE register pieces.) CPU hardware is allowed to have completely separate execution units for SSE and AVX, but given how CPU designs always want to minimize chip size and power usage, I would expect AVX and SSE to share execution units on all existing CPUs.
@2Cavalier - Thanks for your feedback. Your crash is the less common one that looks like stack corruption. I'm still trying to see how this might be possible based on source code and disassembly.
@JorPorCorTTV - Thanks for those logs. Three out of 4 of your crashes are the "02F2DCA" crash, where the CPU is saying that the instruction "test r15, r15" is really the instruction "int 3". apexcrash_2.txt is the less common "02F2E2A" crash, which looks like stack corruption. It's helpful to have as many of these dumps as possible as I try to look for clues.
@novemb9r - Thanks for the two logs. Your first log is the less common version of the "02F2DCA" crash, where the CPU is saying that the instruction "test r15, r15" tried to write to memory address "1". But this instruction does not write to any address! If you look at the Intel specifications of the "test" instruction's behavior, the only exceptions it is allowed to throw on the CPU are related to memory read accesses or to incorrectly using a "lock" prefix. We don't have a "lock" prefix, and the instruction is the register/register form so it doesn't read memory. This means this instruction should never be able to throw any exceptions according to Intel's specifications. Furthermore, this instruction does not write to memory according to Intel's specifications. So the most logical explanation is a malfunctioning CPU.
Your second log is the more common "02F2DCA" crash, where "test r15, r15" is treated as "int 3".
@MagiTwit - Thanks for the log. Your crash is actually different than all the others! Based on a google search, I'm guessing that "IGO64.dll" is Origin's in-game overlay. It looks like it tried to call a function that didn't exist any more. Based on the address it tried to call, it looks like this is probably because the DLL that had that function got unloaded, so it may not even be the in-game overlay's fault (i.e., it may be that the DLL got unloaded when it shouldn't have). I'm going to see if we can forward this to EA's Origin team. Do you happen to remember what you were doing at the time of this crash?
Crashed back to back games. This crash did not give a crash log. Not sure why. Here is the event viewer information.
- OrioStorm7 years ago
EA Staff (Retired)
Thanks for the additional information @JorPorCorTTV.
It was a good idea to look at the Windows Event Viewer logs. Unfortunately, those logs basically say "I can't tell you where it crashed". I suspect that's because our anti-cheat is interfering with it.
I looked at your latest apex_crash.txt. It's saying the instruction "test r15, r15" was trying to write memory location 5. That's not a memory location we're allowed to write to, so it crashed. But the "test" instruction is asking "what bits are set", not writing memory... and there's no register that has the value 5, so I don't see any reason for it to complain about that address. It also looks like it's just done this instruction 137 times without crashing, since the loop counter is 137 (and starts at 0).
Yet again, it looks like the game is crashing because the CPU did something it wasn't asked to do. =/
I've got to believe there's some explanation for this, but right now it's a big mystery.
About Apex Legends Technical Issues
Community Highlights
- EA_Blueberry7 years ago
Community Manager
Recent Discussions
- 5 seconds ago
- 2 hours ago
Nintendo switch linking
Solved4 hours ago- 4 hours ago