/ src / Ryujinx.Graphics.GAL / Multithreading / Commands / TryHostConditionalRenderingFlushCommand.cs
TryHostConditionalRenderingFlushCommand.cs
1 using Ryujinx.Graphics.GAL.Multithreading.Model; 2 using Ryujinx.Graphics.GAL.Multithreading.Resources; 3 4 namespace Ryujinx.Graphics.GAL.Multithreading.Commands 5 { 6 struct TryHostConditionalRenderingFlushCommand : IGALCommand, IGALCommand<TryHostConditionalRenderingFlushCommand> 7 { 8 public readonly CommandType CommandType => CommandType.TryHostConditionalRenderingFlush; 9 private TableRef<ThreadedCounterEvent> _value; 10 private TableRef<ThreadedCounterEvent> _compare; 11 private bool _isEqual; 12 13 public void Set(TableRef<ThreadedCounterEvent> value, TableRef<ThreadedCounterEvent> compare, bool isEqual) 14 { 15 _value = value; 16 _compare = compare; 17 _isEqual = isEqual; 18 } 19 20 public static void Run(ref TryHostConditionalRenderingFlushCommand command, ThreadedRenderer threaded, IRenderer renderer) 21 { 22 renderer.Pipeline.TryHostConditionalRendering(command._value.Get(threaded)?.Base, command._compare.Get(threaded)?.Base, command._isEqual); 23 } 24 } 25 }