From 289f090b504f51bb6a87bc54b2c1ca493c8e3207 Mon Sep 17 00:00:00 2001 From: qwe1qwe Date: Fri, 9 Oct 2026 13:07:12 +0200 Subject: [PATCH] [GPU] Align linear color target pitch like linear textures (#1063) --- .../Images/ImageRequestBuilders.ColorTarget.cs | 4 +++- .../Gpu/Images/ImageRequestBuildersTests.cs | 15 +++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/SharpEmu.Libs/Gpu/Images/ImageRequestBuilders.ColorTarget.cs b/src/SharpEmu.Libs/Gpu/Images/ImageRequestBuilders.ColorTarget.cs index 4834d58..12bac61 100644 --- a/src/SharpEmu.Libs/Gpu/Images/ImageRequestBuilders.ColorTarget.cs +++ b/src/SharpEmu.Libs/Gpu/Images/ImageRequestBuilders.ColorTarget.cs @@ -230,7 +230,9 @@ public static partial class ImageRequestBuilders } else { - pitch = width; + // A linear color buffer uses the same 256-byte row alignment as a linear texture of the same memory; + // an unaligned pitch made the target and a later texture view of it two different cached images. + pitch = TileGeometry.TexturePitch(transferFormat, width, GuestTileMode.Linear); } var mipSpans = new TileLevelSpan[TiledSurfaceLayout.MaxLevels]; diff --git a/tests/SharpEmu.Libs.Tests/Gpu/Images/ImageRequestBuildersTests.cs b/tests/SharpEmu.Libs.Tests/Gpu/Images/ImageRequestBuildersTests.cs index 64414f2..c2cbe0a 100644 --- a/tests/SharpEmu.Libs.Tests/Gpu/Images/ImageRequestBuildersTests.cs +++ b/tests/SharpEmu.Libs.Tests/Gpu/Images/ImageRequestBuildersTests.cs @@ -240,6 +240,21 @@ public sealed class ImageRequestBuildersTests : IClassFixture