Просмотр исходного кода

Decrement nvmap reference count on surface flinger prealloc (#5753)

gdkchan 2 лет назад
Родитель
Сommit
8b2625b0be
1 измененных файлов с 6 добавлено и 0 удалено
  1. 6 0
      src/Ryujinx.HLE/HOS/Services/SurfaceFlinger/BufferQueueProducer.cs

+ 6 - 0
src/Ryujinx.HLE/HOS/Services/SurfaceFlinger/BufferQueueProducer.cs

@@ -669,6 +669,12 @@ namespace Ryujinx.HLE.HOS.Services.SurfaceFlinger
 
 
             lock (Core.Lock)
             lock (Core.Lock)
             {
             {
+                // If we are replacing a buffer that has already been queued, make sure we release the references.
+                if (Core.Slots[slot].BufferState == BufferState.Queued)
+                {
+                    Core.Slots[slot].GraphicBuffer.Object.DecrementNvMapHandleRefCount(Core.Owner);
+                }
+
                 Core.Slots[slot].BufferState = BufferState.Free;
                 Core.Slots[slot].BufferState = BufferState.Free;
                 Core.Slots[slot].Fence = AndroidFence.NoFence;
                 Core.Slots[slot].Fence = AndroidFence.NoFence;
                 Core.Slots[slot].RequestBufferCalled = false;
                 Core.Slots[slot].RequestBufferCalled = false;