diff options
| author | 2022-07-10 06:59:40 +0100 | |
|---|---|---|
| committer | 2022-07-10 06:59:40 +0100 | |
| commit | 240650f6a6336df8d3eb11b410cdcd332d8ad562 (patch) | |
| tree | 16ae249e6160a22f88bd2238d43b23079c4afb44 /src/core/hardware_interrupt_manager.cpp | |
| parent | Merge pull request #8531 from FernandoS27/core-timing-fix-reg (diff) | |
| download | yuzu-240650f6a6336df8d3eb11b410cdcd332d8ad562.tar.gz yuzu-240650f6a6336df8d3eb11b410cdcd332d8ad562.tar.xz yuzu-240650f6a6336df8d3eb11b410cdcd332d8ad562.zip | |
Rework CoreTiming
Diffstat (limited to 'src/core/hardware_interrupt_manager.cpp')
| -rw-r--r-- | src/core/hardware_interrupt_manager.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/core/hardware_interrupt_manager.cpp b/src/core/hardware_interrupt_manager.cpp index d2d968a76..d08cc3315 100644 --- a/src/core/hardware_interrupt_manager.cpp +++ b/src/core/hardware_interrupt_manager.cpp | |||
| @@ -11,11 +11,14 @@ namespace Core::Hardware { | |||
| 11 | 11 | ||
| 12 | InterruptManager::InterruptManager(Core::System& system_in) : system(system_in) { | 12 | InterruptManager::InterruptManager(Core::System& system_in) : system(system_in) { |
| 13 | gpu_interrupt_event = Core::Timing::CreateEvent( | 13 | gpu_interrupt_event = Core::Timing::CreateEvent( |
| 14 | "GPUInterrupt", [this](std::uintptr_t message, std::chrono::nanoseconds) { | 14 | "GPUInterrupt", |
| 15 | [this](std::uintptr_t message, u64 time, | ||
| 16 | std::chrono::nanoseconds) -> std::optional<std::chrono::nanoseconds> { | ||
| 15 | auto nvdrv = system.ServiceManager().GetService<Service::Nvidia::NVDRV>("nvdrv"); | 17 | auto nvdrv = system.ServiceManager().GetService<Service::Nvidia::NVDRV>("nvdrv"); |
| 16 | const u32 syncpt = static_cast<u32>(message >> 32); | 18 | const u32 syncpt = static_cast<u32>(message >> 32); |
| 17 | const u32 value = static_cast<u32>(message); | 19 | const u32 value = static_cast<u32>(message); |
| 18 | nvdrv->SignalGPUInterruptSyncpt(syncpt, value); | 20 | nvdrv->SignalGPUInterruptSyncpt(syncpt, value); |
| 21 | return std::nullopt; | ||
| 19 | }); | 22 | }); |
| 20 | } | 23 | } |
| 21 | 24 | ||