diff options
author | ameerj <52414509+ameerj@users.noreply.github.com> | 2020-12-28 07:21:41 +0100 |
---|---|---|
committer | ameerj <52414509+ameerj@users.noreply.github.com> | 2021-01-07 20:33:45 +0100 |
commit | 06cef3355e415be83db3bc6d19b022de0b977580 (patch) | |
tree | e4252a544bf01586f651238a8a08c76bb2a3377f /src/video_core/command_classes/host1x.h | |
parent | nvdec syncpt incorporation (diff) | |
download | yuzu-06cef3355e415be83db3bc6d19b022de0b977580.tar yuzu-06cef3355e415be83db3bc6d19b022de0b977580.tar.gz yuzu-06cef3355e415be83db3bc6d19b022de0b977580.tar.bz2 yuzu-06cef3355e415be83db3bc6d19b022de0b977580.tar.lz yuzu-06cef3355e415be83db3bc6d19b022de0b977580.tar.xz yuzu-06cef3355e415be83db3bc6d19b022de0b977580.tar.zst yuzu-06cef3355e415be83db3bc6d19b022de0b977580.zip |
Diffstat (limited to 'src/video_core/command_classes/host1x.h')
-rw-r--r-- | src/video_core/command_classes/host1x.h | 49 |
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; }; |