aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.Gpu/State
diff options
context:
space:
mode:
Diffstat (limited to 'Ryujinx.Graphics.Gpu/State')
-rw-r--r--Ryujinx.Graphics.Gpu/State/GpuState.cs45
1 files changed, 36 insertions, 9 deletions
diff --git a/Ryujinx.Graphics.Gpu/State/GpuState.cs b/Ryujinx.Graphics.Gpu/State/GpuState.cs
index ecbaa004..bf7734dd 100644
--- a/Ryujinx.Graphics.Gpu/State/GpuState.cs
+++ b/Ryujinx.Graphics.Gpu/State/GpuState.cs
@@ -114,23 +114,50 @@ namespace Ryujinx.Graphics.Gpu.State
_registers[(int)offset].Callback = callback;
}
- public bool QueryModified(params MethodOffset[] offsets)
+ public bool QueryModified(MethodOffset offset)
{
- bool modified = false;
+ bool modified = _registers[(int)offset].Modified;
- for (int index = 0; index < offsets.Length; index++)
- {
- modified |= QueryModified(offsets[index]);
- }
+ _registers[(int)offset].Modified = false;
return modified;
}
- public bool QueryModified(MethodOffset offset)
+ public bool QueryModified(MethodOffset m1, MethodOffset m2)
{
- bool modified = _registers[(int)offset].Modified;
+ bool modified = _registers[(int)m1].Modified ||
+ _registers[(int)m2].Modified;
- _registers[(int)offset].Modified = false;
+ _registers[(int)m1].Modified = false;
+ _registers[(int)m2].Modified = false;
+
+ return modified;
+ }
+
+ public bool QueryModified(MethodOffset m1, MethodOffset m2, MethodOffset m3)
+ {
+ bool modified = _registers[(int)m1].Modified ||
+ _registers[(int)m2].Modified ||
+ _registers[(int)m3].Modified;
+
+ _registers[(int)m1].Modified = false;
+ _registers[(int)m2].Modified = false;
+ _registers[(int)m3].Modified = false;
+
+ return modified;
+ }
+
+ public bool QueryModified(MethodOffset m1, MethodOffset m2, MethodOffset m3, MethodOffset m4)
+ {
+ bool modified = _registers[(int)m1].Modified ||
+ _registers[(int)m2].Modified ||
+ _registers[(int)m3].Modified ||
+ _registers[(int)m4].Modified;
+
+ _registers[(int)m1].Modified = false;
+ _registers[(int)m2].Modified = false;
+ _registers[(int)m3].Modified = false;
+ _registers[(int)m4].Modified = false;
return modified;
}