mirror of
https://github.com/hrydgard/ppsspp.git
synced 2024-11-23 21:39:52 +00:00
Merge pull request #15431 from hrydgard/shortcircuit-texture-replacement
Early-out in texture replacement code, if replacement disabled
This commit is contained in:
commit
2abe3d6152
@ -1277,6 +1277,13 @@ u32 TextureCacheCommon::EstimateTexMemoryUsage(const TexCacheEntry *entry) {
|
||||
}
|
||||
|
||||
ReplacedTexture &TextureCacheCommon::FindReplacement(TexCacheEntry *entry, int &w, int &h) {
|
||||
// Short circuit the non-enabled case.
|
||||
// Otherwise, due to bReplaceTexturesAllowLate, we'll still spawn tasks looking for replacements
|
||||
// that then won't be used.
|
||||
if (!replacer_.Enabled()) {
|
||||
return replacer_.FindNone();
|
||||
}
|
||||
|
||||
// Allow some delay to reduce pop-in.
|
||||
constexpr double MAX_BUDGET_PER_TEX = 0.25 / 60.0;
|
||||
|
||||
|
@ -2771,9 +2771,12 @@ void GPUCommon::DoBlockTransfer(u32 skipDrawReason) {
|
||||
framebufferManager_->NotifyBlockTransferAfter(dstBasePtr, dstStride, dstX, dstY, srcBasePtr, srcStride, srcX, srcY, width, height, bpp, skipDrawReason);
|
||||
}
|
||||
|
||||
const uint32_t numBytes = width * height * bpp;
|
||||
const uint32_t srcSize = height * srcStride * bpp;
|
||||
const uint32_t dstSize = height * dstStride * bpp;
|
||||
if (MemBlockInfoDetailed(srcSize, dstSize)) {
|
||||
// We do the check here on the number of bytes to avoid marking really tiny images.
|
||||
// Helps perf in GT menu which does insane amounts of these, one for each text character per frame.
|
||||
if (MemBlockInfoDetailed(numBytes, numBytes)) {
|
||||
const uint32_t src = srcBasePtr + (srcY * srcStride + srcX) * bpp;
|
||||
const uint32_t dst = dstBasePtr + (dstY * dstStride + dstX) * bpp;
|
||||
const std::string tag = "GPUBlockTransfer/" + GetMemWriteTagAt(src, srcSize);
|
||||
|
@ -657,7 +657,6 @@ void TextureCacheVulkan::BuildTexture(TexCacheEntry *const entry) {
|
||||
badMipSizes = false;
|
||||
}
|
||||
|
||||
|
||||
// Don't scale the PPGe texture.
|
||||
if (entry->addr > 0x05000000 && entry->addr < PSP_GetKernelMemoryEnd()) {
|
||||
scaleFactor = 1;
|
||||
|
Loading…
Reference in New Issue
Block a user