diff options
| author | riperiperi <rhy3756547@hotmail.com> | 2021-07-16 22:10:20 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-07-16 18:10:20 -0300 |
| commit | ca5ac37cd638222e7475ac8f632b878126f3462d (patch) | |
| tree | 7c550f640c54453ebe61bb0797b8b200a69009bd /Ryujinx.Graphics.Texture | |
| parent | bb6fab200969531ff858de399879779de5aaeac0 (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.cs | 9 |
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; |
