diff options
author | clayjohn <claynjohn@gmail.com> | 2024-11-08 13:20:05 -0800 |
---|---|---|
committer | clayjohn <claynjohn@gmail.com> | 2024-11-08 13:20:05 -0800 |
commit | 05576a2324559c7db69c17e5a1f9f537e161eb8e (patch) | |
tree | e2e08b321bb92c208ce1a8a47590afda7c35565a /drivers | |
parent | 77dcf97d82cbfe4e4615475fa52ca03da645dbd8 (diff) | |
download | redot-engine-05576a2324559c7db69c17e5a1f9f537e161eb8e.tar.gz |
Move D3D12 fence SetEventOnCompletion call to fence_wait to avoid stalling on some platforms
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/d3d12/rendering_device_driver_d3d12.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/d3d12/rendering_device_driver_d3d12.cpp b/drivers/d3d12/rendering_device_driver_d3d12.cpp index a33fc977c6..6fce5701cf 100644 --- a/drivers/d3d12/rendering_device_driver_d3d12.cpp +++ b/drivers/d3d12/rendering_device_driver_d3d12.cpp @@ -2192,6 +2192,7 @@ RDD::FenceID RenderingDeviceDriverD3D12::fence_create() { Error RenderingDeviceDriverD3D12::fence_wait(FenceID p_fence) { FenceInfo *fence = (FenceInfo *)(p_fence.id); + fence->d3d_fence->SetEventOnCompletion(fence->fence_value, fence->event_handle); DWORD res = WaitForSingleObjectEx(fence->event_handle, INFINITE, FALSE); #ifdef PIX_ENABLED PIXNotifyWakeFromFenceSignal(fence->event_handle); @@ -2286,7 +2287,6 @@ Error RenderingDeviceDriverD3D12::command_queue_execute_and_present(CommandQueue FenceInfo *fence = (FenceInfo *)(p_cmd_fence.id); fence->fence_value++; command_queue->d3d_queue->Signal(fence->d3d_fence.Get(), fence->fence_value); - fence->d3d_fence->SetEventOnCompletion(fence->fence_value, fence->event_handle); } } |