Skip to content
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

Vulkan device loss resilience - we should try to recover #17434

Open
hrydgard opened this issue May 8, 2023 · 1 comment
Open

Vulkan device loss resilience - we should try to recover #17434

hrydgard opened this issue May 8, 2023 · 1 comment
Labels
Milestone

Comments

@hrydgard
Copy link
Owner

hrydgard commented May 8, 2023

We still get the occasional crash report that's a Vulkan "device loss", see #17426 . This generally means that the GPU has crashed, or that the driver failed to perform some critical operation like allocating memory for itself.

There's actually no reason we can't try to just recreate the Vulkan device when this happens, and see if we can get it up and running again. Likely, a lot of the time it'll work, at least for a while. It'll just take a little bit of state tracking and logic.

If we can detect that the device loss was due to out-of-memory, we could then simply disable stuff like texture replacement/upscaling and reduce the render resolution automatically, in the hopes that we'll then fit into memory.

If we lose the device very frequently, like say five times in a minute, we should probably assert, or at least stop the running game and go back to the menu, then we can also LOG_REPORT for example.

@hrydgard hrydgard added the Vulkan label May 8, 2023
@hrydgard hrydgard added this to the v1.16.0 milestone May 8, 2023
@hrydgard
Copy link
Owner Author

Made an attempt at this in #17532 , but won't proceed for 1.16, not consistent enough.

@hrydgard hrydgard modified the milestones: v1.16.0, Future Aug 17, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant