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.h41
1 files changed, 41 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..04dac7d51
--- /dev/null
+++ b/src/video_core/host1x/control.h
@@ -0,0 +1,41 @@
1// SPDX-FileCopyrightText: 2021 yuzu emulator team and Skyline Team and Contributors
2// (https://github.com/skyline-emu/)
3// SPDX-License-Identifier: GPL-3.0-or-later Licensed under GPLv3
4// or any later version Refer to the license.txt file included.
5
6#pragma once
7
8#include "common/common_types.h"
9
10namespace Tegra {
11class GPU;
12
13namespace Host1x {
14
15class Nvdec;
16
17class Control {
18public:
19 enum class Method : u32 {
20 WaitSyncpt = 0x8,
21 LoadSyncptPayload32 = 0x4e,
22 WaitSyncpt32 = 0x50,
23 };
24
25 explicit Control(GPU& gpu);
26 ~Control();
27
28 /// Writes the method into the state, Invoke Execute() if encountered
29 void ProcessMethod(Method method, u32 argument);
30
31private:
32 /// For Host1x, execute is waiting on a syncpoint previously written into the state
33 void Execute(u32 data);
34
35 u32 syncpoint_value{};
36 GPU& gpu;
37};
38
39} // namespace Host1x
40
41} // namespace Tegra