SetStorageBuffersCommand.cs 847 B

12345678910111213141516171819202122232425
  1. using Ryujinx.Graphics.GAL.Multithreading.Model;
  2. using System;
  3. namespace Ryujinx.Graphics.GAL.Multithreading.Commands
  4. {
  5. struct SetStorageBuffersCommand : IGALCommand
  6. {
  7. public CommandType CommandType => CommandType.SetStorageBuffers;
  8. private int _first;
  9. private SpanRef<BufferRange> _buffers;
  10. public void Set(int first, SpanRef<BufferRange> buffers)
  11. {
  12. _first = first;
  13. _buffers = buffers;
  14. }
  15. public static void Run(ref SetStorageBuffersCommand command, ThreadedRenderer threaded, IRenderer renderer)
  16. {
  17. Span<BufferRange> buffers = command._buffers.Get(threaded);
  18. renderer.Pipeline.SetStorageBuffers(command._first, threaded.Buffers.MapBufferRanges(buffers));
  19. command._buffers.Dispose(threaded);
  20. }
  21. }
  22. }