From 7225326bfc0bce18993eac5f8f37ae4f98cc8855 Mon Sep 17 00:00:00 2001 From: Ryan Huffman Date: Tue, 16 May 2017 10:11:07 -0700 Subject: [PATCH] Fix failed mip insertions not being handled by TextureCache --- .../src/model-networking/TextureCache.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/libraries/model-networking/src/model-networking/TextureCache.cpp b/libraries/model-networking/src/model-networking/TextureCache.cpp index 79b179f3b9..2880762987 100644 --- a/libraries/model-networking/src/model-networking/TextureCache.cpp +++ b/libraries/model-networking/src/model-networking/TextureCache.cpp @@ -501,12 +501,19 @@ void NetworkTexture::ktxMipRequestFinished() { if (texture) { texture->assignStoredMip(_ktxMipLevelRangeInFlight.first, _ktxMipRequest->getData().size(), reinterpret_cast(_ktxMipRequest->getData().data())); - _lowestKnownPopulatedMip = _textureSource->getGPUTexture()->minAvailableMipLevel(); + + if (texture->minAvailableMipLevel() <= _ktxMipLevelRangeInFlight.first) { + _lowestKnownPopulatedMip = texture->minAvailableMipLevel(); + _ktxResourceState = WAITING_FOR_MIP_REQUEST; + } else { + qWarning(networking) << "Failed to load mip: " << _url << ":" << _ktxMipLevelRangeInFlight.first; + _ktxResourceState = FAILED_TO_LOAD; + } } else { + _ktxResourceState = WAITING_FOR_MIP_REQUEST; qWarning(networking) << "Trying to update mips but texture is null"; } finishedLoading(true); - _ktxResourceState = WAITING_FOR_MIP_REQUEST; } else { finishedLoading(false); if (handleFailedRequest(_ktxMipRequest->getResult())) {