determine type of buffer by its field types

This commit is contained in:
Samuliak 2024-05-16 15:49:29 +02:00 committed by Isaac Marovitz
parent 6e524358d4
commit d1a60c7053
No known key found for this signature in database
GPG Key ID: 97250B2B09A132E1
1 changed files with 4 additions and 2 deletions

View File

@ -115,12 +115,14 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Msl
foreach (var constantBuffer in context.Properties.ConstantBuffers.Values)
{
args = args.Append($"constant float4 *{constantBuffer.Name} [[buffer({constantBuffer.Binding})]]").ToArray();
var varType = constantBuffer.Type.Fields[0].Type & ~AggregateType.Array;
args = args.Append($"constant {Declarations.GetVarTypeName(context, varType)} *{constantBuffer.Name} [[buffer({constantBuffer.Binding})]]").ToArray();
}
foreach (var storageBuffers in context.Properties.StorageBuffers.Values)
{
args = args.Append($"device float4 *{storageBuffers.Name} [[buffer({storageBuffers.Binding})]]").ToArray();
var varType = storageBuffers.Type.Fields[0].Type & ~AggregateType.Array;
args = args.Append($"device {Declarations.GetVarTypeName(context, varType)} *{storageBuffers.Name} [[buffer({storageBuffers.Binding})]]").ToArray();
}
foreach (var texture in context.Properties.Textures.Values)