diff options
author | bunnei <bunneidev@gmail.com> | 2019-10-16 16:34:48 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-10-16 16:34:48 +0200 |
commit | ef9b31783d2c6af6ec21e5a8a4a9de4e340295c7 (patch) | |
tree | ccf16ff57bd3213bd364c6d96e1e702fe9e961a0 /src/core/hle/service/nvflinger/nvflinger.cpp | |
parent | Merge pull request #2984 from lioncash/fallthrough2 (diff) | |
parent | AsyncGpu: Address Feedback (diff) | |
download | yuzu-ef9b31783d2c6af6ec21e5a8a4a9de4e340295c7.tar yuzu-ef9b31783d2c6af6ec21e5a8a4a9de4e340295c7.tar.gz yuzu-ef9b31783d2c6af6ec21e5a8a4a9de4e340295c7.tar.bz2 yuzu-ef9b31783d2c6af6ec21e5a8a4a9de4e340295c7.tar.lz yuzu-ef9b31783d2c6af6ec21e5a8a4a9de4e340295c7.tar.xz yuzu-ef9b31783d2c6af6ec21e5a8a4a9de4e340295c7.tar.zst yuzu-ef9b31783d2c6af6ec21e5a8a4a9de4e340295c7.zip |
Diffstat (limited to 'src/core/hle/service/nvflinger/nvflinger.cpp')
-rw-r--r-- | src/core/hle/service/nvflinger/nvflinger.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/core/hle/service/nvflinger/nvflinger.cpp b/src/core/hle/service/nvflinger/nvflinger.cpp index 368f83f6c..cc9522aad 100644 --- a/src/core/hle/service/nvflinger/nvflinger.cpp +++ b/src/core/hle/service/nvflinger/nvflinger.cpp @@ -187,14 +187,18 @@ void NVFlinger::Compose() { MicroProfileFlip(); if (!buffer) { - // There was no queued buffer to draw, render previous frame - system.GetPerfStats().EndGameFrame(); - system.GPU().SwapBuffers({}); continue; } const auto& igbp_buffer = buffer->get().igbp_buffer; + const auto& gpu = system.GPU(); + const auto& multi_fence = buffer->get().multi_fence; + for (u32 fence_id = 0; fence_id < multi_fence.num_fences; fence_id++) { + const auto& fence = multi_fence.fences[fence_id]; + gpu.WaitFence(fence.id, fence.value); + } + // Now send the buffer to the GPU for drawing. // TODO(Subv): Support more than just disp0. The display device selection is probably based // on which display we're drawing (Default, Internal, External, etc) |