summaryrefslogtreecommitdiffstats
path: root/src/core/hle/service/nvdrv/nvdrv.h
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2020-10-27 05:58:59 +0100
committerbunnei <bunneidev@gmail.com>2020-11-01 09:52:34 +0100
commit4a3fd97e4803a68ee260a0d9e38f293967b783b4 (patch)
treef8f608b0cfd660f66d3c2213c3eb9b2b6ca21765 /src/core/hle/service/nvdrv/nvdrv.h
parenthle: service: nvdrv: Implement SyncpointManager, to manage syncpoints. (diff)
downloadyuzu-4a3fd97e4803a68ee260a0d9e38f293967b783b4.tar
yuzu-4a3fd97e4803a68ee260a0d9e38f293967b783b4.tar.gz
yuzu-4a3fd97e4803a68ee260a0d9e38f293967b783b4.tar.bz2
yuzu-4a3fd97e4803a68ee260a0d9e38f293967b783b4.tar.lz
yuzu-4a3fd97e4803a68ee260a0d9e38f293967b783b4.tar.xz
yuzu-4a3fd97e4803a68ee260a0d9e38f293967b783b4.tar.zst
yuzu-4a3fd97e4803a68ee260a0d9e38f293967b783b4.zip
Diffstat (limited to 'src/core/hle/service/nvdrv/nvdrv.h')
-rw-r--r--src/core/hle/service/nvdrv/nvdrv.h14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/core/hle/service/nvdrv/nvdrv.h b/src/core/hle/service/nvdrv/nvdrv.h
index 7706a5590..f3d863dac 100644
--- a/src/core/hle/service/nvdrv/nvdrv.h
+++ b/src/core/hle/service/nvdrv/nvdrv.h
@@ -10,6 +10,7 @@
#include "common/common_types.h"
#include "core/hle/kernel/writable_event.h"
#include "core/hle/service/nvdrv/nvdata.h"
+#include "core/hle/service/nvdrv/syncpoint_manager.h"
#include "core/hle/service/service.h"
namespace Core {
@@ -22,15 +23,23 @@ class NVFlinger;
namespace Service::Nvidia {
+class SyncpointManager;
+
namespace Devices {
class nvdevice;
}
+/// Represents an Nvidia event
+struct NvEvent {
+ Kernel::EventPair event;
+ Fence fence{};
+};
+
struct EventInterface {
// Mask representing currently busy events
u64 events_mask{};
// Each kernel event associated to an NV event
- std::array<Kernel::EventPair, MaxNvEvents> events;
+ std::array<NvEvent, MaxNvEvents> events;
// The status of the current NVEvent
std::array<EventState, MaxNvEvents> status{};
// Tells if an NVEvent is registered or not
@@ -119,6 +128,9 @@ public:
std::shared_ptr<Kernel::WritableEvent> GetEventWriteable(u32 event_id) const;
private:
+ /// Manages syncpoints on the host
+ SyncpointManager syncpoint_manager;
+
/// Id to use for the next open file descriptor.
u32 next_fd = 1;