Optimize memory consumption of swizzled textures

This commit is contained in:
VaDiM
2024-04-02 00:30:32 +03:00
parent 4e991d85fb
commit 1fc504e587
2 changed files with 14 additions and 6 deletions

View File

@ -92,7 +92,18 @@ namespace AssetStudio
reader.GetData(buff);
if (switchSwizzled)
{
buff = Texture2DSwitchDeswizzler.Unswizzle(buff, GetUncroppedSize(), blockSize, gobsPerBlock);
var unswizzledData = BigArrayPool<byte>.Shared.Rent(reader.Size);
try
{
Texture2DSwitchDeswizzler.Unswizzle(buff, GetUncroppedSize(), blockSize, gobsPerBlock, unswizzledData);
BigArrayPool<byte>.Shared.Return(buff, clearArray: true);
buff = unswizzledData;
}
catch (Exception e)
{
BigArrayPool<byte>.Shared.Return(unswizzledData, clearArray: true);
Logger.Error(e.Message, e);
}
}
switch (m_TextureFormat)