diff options
author | VonChenPlus <vonchenplus@gmail.com> | 2022-06-27 06:39:57 +0200 |
---|---|---|
committer | Fernando Sahmkow <fsahmkow27@gmail.com> | 2022-10-06 21:00:53 +0200 |
commit | 9982cff98b4db38565715cc515ea496b6195725b (patch) | |
tree | 08ac644dcb6d51b4deda281133fa31b40b7cc3d7 /src/core/hle/service/nvflinger/buffer_queue_producer.cpp | |
parent | General: Fix clang format. (diff) | |
download | yuzu-9982cff98b4db38565715cc515ea496b6195725b.tar yuzu-9982cff98b4db38565715cc515ea496b6195725b.tar.gz yuzu-9982cff98b4db38565715cc515ea496b6195725b.tar.bz2 yuzu-9982cff98b4db38565715cc515ea496b6195725b.tar.lz yuzu-9982cff98b4db38565715cc515ea496b6195725b.tar.xz yuzu-9982cff98b4db38565715cc515ea496b6195725b.tar.zst yuzu-9982cff98b4db38565715cc515ea496b6195725b.zip |
Diffstat (limited to 'src/core/hle/service/nvflinger/buffer_queue_producer.cpp')
-rw-r--r-- | src/core/hle/service/nvflinger/buffer_queue_producer.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/core/hle/service/nvflinger/buffer_queue_producer.cpp b/src/core/hle/service/nvflinger/buffer_queue_producer.cpp index 337431488..a4e46964c 100644 --- a/src/core/hle/service/nvflinger/buffer_queue_producer.cpp +++ b/src/core/hle/service/nvflinger/buffer_queue_producer.cpp @@ -14,7 +14,7 @@ #include "core/hle/kernel/k_writable_event.h" #include "core/hle/kernel/kernel.h" #include "core/hle/service/kernel_helpers.h" -#include "core/hle/service/nvdrv/nvdrv.h" +#include "core/hle/service/nvdrv/core/nvmap.h" #include "core/hle/service/nvflinger/buffer_queue_core.h" #include "core/hle/service/nvflinger/buffer_queue_producer.h" #include "core/hle/service/nvflinger/consumer_listener.h" @@ -26,8 +26,10 @@ namespace Service::android { BufferQueueProducer::BufferQueueProducer(Service::KernelHelpers::ServiceContext& service_context_, - std::shared_ptr<BufferQueueCore> buffer_queue_core_) - : service_context{service_context_}, core{std::move(buffer_queue_core_)}, slots(core->slots) { + std::shared_ptr<BufferQueueCore> buffer_queue_core_, + Service::Nvidia::NvCore::NvMap& nvmap_) + : service_context{service_context_}, core{std::move(buffer_queue_core_)}, slots(core->slots), + nvmap(nvmap_) { buffer_wait_event = service_context.CreateEvent("BufferQueue:WaitEvent"); } @@ -530,6 +532,8 @@ Status BufferQueueProducer::QueueBuffer(s32 slot, const QueueBufferInput& input, item.is_droppable = core->dequeue_buffer_cannot_block || async; item.swap_interval = swap_interval; + nvmap.DuplicateHandle(item.graphic_buffer->BufferId()); + sticky_transform = sticky_transform_; if (core->queue.empty()) { |