diff options
author | Chloe Marcec <dmarcecguzman@gmail.com> | 2021-03-30 20:37:40 +1100 |
---|---|---|
committer | Chloe Marcec <dmarcecguzman@gmail.com> | 2021-03-30 20:37:40 +1100 |
commit | bf1c1788cab4740d8c46c30ad8a97021b2e858f9 (patch) | |
tree | 3d3228a9369adcfe1db58c698b4ba84e86376300 /src/video_core/gpu.cpp | |
parent | f234531f92bab2e35fd88594c61943777ff44677 (diff) |
nvdrv: Cleanup CDMA Processor on device closure
Brings us a step closer to unifying all channels to share a common interface.
Diffstat (limited to 'src/video_core/gpu.cpp')
-rw-r--r-- | src/video_core/gpu.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/video_core/gpu.cpp b/src/video_core/gpu.cpp index c61f446196..811e248a32 100644 --- a/src/video_core/gpu.cpp +++ b/src/video_core/gpu.cpp @@ -480,11 +480,7 @@ void GPU::PushCommandBuffer(Tegra::ChCommandHeaderList& entries) { if (!use_nvdec) { return; } - // This condition fires when a video stream ends, clear all intermediary data - if (entries[0].raw == 0xDEADB33F) { - cdma_pusher.reset(); - return; - } + if (!cdma_pusher) { cdma_pusher = std::make_unique<Tegra::CDmaPusher>(*this); } @@ -496,6 +492,13 @@ void GPU::PushCommandBuffer(Tegra::ChCommandHeaderList& entries) { cdma_pusher->ProcessEntries(std::move(entries)); } +void GPU::ClearCommandBuffer() { + // This condition fires when a video stream ends, clear all intermediary data + if (cdma_pusher) { + cdma_pusher.reset(); + } +} + void GPU::SwapBuffers(const Tegra::FramebufferConfig* framebuffer) { gpu_thread.SwapBuffers(framebuffer); } |