Skip to content

Commit

Permalink
GPU: Fix texture handling on framebuf detach.
Browse files Browse the repository at this point in the history
We were never creating/recreating the texture, so we ended up with null.
Caused all sorts of problems.
  • Loading branch information
unknownbrackets committed Aug 25, 2018
1 parent 17de6ad commit 3f48e44
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 0 deletions.
3 changes: 3 additions & 0 deletions GPU/Common/TextureCacheCommon.cpp
Expand Up @@ -713,6 +713,9 @@ void TextureCacheCommon::DetachFramebuffer(TexCacheEntry *entry, u32 address, Vi
const u64 cachekey = entry->CacheKey();
cacheSizeEstimate_ += EstimateTexMemoryUsage(entry);
entry->framebuffer = nullptr;
// Force the hash to change in case we had one before.
// Otherwise we never recreate the texture.
entry->hash ^= 1;
fbTexInfo_.erase(cachekey);
host->GPUNotifyTextureAttachment(entry->addr);
}
Expand Down
1 change: 1 addition & 0 deletions ext/native/thin3d/GLRenderManager.cpp
Expand Up @@ -345,6 +345,7 @@ bool GLRenderManager::CopyFramebufferToMemorySync(GLRFramebuffer *src, int aspec
}

void GLRenderManager::CopyImageToMemorySync(GLRTexture *texture, int mipLevel, int x, int y, int w, int h, Draw::DataFormat destFormat, uint8_t *pixels, int pixelStride) {
_assert_(texture);
GLRStep *step = new GLRStep{ GLRStepType::READBACK_IMAGE };
step->readback_image.texture = texture;
step->readback_image.mipLevel = mipLevel;
Expand Down

0 comments on commit 3f48e44

Please sign in to comment.