summaryrefslogtreecommitdiffstats
path: root/src/core/hle/service/nvdrv/core/container.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/hle/service/nvdrv/core/container.h')
-rw-r--r--src/core/hle/service/nvdrv/core/container.h23
1 files changed, 17 insertions, 6 deletions
diff --git a/src/core/hle/service/nvdrv/core/container.h b/src/core/hle/service/nvdrv/core/container.h
index 5c8b95803..b4b63ac90 100644
--- a/src/core/hle/service/nvdrv/core/container.h
+++ b/src/core/hle/service/nvdrv/core/container.h
@@ -4,15 +4,15 @@
#pragma once
+#include <deque>
#include <memory>
+#include <unordered_map>
-namespace Tegra {
+#include "core/hle/service/nvdrv/nvdata.h"
-namespace Host1x {
+namespace Tegra::Host1x {
class Host1x;
-} // namespace Host1x
-
-} // namespace Tegra
+} // namespace Tegra::Host1x
namespace Service::Nvidia::NvCore {
@@ -23,7 +23,7 @@ struct ContainerImpl;
class Container {
public:
- Container(Tegra::Host1x::Host1x& host1x);
+ explicit Container(Tegra::Host1x::Host1x& host1x);
~Container();
NvMap& GetNvMapFile();
@@ -34,6 +34,17 @@ public:
const SyncpointManager& GetSyncpointManager() const;
+ struct Host1xDeviceFileData {
+ std::unordered_map<DeviceFD, u32> fd_to_id{};
+ std::deque<u32> syncpts_accumulated{};
+ u32 nvdec_next_id{};
+ u32 vic_next_id{};
+ };
+
+ Host1xDeviceFileData& Host1xDeviceFile();
+
+ const Host1xDeviceFileData& Host1xDeviceFile() const;
+
private:
std::unique_ptr<ContainerImpl> impl;
};