Skip to content

Add VK_ERROR_DEVICE_LOST exception handling #459

@mgajda

Description

@mgajda

Summary

When the GPU is lost during a compute dispatch (TDR, thermal shutdown, OOM, driver crash), Vulkan-Hpp throws vk::DeviceLostError from vkQueueSubmit or vkWaitForFences. Kompute's Sequence::evalAsync / evalAwait set mIsRunning = true just before these calls but never reset it on an exception path — so any follow-up call (even just to destroy and retry) hits the "already running" guard and deadlocks.

Fix

Catch-and-rethrow around the two Vulkan calls so mIsRunning is cleared on any throw, while letting the exception (including vk::DeviceLostError) propagate unchanged to the caller.

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions