From cd3a15aea514234153d0afcaaed0009086492bd9 Mon Sep 17 00:00:00 2001 From: gdkchan Date: Sat, 14 Jan 2023 00:16:06 -0300 Subject: [PATCH] Fix NRE when MemoryUnmappedHandler is called for a destroyed channel (#4285) --- Ryujinx.Graphics.Gpu/GpuChannel.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Ryujinx.Graphics.Gpu/GpuChannel.cs b/Ryujinx.Graphics.Gpu/GpuChannel.cs index fe8587629..43fa8484b 100644 --- a/Ryujinx.Graphics.Gpu/GpuChannel.cs +++ b/Ryujinx.Graphics.Gpu/GpuChannel.cs @@ -73,7 +73,7 @@ namespace Ryujinx.Graphics.Gpu // Since the memory manager changed, make sure we will get pools from addresses of the new memory manager. TextureManager.ReloadPools(); - MemoryManager.Physical.BufferCache.QueuePrune(); + memoryManager.Physical.BufferCache.QueuePrune(); } /// @@ -84,7 +84,9 @@ namespace Ryujinx.Graphics.Gpu private void MemoryUnmappedHandler(object sender, UnmapEventArgs e) { TextureManager.ReloadPools(); - MemoryManager.Physical.BufferCache.QueuePrune(); + + var memoryManager = Volatile.Read(ref _memoryManager); + memoryManager?.Physical.BufferCache.QueuePrune(); } ///