mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-10-30 19:24:23 +01:00
GPU: Fix texture handling on framebuf detach.
We were never creating/recreating the texture, so we ended up with null. Caused all sorts of problems.
This commit is contained in:
1 parent
17de6ad2d8
commit
3f48e446b6
2 files changed
+4
No files matched your search
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in new issue
Block a user