mirror of
https://git.eden-emu.dev/eden-emu/eden.git
synced 2026-08-31 18:46:08 +00:00
vulkan vkQueue dispute fix
This commit is contained in:
@@ -177,6 +177,10 @@ try
|
||||
|
||||
RendererVulkan::~RendererVulkan() {
|
||||
scheduler.RegisterOnSubmit([] {});
|
||||
scheduler.WaitWorker();
|
||||
// vkDeviceWaitIdle MUST be called only after all queue submissions are complete
|
||||
// to avoid threading errors on VkQueue simultaneous access
|
||||
std::scoped_lock lock{scheduler.submit_mutex};
|
||||
void(device.GetLogical().WaitIdle());
|
||||
}
|
||||
|
||||
|
||||
@@ -30,6 +30,9 @@ BlitScreen::~BlitScreen() = default;
|
||||
void BlitScreen::WaitIdle() {
|
||||
present_manager.WaitPresent();
|
||||
scheduler.Finish();
|
||||
std::scoped_lock lock{scheduler.submit_mutex};
|
||||
// vkDeviceWaitIdle MUST be protected by submit_mutex to prevent racing with queue submissions
|
||||
// from the worker thread. This ensures no simultaneous access to VkQueue.
|
||||
device.GetLogical().WaitIdle();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user