Buffer Descriptor Step Functions

This commit is contained in:
Isaac Marovitz 2024-05-28 01:45:59 -04:00
parent 4e130e7e38
commit de2a8cece4
No known key found for this signature in database
GPG Key ID: 97250B2B09A132E1
1 changed files with 14 additions and 1 deletions

View File

@ -740,13 +740,26 @@ namespace Ryujinx.Graphics.Metal
{
var layout = vertexDescriptor.Layouts.Object((ulong)i);
layout.Stride = (indexMask & (1u << i)) != 0 ? (ulong)bufferDescriptors[i].Stride : 0;
if (bufferDescriptors[i].Divisor > 0)
{
layout.StepFunction = MTLVertexStepFunction.PerInstance;
layout.StepRate = (ulong)bufferDescriptors[i].Divisor;
}
else
{
layout.StepFunction = MTLVertexStepFunction.PerVertex;
layout.StepRate = 1;
}
}
// Zero buffer
if ((indexMask & (1u << bufferDescriptors.Length)) != 0)
{
var layout = vertexDescriptor.Layouts.Object((ulong)bufferDescriptors.Length);
layout.Stride = ZeroBufferSize;
layout.Stride = 1;
layout.StepFunction = MTLVertexStepFunction.Constant;
layout.StepRate = 0;
}
return vertexDescriptor;