summaryrefslogtreecommitdiff
path: root/src/video_core/host1x/control.h
diff options
context:
space:
mode:
authorGravatar Fernando Sahmkow2022-01-30 10:31:13 +0100
committerGravatar Fernando Sahmkow2022-10-06 21:00:52 +0200
commit668e80a9f42fb4ce0e16f6381d05bcbd286b2da1 (patch)
treea1c668d6c3d00eade849b1d31dba4116095e4c12 /src/video_core/host1x/control.h
parentTexture Cache: Fix GC and GPU Modified on Joins. (diff)
downloadyuzu-668e80a9f42fb4ce0e16f6381d05bcbd286b2da1.tar.gz
yuzu-668e80a9f42fb4ce0e16f6381d05bcbd286b2da1.tar.xz
yuzu-668e80a9f42fb4ce0e16f6381d05bcbd286b2da1.zip
VideoCore: Refactor syncing.
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