Do not perform layout conversion on buffer texture flushes (#1729)

This commit is contained in:
gdkchan 2020-11-18 18:17:40 -03:00 committed by GitHub
parent 0679084f11
commit 7f536b5a15
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -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;