From 7f536b5a15d55008073cd73a4c4a17cd3a4991d7 Mon Sep 17 00:00:00 2001 From: gdkchan Date: Wed, 18 Nov 2020 18:17:40 -0300 Subject: [PATCH] Do not perform layout conversion on buffer texture flushes (#1729) --- Ryujinx.Graphics.Gpu/Image/Texture.cs | 55 ++++++++++++++------------- 1 file changed, 29 insertions(+), 26 deletions(-) diff --git a/Ryujinx.Graphics.Gpu/Image/Texture.cs b/Ryujinx.Graphics.Gpu/Image/Texture.cs index 5b3a01c575..21418a4b27 100644 --- a/Ryujinx.Graphics.Gpu/Image/Texture.cs +++ b/Ryujinx.Graphics.Gpu/Image/Texture.cs @@ -809,33 +809,36 @@ namespace Ryujinx.Graphics.Gpu.Image } } - if (Info.IsLinear) + if (Info.Target != Target.TextureBuffer) { - data = LayoutConverter.ConvertLinearToLinearStrided( - Info.Width, - Info.Height, - Info.FormatInfo.BlockWidth, - Info.FormatInfo.BlockHeight, - Info.Stride, - Info.FormatInfo.BytesPerPixel, - data); - } - else - { - data = LayoutConverter.ConvertLinearToBlockLinear( - Info.Width, - Info.Height, - _depth, - Info.Levels, - _layers, - Info.FormatInfo.BlockWidth, - Info.FormatInfo.BlockHeight, - Info.FormatInfo.BytesPerPixel, - Info.GobBlocksInY, - Info.GobBlocksInZ, - Info.GobBlocksInTileX, - _sizeInfo, - data); + if (Info.IsLinear) + { + data = LayoutConverter.ConvertLinearToLinearStrided( + Info.Width, + Info.Height, + Info.FormatInfo.BlockWidth, + Info.FormatInfo.BlockHeight, + Info.Stride, + Info.FormatInfo.BytesPerPixel, + data); + } + else + { + data = LayoutConverter.ConvertLinearToBlockLinear( + Info.Width, + Info.Height, + _depth, + Info.Levels, + _layers, + Info.FormatInfo.BlockWidth, + Info.FormatInfo.BlockHeight, + Info.FormatInfo.BytesPerPixel, + Info.GobBlocksInY, + Info.GobBlocksInZ, + Info.GobBlocksInTileX, + _sizeInfo, + data); + } } return data;