From bf1c1788cab4740d8c46c30ad8a97021b2e858f9 Mon Sep 17 00:00:00 2001 From: Chloe Marcec Date: Tue, 30 Mar 2021 20:37:40 +1100 Subject: nvdrv: Cleanup CDMA Processor on device closure Brings us a step closer to unifying all channels to share a common interface. --- src/video_core/gpu.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'src/video_core/gpu.cpp') diff --git a/src/video_core/gpu.cpp b/src/video_core/gpu.cpp index c61f44619..811e248a3 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(*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); } -- cgit v1.2.3 From edb1d5d242f5b86543b17a091ed31ebb02dabec0 Mon Sep 17 00:00:00 2001 From: Chloe Marcec Date: Fri, 16 Apr 2021 13:52:32 +1000 Subject: Address issues --- src/video_core/gpu.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'src/video_core/gpu.cpp') diff --git a/src/video_core/gpu.cpp b/src/video_core/gpu.cpp index 811e248a3..36c31fec2 100644 --- a/src/video_core/gpu.cpp +++ b/src/video_core/gpu.cpp @@ -494,9 +494,8 @@ void GPU::PushCommandBuffer(Tegra::ChCommandHeaderList& entries) { void GPU::ClearCommandBuffer() { // This condition fires when a video stream ends, clear all intermediary data - if (cdma_pusher) { - cdma_pusher.reset(); - } + cdma_pusher.reset(); + LOG_INFO(Service_NVDRV, "NVDEC video stream ended"); } void GPU::SwapBuffers(const Tegra::FramebufferConfig* framebuffer) { -- cgit v1.2.3