Fix Vulkan timeout to be larger (5s)

#3967
This commit is contained in:
Wojtek Figat
2026-03-03 23:29:10 +01:00
parent ff81d339ef
commit 10bcf9c9a3
6 changed files with 25 additions and 24 deletions

View File

@@ -136,6 +136,15 @@ void CmdBufferVulkan::EndEvent()
#endif
void CmdBufferVulkan::Wait(float timeoutSeconds)
{
PROFILE_CPU();
ASSERT(IsSubmitted());
const bool failed = _device->FenceManager.WaitForFence(GetFence(), timeoutSeconds);
ASSERT(!failed);
RefreshFenceStatus();
}
void CmdBufferVulkan::RefreshFenceStatus()
{
if (_state == State::Submitted)
@@ -186,9 +195,8 @@ CmdBufferVulkan::~CmdBufferVulkan()
auto& fenceManager = _device->FenceManager;
if (_state == State::Submitted)
{
// Wait 60ms
const uint64 waitForCmdBufferInNanoSeconds = 60 * 1000 * 1000LL;
fenceManager.WaitAndReleaseFence(_fence, waitForCmdBufferInNanoSeconds);
// Wait
fenceManager.WaitAndReleaseFence(_fence);
}
else
{
@@ -281,15 +289,6 @@ void CmdBufferManagerVulkan::SubmitActiveCmdBuffer(SemaphoreVulkan* signalSemaph
_activeCmdBuffer = nullptr;
}
void CmdBufferManagerVulkan::WaitForCmdBuffer(CmdBufferVulkan* cmdBuffer, float timeInSecondsToWait)
{
PROFILE_CPU();
ASSERT(cmdBuffer->IsSubmitted());
const bool failed = _device->FenceManager.WaitForFence(cmdBuffer->GetFence(), (uint64)(timeInSecondsToWait * 1e9));
ASSERT(!failed);
cmdBuffer->RefreshFenceStatus();
}
void CmdBufferManagerVulkan::PrepareForNewActiveCommandBuffer()
{
PROFILE_CPU();