WIP V2: Experimental: Metal backend #441

Merged
GreemDev merged 369 commits from new-metal into master 2024-12-24 06:55:16 +00:00
Showing only changes of commit 058ce78d31 - Show all commits

View File

@ -605,6 +605,7 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Msl.Instructions
{
context.Properties.Textures.TryGetValue(texOp.GetTextureSetAndBinding(), out TextureDefinition definition);
bool hasLod = !definition.Type.HasFlag(SamplerType.Multisample) && (definition.Type & SamplerType.Mask) != SamplerType.TextureBuffer;
bool isArray = definition.Type.HasFlag(SamplerType.Array);
texCallBuilder.Append("get_");
if (texOp.Index == 0)
@ -616,13 +617,20 @@ namespace Ryujinx.Graphics.Shader.CodeGen.Msl.Instructions
texCallBuilder.Append("height");
}
else
{
if (isArray)
{
texCallBuilder.Append("array_size");
}
else
{
texCallBuilder.Append("depth");
}
}
texCallBuilder.Append('(');
if (hasLod)
if (hasLod && !isArray)
{
IAstNode lod = operation.GetSource(0);
string lodExpr = GetSourceExpr(context, lod, GetSrcVarType(operation.Inst, 0));