mirror of
https://git.eden-emu.dev/eden-emu/eden
synced 2026-04-24 07:39:00 +02:00
[vk] Handling threading missuse of VkQueue
This commit is contained in:
parent
311f06047b
commit
6c1fc4b4ed
2 changed files with 4 additions and 1 deletions
|
|
@ -177,6 +177,8 @@ try
|
||||||
|
|
||||||
RendererVulkan::~RendererVulkan() {
|
RendererVulkan::~RendererVulkan() {
|
||||||
scheduler.RegisterOnSubmit([] {});
|
scheduler.RegisterOnSubmit([] {});
|
||||||
|
// Acquire submit_mutex before WaitIdle to prevent simultaneous queue access
|
||||||
|
std::scoped_lock lock{scheduler.submit_mutex};
|
||||||
void(device.GetLogical().WaitIdle());
|
void(device.GetLogical().WaitIdle());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,8 @@ BlitScreen::~BlitScreen() = default;
|
||||||
void BlitScreen::WaitIdle() {
|
void BlitScreen::WaitIdle() {
|
||||||
present_manager.WaitPresent();
|
present_manager.WaitPresent();
|
||||||
scheduler.Finish();
|
scheduler.Finish();
|
||||||
device.GetLogical().WaitIdle();
|
// Note: scheduler.Finish() already waits for GPU and synchronizes submit_mutex
|
||||||
|
// Calling device.WaitIdle() here causes threading errors (simultaneous queue access)
|
||||||
}
|
}
|
||||||
|
|
||||||
void BlitScreen::SetWindowAdaptPass() {
|
void BlitScreen::SetWindowAdaptPass() {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue