aboutsummaryrefslogtreecommitdiff
path: root/src/core/hle/service/nvflinger
diff options
context:
space:
mode:
authorReinUsesLisp <reinuseslisp@airmail.cc>2020-04-04 23:29:56 -0300
committerReinUsesLisp <reinuseslisp@airmail.cc>2020-04-10 01:00:50 -0300
commit8c0ba9c6fe3e311e3acc476f4925eae0b1aaa09b (patch)
treee9044c8e123298d98a608d1835ace1f41a07c9a0 /src/core/hle/service/nvflinger
parentf570b129a203108cf7bebb12df5376f5a2964f05 (diff)
service/vi: Partially implement BufferQueue disconnect
Diffstat (limited to 'src/core/hle/service/nvflinger')
-rw-r--r--src/core/hle/service/nvflinger/buffer_queue.cpp7
-rw-r--r--src/core/hle/service/nvflinger/buffer_queue.h1
2 files changed, 8 insertions, 0 deletions
diff --git a/src/core/hle/service/nvflinger/buffer_queue.cpp b/src/core/hle/service/nvflinger/buffer_queue.cpp
index 32b6f4b27..ad0e4ff73 100644
--- a/src/core/hle/service/nvflinger/buffer_queue.cpp
+++ b/src/core/hle/service/nvflinger/buffer_queue.cpp
@@ -103,6 +103,13 @@ void BufferQueue::ReleaseBuffer(u32 slot) {
buffer_wait_event.writable->Signal();
}
+void BufferQueue::Disconnect() {
+ queue.clear();
+ queue_sequence.clear();
+ id = 1;
+ layer_id = 1;
+}
+
u32 BufferQueue::Query(QueryType type) {
LOG_WARNING(Service, "(STUBBED) called type={}", static_cast<u32>(type));
diff --git a/src/core/hle/service/nvflinger/buffer_queue.h b/src/core/hle/service/nvflinger/buffer_queue.h
index f4bbfd945..f3edb6dfb 100644
--- a/src/core/hle/service/nvflinger/buffer_queue.h
+++ b/src/core/hle/service/nvflinger/buffer_queue.h
@@ -87,6 +87,7 @@ public:
Service::Nvidia::MultiFence& multi_fence);
std::optional<std::reference_wrapper<const Buffer>> AcquireBuffer();
void ReleaseBuffer(u32 slot);
+ void Disconnect();
u32 Query(QueryType type);
u32 GetId() const {