vkd3d: Improve the EnqueueMakeResident stub
I don't see a method to wait for a fence, at least not without having a command queue. A suggestion I found online goes along the lines of:
if (fence->GetCompletedValue != expected) { HANDLE ev = CreateEvent(...); fence->SetEventOnCompletion(expected, ev); WaitForSingleObject(ev, INFINITE); CloseHandle(ev); }
Which I could write, but would be untested dead code as long as the other method is a stub. So busy waiting and writing one fixme every time we busy wait seems like a better choice for now.
Merge request reports
Activity
I don't see a method to wait for a fence, at least not without having a command queue. A suggestion I found online goes along the lines of:
if (fence->GetCompletedValue != expected) { HANDLE ev = CreateEvent(...); fence->SetEventOnCompletion(expected, ev); WaitForSingleObject(ev, INFINITE); CloseHandle(ev); }
It's a fair bit easier than that, actually. While perhaps not immediately obvious from the documentation, calling ID3D12Fence_SetEventOnCompletion(fence, value, NULL) will block until "fence" reaches "value".
added 18 commits
-
674a70be...f0a16d84 - 16 commits from branch
wine:master
- 3408b631 - vkd3d: Improve the EnqueueMakeResident stub.
- 47a02035 - vkd3d: Forward MakeResident to EnqueueMakeResident.
-
674a70be...f0a16d84 - 16 commits from branch
It's not obvious from the MR or commit messages, but this fixes a regression from exposing the ID3D12Device3 interface in commit 56cd6093.