using Ryujinx.Graphics.GAL.Multithreading.Model; using Ryujinx.Graphics.GAL.Multithreading.Resources.Programs; namespace Ryujinx.Graphics.GAL.Multithreading.Commands.Renderer { struct CreateProgramCommand : IGALCommand, IGALCommand { public CommandType CommandType => CommandType.CreateProgram; private TableRef _request; public void Set(TableRef request) { _request = request; } public static void Run(ref CreateProgramCommand command, ThreadedRenderer threaded, IRenderer renderer) { IProgramRequest request = command._request.Get(threaded); if (request.Threaded.Base == null) { request.Threaded.Base = request.Create(renderer); } threaded.Programs.ProcessQueue(); } } }