From ca5ac37cd638222e7475ac8f632b878126f3462d Mon Sep 17 00:00:00 2001 From: riperiperi Date: Fri, 16 Jul 2021 22:10:20 +0100 Subject: Flush buffers and texture data through a persistent mapped buffer. (#2481) * Use persistent buffers to flush texture data * Flush buffers via copy to persistent buffers. * Log error when timing out, small refactoring. --- Ryujinx.Graphics.OpenGL/Renderer.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'Ryujinx.Graphics.OpenGL/Renderer.cs') diff --git a/Ryujinx.Graphics.OpenGL/Renderer.cs b/Ryujinx.Graphics.OpenGL/Renderer.cs index 001cac8d..41629c1d 100644 --- a/Ryujinx.Graphics.OpenGL/Renderer.cs +++ b/Ryujinx.Graphics.OpenGL/Renderer.cs @@ -30,6 +30,8 @@ namespace Ryujinx.Graphics.OpenGL public event EventHandler ScreenCaptured; + internal PersistentBuffers PersistentBuffers { get; } + internal ResourcePool ResourcePool { get; } internal int BufferCount { get; private set; } @@ -46,6 +48,7 @@ namespace Ryujinx.Graphics.OpenGL _textureCopy = new TextureCopy(this); _backgroundTextureCopy = new TextureCopy(this); _sync = new Sync(); + PersistentBuffers = new PersistentBuffers(); ResourcePool = new ResourcePool(); } @@ -90,7 +93,7 @@ namespace Ryujinx.Graphics.OpenGL public byte[] GetBufferData(BufferHandle buffer, int offset, int size) { - return Buffer.GetData(buffer, offset, size); + return PersistentBuffers.Default.GetBufferData(buffer, offset, size); } public Capabilities GetCapabilities() @@ -177,6 +180,7 @@ namespace Ryujinx.Graphics.OpenGL { _textureCopy.Dispose(); _backgroundTextureCopy.Dispose(); + PersistentBuffers.Dispose(); ResourcePool.Dispose(); _pipeline.Dispose(); _window.Dispose(); -- cgit v1.2.3-70-g09d2