diff options
| author | gdk <gab.dark.100@gmail.com> | 2019-11-23 02:17:22 -0300 |
|---|---|---|
| committer | Thog <thog@protonmail.com> | 2020-01-09 02:13:00 +0100 |
| commit | b2b2e046696e9c187cd9d7d4e3e92dc521082fe5 (patch) | |
| tree | a3354f5b2e50f9cefeb7c77330f40fa4db8be46a /Ryujinx.Graphics.Gpu/State | |
| parent | 3ac023bb607eb630e86859cba0d3ebac55f4257a (diff) | |
Small optimizations on texture and sampler pool invalidation
Diffstat (limited to 'Ryujinx.Graphics.Gpu/State')
| -rw-r--r-- | Ryujinx.Graphics.Gpu/State/GpuState.cs | 45 |
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; } |
