diff --git a/Ryujinx.HLE/Gpu/Engines/NvGpuEngine2d.cs b/Ryujinx.HLE/Gpu/Engines/NvGpuEngine2d.cs index ad8a1cffca..40e8f52c07 100644 --- a/Ryujinx.HLE/Gpu/Engines/NvGpuEngine2d.cs +++ b/Ryujinx.HLE/Gpu/Engines/NvGpuEngine2d.cs @@ -93,11 +93,6 @@ namespace Ryujinx.HLE.Gpu.Engines bool IsSrcFb = Gpu.Engine3d.IsFrameBufferPosition(SrcKey); bool IsDstFb = Gpu.Engine3d.IsFrameBufferPosition(DstKey); - if (IsSrcFb && DstLinear) - { - DstSwizzle = TextureSwizzle.BlockLinear; - } - TextureInfo SrcTexture = new TextureInfo( SrcAddress, SrcWidth, diff --git a/Ryujinx.HLE/Gpu/Texture/TextureHelper.cs b/Ryujinx.HLE/Gpu/Texture/TextureHelper.cs index 55173595a4..bcfaa3341d 100644 --- a/Ryujinx.HLE/Gpu/Texture/TextureHelper.cs +++ b/Ryujinx.HLE/Gpu/Texture/TextureHelper.cs @@ -9,11 +9,11 @@ namespace Ryujinx.HLE.Gpu.Texture { public static ISwizzle GetSwizzle(TextureInfo Texture, int BlockWidth, int Bpp) { - int AlignMask = Texture.TileWidth * 64 - 1; + int Width = (Texture.Width + (BlockWidth - 1)) / BlockWidth; - int WidthAligned = (Texture.Width + AlignMask) & ~AlignMask; + int AlignMask = Texture.TileWidth * (64 / Bpp) - 1; - WidthAligned = (WidthAligned + (BlockWidth - 1)) / BlockWidth; + Width = (Width + AlignMask) & ~AlignMask; switch (Texture.Swizzle) { @@ -24,7 +24,7 @@ namespace Ryujinx.HLE.Gpu.Texture case TextureSwizzle.BlockLinear: case TextureSwizzle.BlockLinearColorKey: - return new BlockLinearSwizzle(WidthAligned, Bpp, Texture.BlockHeight); + return new BlockLinearSwizzle(Width, Bpp, Texture.BlockHeight); } throw new NotImplementedException(Texture.Swizzle.ToString());