mirror of
https://github.com/doitsujin/dxvk.git
synced 2025-03-14 22:29:15 +01:00
[dxvk] Work around vkWaitSemaphore incorrectly returning with VK_TIMEOUT
This commit is contained in:
parent
07a1045ffb
commit
17959640c3
@ -104,7 +104,13 @@ namespace dxvk {
|
|||||||
waitInfo.pSemaphores = &m_semaphore;
|
waitInfo.pSemaphores = &m_semaphore;
|
||||||
waitInfo.pValues = &semaphoreValue;
|
waitInfo.pValues = &semaphoreValue;
|
||||||
|
|
||||||
VkResult vr = vk->vkWaitSemaphores(vk->device(), &waitInfo, ~0ull);
|
// 32-bit winevulkan on Proton seems to be broken here
|
||||||
|
// and returns with VK_TIMEOUT, even though the timeout
|
||||||
|
// is infinite. Work around this by spinning.
|
||||||
|
VkResult vr = VK_TIMEOUT;
|
||||||
|
|
||||||
|
while (vr == VK_TIMEOUT)
|
||||||
|
vr = vk->vkWaitSemaphores(vk->device(), &waitInfo, ~0ull);
|
||||||
|
|
||||||
if (vr)
|
if (vr)
|
||||||
Logger::err(str::format("Failed to synchronize with global timeline semaphore: ", vr));
|
Logger::err(str::format("Failed to synchronize with global timeline semaphore: ", vr));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user