Fix texture streaming reallocation task to ignore not-resident mips

#2559
This commit is contained in:
Wojtek Figat
2024-08-30 19:50:00 +02:00
parent 5ebfa4452e
commit fc9aa5c184

View File

@@ -213,13 +213,13 @@ protected:
const int32 dstMips = dstTexture->MipLevels(); const int32 dstMips = dstTexture->MipLevels();
GPUTexture* srcTexture = _streamingTexture->GetTexture(); GPUTexture* srcTexture = _streamingTexture->GetTexture();
const int32 srcMips = srcTexture->MipLevels(); const int32 srcMips = srcTexture->MipLevels();
const int32 srcMissingMips = srcMips - srcTexture->ResidentMipLevels();;
const int32 mipCount = Math::Min(dstMips, srcMips); const int32 mipCount = Math::Min(dstMips, srcMips);
ASSERT(mipCount > 0); for (int32 mipIndex = srcMissingMips; mipIndex < mipCount; mipIndex++)
for (int32 mipIndex = 0; mipIndex < mipCount; mipIndex++)
{ {
context->GPU->CopySubresource(dstTexture, dstMips - mipIndex - 1, srcTexture, srcMips - mipIndex - 1); context->GPU->CopySubresource(dstTexture, dstMips - mipIndex - 1, srcTexture, srcMips - mipIndex - 1);
} }
_uploadedMipCount = mipCount; _uploadedMipCount = mipCount - srcMissingMips;
return Result::Ok; return Result::Ok;
} }