diff options
Diffstat (limited to 'src/video_core/host1x/control.h')
| -rw-r--r-- | src/video_core/host1x/control.h | 41 |
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 | |||
| 10 | namespace Tegra { | ||
| 11 | class GPU; | ||
| 12 | |||
| 13 | namespace Host1x { | ||
| 14 | |||
| 15 | class Nvdec; | ||
| 16 | |||
| 17 | class Control { | ||
| 18 | public: | ||
| 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 | |||
| 31 | private: | ||
| 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 | ||