Calculate width from stride on texture copies

This commit is contained in:
gdk 2019-10-13 22:48:09 -03:00 committed by Thog
parent 1876b346fe
commit 1bb08742c1
2 changed files with 14 additions and 6 deletions

View file

@ -245,9 +245,20 @@ namespace Ryujinx.Graphics.Gpu.Image
FormatInfo formatInfo = copyTexture.Format.Convert(); FormatInfo formatInfo = copyTexture.Format.Convert();
int width;
if (copyTexture.LinearLayout)
{
width = copyTexture.Stride / formatInfo.BytesPerPixel;
}
else
{
width = copyTexture.Width;
}
TextureInfo info = new TextureInfo( TextureInfo info = new TextureInfo(
address, address,
copyTexture.Width, width,
copyTexture.Height, copyTexture.Height,
copyTexture.Depth, copyTexture.Depth,
1, 1,

View file

@ -108,11 +108,8 @@ namespace Ryujinx.Graphics.Texture
{ {
int outOffs = 0; int outOffs = 0;
int w = width; int w = BitUtils.DivRoundUp(width, blockWidth);
int h = height; int h = BitUtils.DivRoundUp(height, blockHeight);
w = BitUtils.DivRoundUp(w, blockWidth);
h = BitUtils.DivRoundUp(h, blockHeight);
int outStride = BitUtils.AlignUp(w * bytesPerPixel, AlignmentSize); int outStride = BitUtils.AlignUp(w * bytesPerPixel, AlignmentSize);