blob: 5b0114330d54361656c903eccd45ab978267326a (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
using Ryujinx.Graphics.GAL.Multithreading.Model;
using Ryujinx.Graphics.GAL.Multithreading.Resources;
namespace Ryujinx.Graphics.GAL.Multithreading.Commands
{
struct SetProgramCommand : IGALCommand, IGALCommand<SetProgramCommand>
{
public readonly CommandType CommandType => CommandType.SetProgram;
private TableRef<IProgram> _program;
public void Set(TableRef<IProgram> program)
{
_program = program;
}
public static void Run(ref SetProgramCommand command, ThreadedRenderer threaded, IRenderer renderer)
{
ThreadedProgram program = command._program.GetAs<ThreadedProgram>(threaded);
threaded.Programs.WaitForProgram(program);
renderer.Pipeline.SetProgram(program.Base);
}
}
}
|