Citra crashes GPU driver

Issue:
A driver crash occurs with Citra Canary 1659 when I idle a game for an unspecified amount of time (anywhere from 5 minutes of idle to 20-30 minutes, to none at all on some days). Its non-specific to just Canary 1659; tried back pedaling versions and I still result in the same crash.
I play a randomized rom of Fire Emblem Fates, but the same driver crash issue occurs with a non-randomized rom and a separate game. I can’t isolate what causes it, but I can repeat the driver crash with Citra only, and if I attempt to restart the game after a driver crash it’ll fail to load the game with the crash log attached below. It takes restarting the computer to allow Citra to run again.

My only guess as to the crash has to do with recent NVIDIA drivers and openGL conflicting, as event viewer raises errors when citra attempts to find nvidia’s ogl file. I definitely have the opengl driver, and the emulator and games work perfectly fine until the crash.

System Information
image
(Note that the game is not ran at 4K, but at 3x Native 720p)

  • Citra Version: 1659
  • Game: Fire Emblem Fates, but also happens with Fire Emblem Awakening
  • Screenshot of Issue: I can’t capture the CTD and black screens; however I can capture what’s shown in the Event Viewer on my PC.

Diagnostic Log
Upload your log file as an attachment by dragging & dropping.
citra_log.txt (12.3 KB)

System Information for Support

Client Version                                Nightly 1659 HEAD-3f13e1c
Operating System                              Windows 10 (10.0)
CPU                                           Intel(R) Core(TM) i9-10850K CPU @ 3.60GHz
Graphics API                                  OpenGL 3.3.0
Graphics Renderer                             GeForce RTX 3080/PCIe/SSE2
GPU Driver Version                            460.89
CPU JIT                                       [x]
Hardware Renderer                             [x]
Hardware Shader                               [x]
Hardware Shader, Accurate Multiplication      [ ]
Shader JIT                                    [x]
System Region                                 -1
Shader Disk Cache                             [ ]

Here’s some issues I found with your log that might help.

  • Enabling Accurate Multiplication is recomended in certain games. If you are experiencing graphical glitches, try enabling this option.

0xc0000409 aka STATUS_STACK_BUFFER_OVERRUN means: The system detected an overrun of a stack-based buffer in this application

Can you build Citra from source and run through Visual Studio so it can show the call stack?

I certainly can. Is there anything in particular I have to capture once I run it through VS? Will there be a dump log that VS makes should the application crash?

Should also note that in attempting to install Visual Studio I also got the GPU driver crash, though I ran through both a roll-back and a clean driver install, so I got no idea what’s going on lol.

I’ll have to let the game run/play it through and wait for it to crash again. When it does I’ll post here any crash logs that generate in VStudio. Thanks!

Hm so it is not unique to Citra. I think there is a more underlying issue on your system.

When you did a clean install of the drivers, did you ran DDU in safe mode first?

If it has been awhile since you did a complete clean reinstall of Windows you might consider doing that.

I had some issues upgrading straight from 1903 to 2004 but a clean reinstall (made bootable USB with Windows 10 install then deleted all partitions on the drive I wanted to install Windows to) fixed it.

Sometimes these feature updates break things.

Understood with the feature updates, however I had just done a clean install of Windows 20H2 when I acquired the hardware for this machine, so I do not believe it to be a windows update issue (though I wouldn’t be shocked if it was an NVIDIA issues given its a new GPU that’s causing this. Playing this on my old rig with an i7-4790K and a GTX 980 worked flawlessly with no crashes or issues).

I have the program built in studio, so I’ll play a rom until I get a crash again and will drop the logs here. Is there a particular log I need to post from Studio on this?

Ah fair enough.

Similar to this: https://github.com/citra-emu/citra/issues/5456

You can highlight all lines in the call stack then right click and pick copy with source paths.

You can also just make it bigger then take a screenshot:

Finally happened again (was shocking, had run the emulator for days at a time and got nothing to occur, ran it for near 6-7 hours today and it did the driver crash today).



I would post the log I had at the time, but given that I left it afk, its 1MB large, and the fact that it references my user account (rather not accidental doxx, lol), I won’t post the log. However I did screepcap what I normally saw the log post in yellow on the command prompt when I had it load debug alongside the emulator;

Would this help?
I also screencapped the Event Viewer instance of the crash; rather than it be a kernel exception, its a TDR crash.