WIP V2: Experimental: Metal backend #441

Merged
GreemDev merged 369 commits from new-metal into master 2024-12-24 06:55:16 +00:00
2 changed files with 4 additions and 2 deletions
Showing only changes of commit 2bef29b200 - Show all commits

View File

@ -600,11 +600,12 @@ namespace Ryujinx.Graphics.Metal
{ {
if (buffer.Range.Size != 0) if (buffer.Range.Size != 0)
{ {
// Offset the binding by 15
_storageBuffers.Add(new BufferInfo _storageBuffers.Add(new BufferInfo
{ {
Handle = buffer.Range.Handle.ToIntPtr(), Handle = buffer.Range.Handle.ToIntPtr(),
Offset = buffer.Range.Offset, Offset = buffer.Range.Offset,
Index = buffer.Binding Index = buffer.Binding + 15
}); });
} }
} }

View File

@ -129,7 +129,8 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Msl
foreach (var storageBuffers in context.Properties.StorageBuffers.Values) foreach (var storageBuffers in context.Properties.StorageBuffers.Values)
{ {
var varType = storageBuffers.Type.Fields[0].Type & ~AggregateType.Array; var varType = storageBuffers.Type.Fields[0].Type & ~AggregateType.Array;
args = args.Append($"device {Declarations.GetVarTypeName(context, varType)} *{storageBuffers.Name} [[buffer({storageBuffers.Binding})]]").ToArray(); // Offset the binding by 15 to avoid clashing with the constant buffers
args = args.Append($"device {Declarations.GetVarTypeName(context, varType)} *{storageBuffers.Name} [[buffer({15 + storageBuffers.Binding})]]").ToArray();
} }
foreach (var texture in context.Properties.Textures.Values) foreach (var texture in context.Properties.Textures.Values)