diff options
| author | bunnei <bunneidev@gmail.com> | 2018-03-18 22:25:09 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-03-18 22:25:09 -0400 |
| commit | 2dc3a56e9602e0bfba9bfc19f31f0433d1564ccc (patch) | |
| tree | 6e49476a6c0c1a333090a01afa7a4fbfd11b8888 /src/core/hle/service/nvflinger/buffer_queue.h | |
| parent | 2332a44b681473509ca67438b5b3a2bddc91a60b (diff) | |
| parent | c1c92c30f9951e41a2091770cc5bf1354fba7794 (diff) | |
Merge pull request #250 from bunnei/buffer-dequeue-wait
vi: TransactParcel DequeueBuffer should wait current thread
Diffstat (limited to 'src/core/hle/service/nvflinger/buffer_queue.h')
| -rw-r--r-- | src/core/hle/service/nvflinger/buffer_queue.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/core/hle/service/nvflinger/buffer_queue.h b/src/core/hle/service/nvflinger/buffer_queue.h index ef9732769..686eadca7 100644 --- a/src/core/hle/service/nvflinger/buffer_queue.h +++ b/src/core/hle/service/nvflinger/buffer_queue.h @@ -69,12 +69,13 @@ public: }; void SetPreallocatedBuffer(u32 slot, IGBPBuffer& buffer); - u32 DequeueBuffer(u32 pixel_format, u32 width, u32 height); + boost::optional<u32> DequeueBuffer(u32 width, u32 height); const IGBPBuffer& RequestBuffer(u32 slot) const; void QueueBuffer(u32 slot, BufferTransformFlags transform); boost::optional<const Buffer&> AcquireBuffer(); void ReleaseBuffer(u32 slot); u32 Query(QueryType type); + void SetBufferWaitEvent(Kernel::SharedPtr<Kernel::Event>&& wait_event); u32 GetId() const { return id; @@ -90,6 +91,9 @@ private: std::vector<Buffer> queue; Kernel::SharedPtr<Kernel::Event> native_handle; + + /// Used to signal waiting thread when no buffers are available + Kernel::SharedPtr<Kernel::Event> buffer_wait_event; }; } // namespace NVFlinger |
