summaryrefslogtreecommitdiff
path: root/src/video_core/host1x/control.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/video_core/host1x/control.h')
-rw-r--r--src/video_core/host1x/control.h40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/video_core/host1x/control.h b/src/video_core/host1x/control.h
new file mode 100644
index 000000000..e117888a3
--- /dev/null
+++ b/src/video_core/host1x/control.h
@@ -0,0 +1,40 @@
1// SPDX-FileCopyrightText: 2021 yuzu Emulator Project
2// SPDX-FileCopyrightText: 2021 Skyline Team and Contributors
3// SPDX-License-Identifier: GPL-3.0-or-later
4
5#pragma once
6
7#include "common/common_types.h"
8
9namespace Tegra {
10
11namespace Host1x {
12
13class Host1x;
14class Nvdec;
15
16class Control {
17public:
18 enum class Method : u32 {
19 WaitSyncpt = 0x8,
20 LoadSyncptPayload32 = 0x4e,
21 WaitSyncpt32 = 0x50,
22 };
23
24 explicit Control(Host1x& host1x);
25 ~Control();
26
27 /// Writes the method into the state, Invoke Execute() if encountered
28 void ProcessMethod(Method method, u32 argument);
29
30private:
31 /// For Host1x, execute is waiting on a syncpoint previously written into the state
32 void Execute(u32 data);
33
34 u32 syncpoint_value{};
35 Host1x& host1x;
36};
37
38} // namespace Host1x
39
40} // namespace Tegra