diff options
| author | 2021-11-07 14:17:32 +0100 | |
|---|---|---|
| committer | 2022-10-06 21:00:51 +0200 | |
| commit | 2c62563ab58a70236a39571149f8370f3fdfb2a3 (patch) | |
| tree | 02cfe114d95ca19d1b35cbdd659d8ca8f27fb501 /src/video_core/gpu.cpp | |
| parent | VideoCore: implement channels on gpu caches. (diff) | |
| download | yuzu-2c62563ab58a70236a39571149f8370f3fdfb2a3.tar.gz yuzu-2c62563ab58a70236a39571149f8370f3fdfb2a3.tar.xz yuzu-2c62563ab58a70236a39571149f8370f3fdfb2a3.zip | |
NVHOST_CTRl: Implement missing method and fix some stuffs.
Diffstat (limited to 'src/video_core/gpu.cpp')
| -rw-r--r-- | src/video_core/gpu.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/video_core/gpu.cpp b/src/video_core/gpu.cpp index 80a1c69e0..8c0ff0094 100644 --- a/src/video_core/gpu.cpp +++ b/src/video_core/gpu.cpp | |||
| @@ -249,6 +249,11 @@ struct GPU::Impl { | |||
| 249 | 249 | ||
| 250 | void RegisterSyncptInterrupt(u32 syncpoint_id, u32 value) { | 250 | void RegisterSyncptInterrupt(u32 syncpoint_id, u32 value) { |
| 251 | std::scoped_lock lock{sync_mutex}; | 251 | std::scoped_lock lock{sync_mutex}; |
| 252 | u32 current_value = syncpoints.at(syncpoint_id).load(); | ||
| 253 | if ((static_cast<s32>(current_value) - static_cast<s32>(value)) >= 0) { | ||
| 254 | TriggerCpuInterrupt(syncpoint_id, value); | ||
| 255 | return; | ||
| 256 | } | ||
| 252 | auto& interrupt = syncpt_interrupts.at(syncpoint_id); | 257 | auto& interrupt = syncpt_interrupts.at(syncpoint_id); |
| 253 | bool contains = std::any_of(interrupt.begin(), interrupt.end(), | 258 | bool contains = std::any_of(interrupt.begin(), interrupt.end(), |
| 254 | [value](u32 in_value) { return in_value == value; }); | 259 | [value](u32 in_value) { return in_value == value; }); |