SetImageArraySeparateCommand.cs
1 using Ryujinx.Graphics.GAL.Multithreading.Model; 2 using Ryujinx.Graphics.GAL.Multithreading.Resources; 3 using Ryujinx.Graphics.Shader; 4 5 namespace Ryujinx.Graphics.GAL.Multithreading.Commands 6 { 7 struct SetImageArraySeparateCommand : IGALCommand, IGALCommand<SetImageArraySeparateCommand> 8 { 9 public readonly CommandType CommandType => CommandType.SetImageArraySeparate; 10 private ShaderStage _stage; 11 private int _setIndex; 12 private TableRef<IImageArray> _array; 13 14 public void Set(ShaderStage stage, int setIndex, TableRef<IImageArray> array) 15 { 16 _stage = stage; 17 _setIndex = setIndex; 18 _array = array; 19 } 20 21 public static void Run(ref SetImageArraySeparateCommand command, ThreadedRenderer threaded, IRenderer renderer) 22 { 23 renderer.Pipeline.SetImageArraySeparate(command._stage, command._setIndex, command._array.GetAs<ThreadedImageArray>(threaded)?.Base); 24 } 25 } 26 }