/ 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  }