-
Notifications
You must be signed in to change notification settings - Fork 28
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
"Device Lost" panic at high resolutions #84
Comments
I don't receive a "Device Lost" message, so I don't know if this is related or not. Fedora 40, nvidia GeForce 1660Ti, nvidia proprietary drivers ver. 560 with desktop resolution 3840 x 2160 Fresh release build using branches version_0_2_0, version_0_2_3 and version_0_3_0. Run via cd install && cargo run -r, no config file edits. It fairly reliably occurs when I pause emulation, obscure martypc behind another window, and then bring it back to the foreground. For 12 runs: 9 crashed on restoring the obscured window, 1 crashed when the emulation was first paused, 1 crashed when the window was first obscured, and 1 instance would not crash. Regardless when it did crash, the stack trace was always the same. Tail of terminal output:
Stack trace:
|
that is a crash within libnvidia-glcore.so, being called by an upstream library wgpu - your video drivers shouldn't crash, so that's a bug nvidia has to fix it's interesting it doesn't happen when the emulation is running. there's not much different going on video-wise when emulation is paused - i'm still updating the screen. the video driver shouldn't know or care that the emulation is paused. can you get it to reliably crash just pausing emulation while the window is in the foreground? |
No. Pause&Resume repeatedly, Pause & interact with all the menus, switch to another app for a while all work fine. Well, it pegs one core at 100% cpu, so the fan get a little noisy, but no stability issues that I can trigger as long as it remains on the screen. I can then resume, run some programs, minimize martypc, restore it and then obscure it with another window and then switch back just fine. |
can you show me a shot of your performance window while paused? (emulator->performance) are you pausing from the Machine menu or from the CPU Control window? |
the only thing I can postulate is that the screen texture stops being updated when the machine is paused, even though it is continually rendered. maybe somehow this causes the display drive to discard the texture when the program loses focus, and we crash with an invalid texture reference when it is shown again? I am not sure what I can do about this. I could set a flag to keep copying the buffer while paused, but that seems like a hack. best I can figure is to update wpgu and hope it has been fixed somehow |
I see you are using vulkan. can you try running with this env set to fall back to opengl: WGPU_BACKEND=gl and see if you still see the crashes |
I've tried, but can't get it to start. Apparently there is an issue in wgpu with nvidia on Linux at the moment: gfx-rs/wgpu#4751 |
I bought an ultrawide monitor recently and started getting very frequent crashes in MartyPC. I was experimenting with lower resolutions for testing and noticed the crashing stopped. Other testers have not had the same issue.
The native resolution of my monitor is 3440x1440, and my graphics card is a Nvidia 3080ti, on Windows 10. Driver version 546.65. If you have a similar issue please report the same specs here.
EDIT:
It's definitely resolution related, setting a lower resolution stopped the crashes, but they resumed as soon as I went back to native resolution.
It also appears that only the Vulkan backend is affected. After setting WGPU_BACKEND=dx12 the crashes also stopped. This would also indicate that it's not my bug.
The text was updated successfully, but these errors were encountered: