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_consumer.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 '')
-rw-r--r-- | src/core/hle/service/nvflinger/buffer_queue_consumer.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/core/hle/service/nvflinger/buffer_queue_consumer.cpp b/src/core/hle/service/nvflinger/buffer_queue_consumer.cpp index 4b3d5efd6..a0330ab4a 100644 --- a/src/core/hle/service/nvflinger/buffer_queue_consumer.cpp +++ b/src/core/hle/service/nvflinger/buffer_queue_consumer.cpp @@ -5,15 +5,18 @@ // https://cs.android.com/android/platform/superproject/+/android-5.1.1_r38:frameworks/native/libs/gui/BufferQueueConsumer.cpp #include "common/logging/log.h" +#include "core/hle/service/nvdrv/core/nvmap.h" #include "core/hle/service/nvflinger/buffer_item.h" #include "core/hle/service/nvflinger/buffer_queue_consumer.h" #include "core/hle/service/nvflinger/buffer_queue_core.h" #include "core/hle/service/nvflinger/producer_listener.h" +#include "core/hle/service/nvflinger/ui/graphic_buffer.h" namespace Service::android { -BufferQueueConsumer::BufferQueueConsumer(std::shared_ptr<BufferQueueCore> core_) - : core{std::move(core_)}, slots{core->slots} {} +BufferQueueConsumer::BufferQueueConsumer(std::shared_ptr<BufferQueueCore> core_, + Service::Nvidia::NvCore::NvMap& nvmap_) + : core{std::move(core_)}, slots{core->slots}, nvmap(nvmap_) {} BufferQueueConsumer::~BufferQueueConsumer() = default; @@ -133,6 +136,8 @@ Status BufferQueueConsumer::ReleaseBuffer(s32 slot, u64 frame_number, const Fenc slots[slot].buffer_state = BufferState::Free; + nvmap.FreeHandle(slots[slot].graphic_buffer->BufferId(), false); + listener = core->connected_producer_listener; LOG_DEBUG(Service_NVFlinger, "releasing slot {}", slot); |