mirror of
https://github.com/Ryubing/Ryujinx.git
synced 2026-02-17 01:36:53 -05:00
Metal: Argument Buffer Pre-Pass (#38)
* Init * Fix missing flags * Cleanup
This commit is contained in:
committed by
Evan Husted
parent
e8de1156eb
commit
782299c123
63
src/Ryujinx.Graphics.Metal/EncoderResources.cs
Normal file
63
src/Ryujinx.Graphics.Metal/EncoderResources.cs
Normal file
@@ -0,0 +1,63 @@
|
||||
using SharpMetal.Metal;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Ryujinx.Graphics.Metal
|
||||
{
|
||||
public struct RenderEncoderResources
|
||||
{
|
||||
public List<Resource> Resources = new();
|
||||
public List<BufferResource> VertexBuffers = new();
|
||||
public List<BufferResource> FragmentBuffers = new();
|
||||
|
||||
public RenderEncoderResources() { }
|
||||
|
||||
public void Clear()
|
||||
{
|
||||
Resources.Clear();
|
||||
VertexBuffers.Clear();
|
||||
FragmentBuffers.Clear();
|
||||
}
|
||||
}
|
||||
|
||||
public struct ComputeEncoderResources
|
||||
{
|
||||
public List<Resource> Resources = new();
|
||||
public List<BufferResource> Buffers = new();
|
||||
|
||||
public ComputeEncoderResources() { }
|
||||
|
||||
public void Clear()
|
||||
{
|
||||
Resources.Clear();
|
||||
Buffers.Clear();
|
||||
}
|
||||
}
|
||||
|
||||
public struct BufferResource
|
||||
{
|
||||
public MTLBuffer Buffer;
|
||||
public ulong Offset;
|
||||
public ulong Binding;
|
||||
|
||||
public BufferResource(MTLBuffer buffer, ulong offset, ulong binding)
|
||||
{
|
||||
Buffer = buffer;
|
||||
Offset = offset;
|
||||
Binding = binding;
|
||||
}
|
||||
}
|
||||
|
||||
public struct Resource
|
||||
{
|
||||
public MTLResource MtlResource;
|
||||
public MTLResourceUsage ResourceUsage;
|
||||
public MTLRenderStages Stages;
|
||||
|
||||
public Resource(MTLResource resource, MTLResourceUsage resourceUsage, MTLRenderStages stages)
|
||||
{
|
||||
MtlResource = resource;
|
||||
ResourceUsage = resourceUsage;
|
||||
Stages = stages;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user