From fc9aa5c1840421f5b7d1e17fb1509d7c9cb10810 Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Fri, 30 Aug 2024 19:50:00 +0200 Subject: [PATCH] Fix texture streaming reallocation task to ignore not-resident mips #2559 --- Source/Engine/Graphics/Textures/StreamingTexture.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Source/Engine/Graphics/Textures/StreamingTexture.cpp b/Source/Engine/Graphics/Textures/StreamingTexture.cpp index 14874abf1..ecd9bbd55 100644 --- a/Source/Engine/Graphics/Textures/StreamingTexture.cpp +++ b/Source/Engine/Graphics/Textures/StreamingTexture.cpp @@ -213,13 +213,13 @@ protected: const int32 dstMips = dstTexture->MipLevels(); GPUTexture* srcTexture = _streamingTexture->GetTexture(); const int32 srcMips = srcTexture->MipLevels(); + const int32 srcMissingMips = srcMips - srcTexture->ResidentMipLevels();; const int32 mipCount = Math::Min(dstMips, srcMips); - ASSERT(mipCount > 0); - for (int32 mipIndex = 0; mipIndex < mipCount; mipIndex++) + for (int32 mipIndex = srcMissingMips; mipIndex < mipCount; mipIndex++) { context->GPU->CopySubresource(dstTexture, dstMips - mipIndex - 1, srcTexture, srcMips - mipIndex - 1); } - _uploadedMipCount = mipCount; + _uploadedMipCount = mipCount - srcMissingMips; return Result::Ok; }