diff options
| author | 2019-07-26 14:26:44 -0400 | |
|---|---|---|
| committer | 2019-07-26 14:26:44 -0400 | |
| commit | 52f54c728d9691f113f0736fab8fbc60b408dceb (patch) | |
| tree | e02db0d667f818aacbd27e54927ef91e875eb2c2 /src/video_core/gpu_asynch.cpp | |
| parent | Merge pull request #2739 from lioncash/cflow (diff) | |
| parent | NVServices: Correct delayed responses. (diff) | |
| download | yuzu-52f54c728d9691f113f0736fab8fbc60b408dceb.tar.gz yuzu-52f54c728d9691f113f0736fab8fbc60b408dceb.tar.xz yuzu-52f54c728d9691f113f0736fab8fbc60b408dceb.zip | |
Merge pull request #2592 from FernandoS27/sync1
Implement GPU Synchronization Mechanisms & Correct NVFlinger
Diffstat (limited to 'src/video_core/gpu_asynch.cpp')
| -rw-r--r-- | src/video_core/gpu_asynch.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/video_core/gpu_asynch.cpp b/src/video_core/gpu_asynch.cpp index d4e2553a9..ea67be831 100644 --- a/src/video_core/gpu_asynch.cpp +++ b/src/video_core/gpu_asynch.cpp | |||
| @@ -2,6 +2,8 @@ | |||
| 2 | // Licensed under GPLv2 or any later version | 2 | // Licensed under GPLv2 or any later version |
| 3 | // Refer to the license.txt file included. | 3 | // Refer to the license.txt file included. |
| 4 | 4 | ||
| 5 | #include "core/core.h" | ||
| 6 | #include "core/hardware_interrupt_manager.h" | ||
| 5 | #include "video_core/gpu_asynch.h" | 7 | #include "video_core/gpu_asynch.h" |
| 6 | #include "video_core/gpu_thread.h" | 8 | #include "video_core/gpu_thread.h" |
| 7 | #include "video_core/renderer_base.h" | 9 | #include "video_core/renderer_base.h" |
| @@ -9,7 +11,7 @@ | |||
| 9 | namespace VideoCommon { | 11 | namespace VideoCommon { |
| 10 | 12 | ||
| 11 | GPUAsynch::GPUAsynch(Core::System& system, VideoCore::RendererBase& renderer) | 13 | GPUAsynch::GPUAsynch(Core::System& system, VideoCore::RendererBase& renderer) |
| 12 | : GPU(system, renderer), gpu_thread{system} {} | 14 | : GPU(system, renderer, true), gpu_thread{system} {} |
| 13 | 15 | ||
| 14 | GPUAsynch::~GPUAsynch() = default; | 16 | GPUAsynch::~GPUAsynch() = default; |
| 15 | 17 | ||
| @@ -38,4 +40,9 @@ void GPUAsynch::FlushAndInvalidateRegion(CacheAddr addr, u64 size) { | |||
| 38 | gpu_thread.FlushAndInvalidateRegion(addr, size); | 40 | gpu_thread.FlushAndInvalidateRegion(addr, size); |
| 39 | } | 41 | } |
| 40 | 42 | ||
| 43 | void GPUAsynch::TriggerCpuInterrupt(const u32 syncpoint_id, const u32 value) const { | ||
| 44 | auto& interrupt_manager = system.InterruptManager(); | ||
| 45 | interrupt_manager.GPUInterruptSyncpt(syncpoint_id, value); | ||
| 46 | } | ||
| 47 | |||
| 41 | } // namespace VideoCommon | 48 | } // namespace VideoCommon |