Merge pull request from ogniK5377/nvdec-close-dev

nvdrv: Cleanup CDMA Processor on device closure
This commit is contained in:
bunnei 2021-04-16 23:14:44 -07:00 committed by GitHub
commit 513b946494
3 changed files with 14 additions and 11 deletions
src/video_core

View file

@ -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,12 @@ 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
cdma_pusher.reset();
LOG_INFO(Service_NVDRV, "NVDEC video stream ended");
}
void GPU::SwapBuffers(const Tegra::FramebufferConfig* framebuffer) {
gpu_thread.SwapBuffers(framebuffer);
}