aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.Gpu/State
diff options
context:
space:
mode:
authorgdk <gab.dark.100@gmail.com>2019-11-23 02:17:22 -0300
committerThog <thog@protonmail.com>2020-01-09 02:13:00 +0100
commitb2b2e046696e9c187cd9d7d4e3e92dc521082fe5 (patch)
treea3354f5b2e50f9cefeb7c77330f40fa4db8be46a /Ryujinx.Graphics.Gpu/State
parent3ac023bb607eb630e86859cba0d3ebac55f4257a (diff)
Small optimizations on texture and sampler pool invalidation
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;
}