Merge pull request #6125 from ogniK5377/nvdec-close-dev
nvdrv: Cleanup CDMA Processor on device closure
This commit is contained in:
		@@ -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);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user