summaryrefslogtreecommitdiffstats
path: root/src/core/hle/service/nvflinger/buffer_queue.h
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2021-08-19 00:42:46 +0200
committerGitHub <noreply@github.com>2021-08-19 00:42:46 +0200
commitaa40084c241129ef08081bae72bd5de1b4c86348 (patch)
treeb4f406cbf0f230cf9064040992ce3ef8bf54e5a7 /src/core/hle/service/nvflinger/buffer_queue.h
parentMerge pull request #6863 from spholz/fix-lan-play (diff)
parentcore: hle: kernel: Disable dispatch count tracking on single core. (diff)
downloadyuzu-aa40084c241129ef08081bae72bd5de1b4c86348.tar
yuzu-aa40084c241129ef08081bae72bd5de1b4c86348.tar.gz
yuzu-aa40084c241129ef08081bae72bd5de1b4c86348.tar.bz2
yuzu-aa40084c241129ef08081bae72bd5de1b4c86348.tar.lz
yuzu-aa40084c241129ef08081bae72bd5de1b4c86348.tar.xz
yuzu-aa40084c241129ef08081bae72bd5de1b4c86348.tar.zst
yuzu-aa40084c241129ef08081bae72bd5de1b4c86348.zip
Diffstat (limited to 'src/core/hle/service/nvflinger/buffer_queue.h')
-rw-r--r--src/core/hle/service/nvflinger/buffer_queue.h11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/core/hle/service/nvflinger/buffer_queue.h b/src/core/hle/service/nvflinger/buffer_queue.h
index 61e337ac5..759247eb0 100644
--- a/src/core/hle/service/nvflinger/buffer_queue.h
+++ b/src/core/hle/service/nvflinger/buffer_queue.h
@@ -24,6 +24,10 @@ class KReadableEvent;
class KWritableEvent;
} // namespace Kernel
+namespace Service::KernelHelpers {
+class ServiceContext;
+} // namespace Service::KernelHelpers
+
namespace Service::NVFlinger {
constexpr u32 buffer_slots = 0x40;
@@ -54,7 +58,8 @@ public:
NativeWindowFormat = 2,
};
- explicit BufferQueue(Kernel::KernelCore& kernel, u32 id_, u64 layer_id_);
+ explicit BufferQueue(Kernel::KernelCore& kernel, u32 id_, u64 layer_id_,
+ KernelHelpers::ServiceContext& service_context_);
~BufferQueue();
enum class BufferTransformFlags : u32 {
@@ -130,12 +135,14 @@ private:
std::list<u32> free_buffers;
std::array<Buffer, buffer_slots> buffers;
std::list<u32> queue_sequence;
- Kernel::KEvent buffer_wait_event;
+ Kernel::KEvent* buffer_wait_event{};
std::mutex free_buffers_mutex;
std::condition_variable free_buffers_condition;
std::mutex queue_sequence_mutex;
+
+ KernelHelpers::ServiceContext& service_context;
};
} // namespace Service::NVFlinger