forked from Mirror/Ryujinx
26 lines
847 B
C#
26 lines
847 B
C#
|
using Ryujinx.Graphics.GAL.Multithreading.Model;
|
|||
|
using System;
|
|||
|
|
|||
|
namespace Ryujinx.Graphics.GAL.Multithreading.Commands
|
|||
|
{
|
|||
|
struct SetStorageBuffersCommand : IGALCommand
|
|||
|
{
|
|||
|
public CommandType CommandType => CommandType.SetStorageBuffers;
|
|||
|
private int _first;
|
|||
|
private SpanRef<BufferRange> _buffers;
|
|||
|
|
|||
|
public void Set(int first, SpanRef<BufferRange> buffers)
|
|||
|
{
|
|||
|
_first = first;
|
|||
|
_buffers = buffers;
|
|||
|
}
|
|||
|
|
|||
|
public static void Run(ref SetStorageBuffersCommand command, ThreadedRenderer threaded, IRenderer renderer)
|
|||
|
{
|
|||
|
Span<BufferRange> buffers = command._buffers.Get(threaded);
|
|||
|
renderer.Pipeline.SetStorageBuffers(command._first, threaded.Buffers.MapBufferRanges(buffers));
|
|||
|
command._buffers.Dispose(threaded);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|