Skip to content
Permalink
Browse files

TextureCache: Don't partial copy to non-existant texture layers

  • Loading branch information...
stenzek committed Jan 19, 2019
1 parent ade255a commit 84bcbef944669a93bfe2905f1c7eb68bda7c9d4e
Showing with 7 additions and 2 deletions.
  1. +7 −2 Source/Core/VideoCommon/TextureCacheBase.cpp
@@ -416,7 +416,10 @@ TextureCacheBase::DoPartialTextureUpdates(TCacheEntry* entry_to_update, u8* pale
dstrect.top = dst_y;
dstrect.right = (dst_x + copy_width);
dstrect.bottom = (dst_y + copy_height);
for (u32 layer = 0; layer < entry->texture->GetConfig().layers; layer++)

// If one copy is stereo, and the other isn't... not much we can do here :/
const u32 layers_to_copy = std::min(entry->GetNumLayers(), entry_to_update->GetNumLayers());
for (u32 layer = 0; layer < layers_to_copy; layer++)
{
entry_to_update->texture->CopyRectangleFromTexture(entry->texture.get(), srcrect, layer,
0, dstrect, layer, 0);
@@ -1414,7 +1417,9 @@ TextureCacheBase::GetTextureFromOverlappingTextures(const TextureLookupInformati
dstrect.right = (dst_x + copy_width);
dstrect.bottom = (dst_y + copy_height);

for (u32 layer = 0; layer < entry->texture->GetConfig().layers; layer++)
// If one copy is stereo, and the other isn't... not much we can do here :/
const u32 layers_to_copy = std::min(entry->GetNumLayers(), stitched_entry->GetNumLayers());
for (u32 layer = 0; layer < layers_to_copy; layer++)
{
stitched_entry->texture->CopyRectangleFromTexture(entry->texture.get(), srcrect, layer, 0,
dstrect, layer, 0);

0 comments on commit 84bcbef

Please sign in to comment.
You can’t perform that action at this time.