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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions