using Ryujinx.Graphics.GAL.Multithreading.Model; using Ryujinx.Graphics.GAL.Multithreading.Resources; namespace Ryujinx.Graphics.GAL.Multithreading.Commands { struct SetProgramCommand : IGALCommand, IGALCommand { public CommandType CommandType => CommandType.SetProgram; private TableRef _program; public void Set(TableRef program) { _program = program; } public static void Run(ref SetProgramCommand command, ThreadedRenderer threaded, IRenderer renderer) { ThreadedProgram program = command._program.GetAs(threaded); threaded.Programs.WaitForProgram(program); renderer.Pipeline.SetProgram(program.Base); } } }