mirror of
https://github.com/xenia-project/xenia.git
synced 2025-12-06 07:12:03 +01:00
[UI] Fixed issue with freezing/crashing (BSOD) UI caused by incorrect fence
This commit is contained in:
parent
be44b9ba33
commit
7797adf5f2
|
|
@ -3134,7 +3134,8 @@ void D3D12CommandProcessor::CheckSubmissionFence(uint64_t await_submission) {
|
|||
queue_operations_since_submission_fence_, fence_value)) &&
|
||||
SUCCEEDED(
|
||||
queue_operations_since_submission_fence_->SetEventOnCompletion(
|
||||
fence_value, nullptr))) {
|
||||
fence_value, fence_completion_event_))) {
|
||||
WaitForSingleObject(fence_completion_event_, INFINITE);
|
||||
queue_operations_done_since_submission_signal_ = false;
|
||||
} else {
|
||||
XELOGE(
|
||||
|
|
@ -3150,8 +3151,9 @@ void D3D12CommandProcessor::CheckSubmissionFence(uint64_t await_submission) {
|
|||
uint64_t submission_completed_before = submission_completed_;
|
||||
submission_completed_ = submission_fence_->GetCompletedValue();
|
||||
if (submission_completed_ < await_submission) {
|
||||
if (SUCCEEDED(submission_fence_->SetEventOnCompletion(await_submission,
|
||||
nullptr))) {
|
||||
if (SUCCEEDED(submission_fence_->SetEventOnCompletion(
|
||||
await_submission, fence_completion_event_))) {
|
||||
WaitForSingleObject(fence_completion_event_, INFINITE);
|
||||
submission_completed_ = submission_fence_->GetCompletedValue();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -75,7 +75,12 @@ bool D3D12SubmissionTracker::AwaitSubmissionCompletion(
|
|||
fence_value = submission_signal_queued_;
|
||||
}
|
||||
if (fence_->GetCompletedValue() < fence_value) {
|
||||
if (FAILED(fence_->SetEventOnCompletion(fence_value, nullptr))) {
|
||||
if (FAILED(fence_->SetEventOnCompletion(fence_value,
|
||||
fence_completion_event_))) {
|
||||
return false;
|
||||
}
|
||||
if (WaitForSingleObject(fence_completion_event_, INFINITE) !=
|
||||
WAIT_OBJECT_0) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue