aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.Texture
diff options
context:
space:
mode:
authorriperiperi <rhy3756547@hotmail.com>2021-07-16 22:10:20 +0100
committerGitHub <noreply@github.com>2021-07-16 18:10:20 -0300
commitca5ac37cd638222e7475ac8f632b878126f3462d (patch)
tree7c550f640c54453ebe61bb0797b8b200a69009bd /Ryujinx.Graphics.Texture
parentbb6fab200969531ff858de399879779de5aaeac0 (diff)
Flush buffers and texture data through a persistent mapped buffer. (#2481)
* Use persistent buffers to flush texture data * Flush buffers via copy to persistent buffers. * Log error when timing out, small refactoring.
Diffstat (limited to 'Ryujinx.Graphics.Texture')
-rw-r--r--Ryujinx.Graphics.Texture/LayoutConverter.cs9
1 files changed, 7 insertions, 2 deletions
diff --git a/Ryujinx.Graphics.Texture/LayoutConverter.cs b/Ryujinx.Graphics.Texture/LayoutConverter.cs
index fb25541b..1b7dad2a 100644
--- a/Ryujinx.Graphics.Texture/LayoutConverter.cs
+++ b/Ryujinx.Graphics.Texture/LayoutConverter.cs
@@ -358,7 +358,7 @@ namespace Ryujinx.Graphics.Texture
};
}
- public static Span<byte> ConvertLinearToBlockLinear(
+ public static ReadOnlySpan<byte> ConvertLinearToBlockLinear(
int width,
int height,
int depth,
@@ -499,7 +499,7 @@ namespace Ryujinx.Graphics.Texture
return output;
}
- public static Span<byte> ConvertLinearToLinearStrided(
+ public static ReadOnlySpan<byte> ConvertLinearToLinearStrided(
int width,
int height,
int blockWidth,
@@ -514,6 +514,11 @@ namespace Ryujinx.Graphics.Texture
int inStride = BitUtils.AlignUp(w * bytesPerPixel, HostStrideAlignment);
int lineSize = width * bytesPerPixel;
+ if (inStride == stride)
+ {
+ return data;
+ }
+
Span<byte> output = new byte[h * stride];
int inOffs = 0;