From 9b7335a63bd921d38866090e8c53f35b8e050939 Mon Sep 17 00:00:00 2001 From: riperiperi Date: Fri, 19 Mar 2021 01:17:38 +0000 Subject: Improve linear texture compatibility rules (#2099) * Improve linear texture compatibility rules Fixes an issue where small or width-aligned (rather than byte aligned) textures would fail to create a view of existing data. Creates a copy dependency as size change may be risky. * Minor cleanup * Remove Size Change for Copy Depenedencies The copy to the target (potentially different sized) texture can properly deal with cropping by itself. * Move StrideAlignment and GobAlignment into Constants --- Ryujinx.Graphics.Gpu/Engine/MethodCopyBuffer.cs | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) (limited to 'Ryujinx.Graphics.Gpu/Engine') diff --git a/Ryujinx.Graphics.Gpu/Engine/MethodCopyBuffer.cs b/Ryujinx.Graphics.Gpu/Engine/MethodCopyBuffer.cs index 15ebb236..dd16cb2d 100644 --- a/Ryujinx.Graphics.Gpu/Engine/MethodCopyBuffer.cs +++ b/Ryujinx.Graphics.Gpu/Engine/MethodCopyBuffer.cs @@ -8,9 +8,6 @@ namespace Ryujinx.Graphics.Gpu.Engine { partial class Methods { - private const int StrideAlignment = 32; - private const int GobAlignment = 64; - enum CopyFlags { SrcLinear = 1 << 7, @@ -32,14 +29,14 @@ namespace Ryujinx.Graphics.Gpu.Engine { if (linear) { - int alignWidth = StrideAlignment / bpp; + int alignWidth = Constants.StrideAlignment / bpp; return tex.RegionX == 0 && tex.RegionY == 0 && stride / bpp == BitUtils.AlignUp(cbp.XCount, alignWidth); } else { - int alignWidth = GobAlignment / bpp; + int alignWidth = Constants.GobAlignment / bpp; return tex.RegionX == 0 && tex.RegionY == 0 && tex.Width == BitUtils.AlignUp(cbp.XCount, alignWidth) && -- cgit v1.2.3