aboutsummaryrefslogtreecommitdiff
path: root/src/Ryujinx.Graphics.Gpu/Memory/UnmapEventArgs.cs
diff options
context:
space:
mode:
authorriperiperi <rhy3756547@hotmail.com>2023-05-01 19:32:32 +0100
committerGitHub <noreply@github.com>2023-05-01 15:32:32 -0300
commit36f10df775cf0c678548b97346432095823dfd8a (patch)
tree7a9c18eb0c50751082e5d8ad6d0b60c00e653e38 /src/Ryujinx.Graphics.Gpu/Memory/UnmapEventArgs.cs
parent680e54802234c37b9e46633db328b3ecd1dd1f86 (diff)
GPU: Fix errors handling texture remapping (#4745)1.1.740
* GPU: Fix errors handling texture remapping - Fixes an error where a pool entry and memory mapping changing at the same time could cause a texture to rebind its data from the wrong GPU VA (data swaps) - Fixes an error where the texture pool could act on a mapping change before the mapping has actually been changed ("Unmapped" event happens before change, we need to signal it changed _after_ it completes) TODO: remove textures from partially mapped list... if they aren't. * Add Remap actions for handling post-mapping behaviours * Remove unused code. * Address feedback * Nit
Diffstat (limited to 'src/Ryujinx.Graphics.Gpu/Memory/UnmapEventArgs.cs')
-rw-r--r--src/Ryujinx.Graphics.Gpu/Memory/UnmapEventArgs.cs12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/Ryujinx.Graphics.Gpu/Memory/UnmapEventArgs.cs b/src/Ryujinx.Graphics.Gpu/Memory/UnmapEventArgs.cs
index 305747f8..837b5aab 100644
--- a/src/Ryujinx.Graphics.Gpu/Memory/UnmapEventArgs.cs
+++ b/src/Ryujinx.Graphics.Gpu/Memory/UnmapEventArgs.cs
@@ -1,14 +1,24 @@
-namespace Ryujinx.Graphics.Gpu.Memory
+using System;
+using System.Collections.Generic;
+
+namespace Ryujinx.Graphics.Gpu.Memory
{
public class UnmapEventArgs
{
public ulong Address { get; }
public ulong Size { get; }
+ public List<Action> RemapActions { get; private set; }
public UnmapEventArgs(ulong address, ulong size)
{
Address = address;
Size = size;
}
+
+ public void AddRemapAction(Action action)
+ {
+ RemapActions ??= new List<Action>();
+ RemapActions.Add(action);
+ }
}
}