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 c0d20f8689 - Show all commits

View File

@ -59,6 +59,17 @@ namespace Ryujinx.Graphics.Metal
public Texture(MTLDevice device, MetalRenderer renderer, Pipeline pipeline, TextureCreateInfo info, MTLTexture sourceTexture, int firstLayer, int firstLevel) : base(device, renderer, pipeline, info) public Texture(MTLDevice device, MetalRenderer renderer, Pipeline pipeline, TextureCreateInfo info, MTLTexture sourceTexture, int firstLayer, int firstLevel) : base(device, renderer, pipeline, info)
{ {
var pixelFormat = FormatTable.GetFormat(Info.Format); var pixelFormat = FormatTable.GetFormat(Info.Format);
if (info.DepthStencilMode == DepthStencilMode.Stencil)
{
pixelFormat = pixelFormat switch
{
MTLPixelFormat.Depth32FloatStencil8 => MTLPixelFormat.X32Stencil8,
MTLPixelFormat.Depth24UnormStencil8 => MTLPixelFormat.X24Stencil8,
_ => pixelFormat
};
}
var textureType = Info.Target.Convert(); var textureType = Info.Target.Convert();
NSRange levels; NSRange levels;
levels.location = (ulong)firstLevel; levels.location = (ulong)firstLevel;