diff options
| author | 2020-12-28 01:02:06 -0500 | |
|---|---|---|
| committer | 2021-01-07 14:33:45 -0500 | |
| commit | 2c27127d04a155fe0f893e84263d58f14473785d (patch) | |
| tree | e72b7d973f5c0dd4a553f815a632bf8fcc687998 /src/video_core/command_classes | |
| parent | Merge pull request #5306 from MerryMage/ignore-library-Open (diff) | |
| download | yuzu-2c27127d04a155fe0f893e84263d58f14473785d.tar.gz yuzu-2c27127d04a155fe0f893e84263d58f14473785d.tar.xz yuzu-2c27127d04a155fe0f893e84263d58f14473785d.zip | |
nvdec syncpt incorporation
laying the groundwork for async gpu, although this does not fully implement async nvdec operations
Diffstat (limited to 'src/video_core/command_classes')
| -rw-r--r-- | src/video_core/command_classes/host1x.cpp | 6 | ||||
| -rw-r--r-- | src/video_core/command_classes/sync_manager.cpp | 2 |
2 files changed, 5 insertions, 3 deletions
diff --git a/src/video_core/command_classes/host1x.cpp b/src/video_core/command_classes/host1x.cpp index c4dd4881a..9d0a1b4d9 100644 --- a/src/video_core/command_classes/host1x.cpp +++ b/src/video_core/command_classes/host1x.cpp | |||
| @@ -34,6 +34,8 @@ void Tegra::Host1x::ProcessMethod(Method method, const std::vector<u32>& argumen | |||
| 34 | } | 34 | } |
| 35 | 35 | ||
| 36 | void Tegra::Host1x::Execute(u32 data) { | 36 | void Tegra::Host1x::Execute(u32 data) { |
| 37 | // This method waits on a valid syncpoint. | 37 | u32 syncpointId = (data & 0xFF); |
| 38 | // TODO: Implement when proper Async is in place | 38 | u32 threshold = state.load_syncpoint_payload32; |
| 39 | |||
| 40 | gpu.WaitFence(syncpointId, threshold); | ||
| 39 | } | 41 | } |
diff --git a/src/video_core/command_classes/sync_manager.cpp b/src/video_core/command_classes/sync_manager.cpp index 19dc9e0ab..579857766 100644 --- a/src/video_core/command_classes/sync_manager.cpp +++ b/src/video_core/command_classes/sync_manager.cpp | |||
| @@ -38,7 +38,7 @@ u32 SyncptIncrManager::IncrementWhenDone(u32 class_id, u32 id) { | |||
| 38 | } | 38 | } |
| 39 | 39 | ||
| 40 | void SyncptIncrManager::SignalDone(u32 handle) { | 40 | void SyncptIncrManager::SignalDone(u32 handle) { |
| 41 | const auto done_incr = | 41 | const auto& done_incr = |
| 42 | std::find_if(increments.begin(), increments.end(), | 42 | std::find_if(increments.begin(), increments.end(), |
| 43 | [handle](const SyncptIncr& incr) { return incr.id == handle; }); | 43 | [handle](const SyncptIncr& incr) { return incr.id == handle; }); |
| 44 | if (done_incr != increments.cend()) { | 44 | if (done_incr != increments.cend()) { |