diff options
| author | 2021-04-16 23:14:44 -0700 | |
|---|---|---|
| committer | 2021-04-16 23:14:44 -0700 | |
| commit | 9ad77ba6d388c93b8f2258d6faab8b68342742ff (patch) | |
| tree | d7f9fe69b8ed0504f7285d000d6c5e7c570870c3 /src/video_core/gpu.cpp | |
| parent | Merge pull request #6133 from Morph1984/project-eleuthia (diff) | |
| parent | Address issues (diff) | |
| download | yuzu-9ad77ba6d388c93b8f2258d6faab8b68342742ff.tar.gz yuzu-9ad77ba6d388c93b8f2258d6faab8b68342742ff.tar.xz yuzu-9ad77ba6d388c93b8f2258d6faab8b68342742ff.zip | |
Merge pull request #6125 from ogniK5377/nvdec-close-dev
nvdrv: Cleanup CDMA Processor on device closure
Diffstat (limited to 'src/video_core/gpu.cpp')
| -rw-r--r-- | src/video_core/gpu.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/video_core/gpu.cpp b/src/video_core/gpu.cpp index 9bdb282d2..7c42f1177 100644 --- a/src/video_core/gpu.cpp +++ b/src/video_core/gpu.cpp | |||
| @@ -480,11 +480,7 @@ void GPU::PushCommandBuffer(Tegra::ChCommandHeaderList& entries) { | |||
| 480 | if (!use_nvdec) { | 480 | if (!use_nvdec) { |
| 481 | return; | 481 | return; |
| 482 | } | 482 | } |
| 483 | // This condition fires when a video stream ends, clear all intermediary data | 483 | |
| 484 | if (entries[0].raw == 0xDEADB33F) { | ||
| 485 | cdma_pusher.reset(); | ||
| 486 | return; | ||
| 487 | } | ||
| 488 | if (!cdma_pusher) { | 484 | if (!cdma_pusher) { |
| 489 | cdma_pusher = std::make_unique<Tegra::CDmaPusher>(*this); | 485 | cdma_pusher = std::make_unique<Tegra::CDmaPusher>(*this); |
| 490 | } | 486 | } |
| @@ -496,6 +492,12 @@ void GPU::PushCommandBuffer(Tegra::ChCommandHeaderList& entries) { | |||
| 496 | cdma_pusher->ProcessEntries(std::move(entries)); | 492 | cdma_pusher->ProcessEntries(std::move(entries)); |
| 497 | } | 493 | } |
| 498 | 494 | ||
| 495 | void GPU::ClearCommandBuffer() { | ||
| 496 | // This condition fires when a video stream ends, clear all intermediary data | ||
| 497 | cdma_pusher.reset(); | ||
| 498 | LOG_INFO(Service_NVDRV, "NVDEC video stream ended"); | ||
| 499 | } | ||
| 500 | |||
| 499 | void GPU::SwapBuffers(const Tegra::FramebufferConfig* framebuffer) { | 501 | void GPU::SwapBuffers(const Tegra::FramebufferConfig* framebuffer) { |
| 500 | gpu_thread.SwapBuffers(framebuffer); | 502 | gpu_thread.SwapBuffers(framebuffer); |
| 501 | } | 503 | } |