summaryrefslogtreecommitdiffstats
path: root/src/video_core/command_classes/host1x.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/video_core/command_classes/host1x.h')
-rw-r--r--src/video_core/command_classes/host1x.h49
1 files changed, 4 insertions, 45 deletions
diff --git a/src/video_core/command_classes/host1x.h b/src/video_core/command_classes/host1x.h
index 013eaa0c1..7e94799dd 100644
--- a/src/video_core/command_classes/host1x.h
+++ b/src/video_core/command_classes/host1x.h
@@ -14,64 +14,23 @@ class Nvdec;
class Host1x {
public:
- struct Host1xClassRegisters {
- u32 incr_syncpt{};
- u32 incr_syncpt_ctrl{};
- u32 incr_syncpt_error{};
- INSERT_PADDING_WORDS(5);
- u32 wait_syncpt{};
- u32 wait_syncpt_base{};
- u32 wait_syncpt_incr{};
- u32 load_syncpt_base{};
- u32 incr_syncpt_base{};
- u32 clear{};
- u32 wait{};
- u32 wait_with_interrupt{};
- u32 delay_use{};
- u32 tick_count_high{};
- u32 tick_count_low{};
- u32 tick_ctrl{};
- INSERT_PADDING_WORDS(23);
- u32 ind_ctrl{};
- u32 ind_off2{};
- u32 ind_off{};
- std::array<u32, 31> ind_data{};
- INSERT_PADDING_WORDS(1);
- u32 load_syncpoint_payload32{};
- u32 stall_ctrl{};
- u32 wait_syncpt32{};
- u32 wait_syncpt_base32{};
- u32 load_syncpt_base32{};
- u32 incr_syncpt_base32{};
- u32 stall_count_high{};
- u32 stall_count_low{};
- u32 xref_ctrl{};
- u32 channel_xref_high{};
- u32 channel_xref_low{};
- };
- static_assert(sizeof(Host1xClassRegisters) == 0x164, "Host1xClassRegisters is an invalid size");
-
enum class Method : u32 {
- WaitSyncpt = offsetof(Host1xClassRegisters, wait_syncpt) / 4,
- LoadSyncptPayload32 = offsetof(Host1xClassRegisters, load_syncpoint_payload32) / 4,
- WaitSyncpt32 = offsetof(Host1xClassRegisters, wait_syncpt32) / 4,
+ WaitSyncpt = 0x8,
+ LoadSyncptPayload32 = 0x4e,
+ WaitSyncpt32 = 0x50,
};
explicit Host1x(GPU& gpu);
~Host1x();
/// Writes the method into the state, Invoke Execute() if encountered
- void ProcessMethod(Method method, const std::vector<u32>& arguments);
+ void ProcessMethod(Method method, u32 argument);
private:
/// For Host1x, execute is waiting on a syncpoint previously written into the state
void Execute(u32 data);
- /// Write argument into the provided offset
- void StateWrite(u32 offset, u32 arguments);
-
u32 syncpoint_value{};
- Host1xClassRegisters state{};
GPU& gpu;
};