summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authoriwubcode <iwubcode@users.noreply.github.com>2026-10-03 22:27:39 -0500
committeriwubcode <iwubcode@users.noreply.github.com>2026-10-03 22:31:14 -0500
commit93c28ee3076b033bf10132a60d85e64623e33040 (patch)
tree9636c14d413fa812b73329187371f0bd9d16d2f2 /Source/Core
parentf70b2990ada78d4ef22cd399a474705eba64d617 (diff)
VideoCommon: return a RcTcacheEntry (shared_ptr) from TextureCacheBase::Load()
This allows the texture entry to be stored off or passed around and shared in the future
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/VideoCommon/TextureCacheBase.cpp10
-rw-r--r--Source/Core/VideoCommon/TextureCacheBase.h4
2 files changed, 7 insertions, 7 deletions
diff --git a/Source/Core/VideoCommon/TextureCacheBase.cpp b/Source/Core/VideoCommon/TextureCacheBase.cpp
index 4e4567da8e..e91479799b 100644
--- a/Source/Core/VideoCommon/TextureCacheBase.cpp
+++ b/Source/Core/VideoCommon/TextureCacheBase.cpp
@@ -1239,7 +1239,7 @@ private:
std::vector<Level> levels;
};
-TCacheEntry* TextureCacheBase::Load(u32 stage)
+RcTcacheEntry TextureCacheBase::Load(u32 stage)
{
if (auto entry = LoadImpl(stage, false))
{
@@ -1248,19 +1248,19 @@ TCacheEntry* TextureCacheBase::Load(u32 stage)
return entry;
}
- InvalidateTexture(GetTexCacheIter(entry));
+ InvalidateTexture(GetTexCacheIter(entry.get()));
return LoadImpl(stage, true);
}
return nullptr;
}
-TCacheEntry* TextureCacheBase::LoadImpl(u32 stage, bool force_reload)
+RcTcacheEntry TextureCacheBase::LoadImpl(u32 stage, bool force_reload)
{
// if this stage was not invalidated by changes to texture registers, keep the current texture
if (!force_reload && TMEM::IsValid(stage) && m_bound_textures[stage])
{
- TCacheEntry* entry = m_bound_textures[stage].get();
+ const auto& entry = m_bound_textures[stage];
// If the TMEM configuration is such that this texture is more or less guaranteed to still
// be in TMEM, then we know we can reuse the old entry without even hashing the memory
//
@@ -1308,7 +1308,7 @@ TCacheEntry* TextureCacheBase::LoadImpl(u32 stage, bool force_reload)
TMEM::Bind(texture_info.GetStage(), entry->NumBlocksX(), entry->NumBlocksY(),
entry->GetNumLevels() > 1, entry->format == TextureFormat::RGBA8);
- return entry.get();
+ return entry;
}
RcTcacheEntry TextureCacheBase::GetTexture(const int textureCacheSafetyColorSampleSize,
diff --git a/Source/Core/VideoCommon/TextureCacheBase.h b/Source/Core/VideoCommon/TextureCacheBase.h
index 7e9d0613d4..4b9685dbcd 100644
--- a/Source/Core/VideoCommon/TextureCacheBase.h
+++ b/Source/Core/VideoCommon/TextureCacheBase.h
@@ -278,7 +278,7 @@ public:
void Invalidate();
void ReleaseToPool(TCacheEntry* entry);
- TCacheEntry* Load(u32 stage);
+ RcTcacheEntry Load(u32 stage);
RcTcacheEntry GetTexture(const int textureCacheSafetyColorSampleSize,
const TextureInfo& texture_info);
RcTcacheEntry GetXFBTexture(u32 address, u32 width, u32 height, u32 stride,
@@ -352,7 +352,7 @@ private:
static bool DidLinkedAssetsChange(const TCacheEntry& entry);
- TCacheEntry* LoadImpl(u32 stage, bool force_reload);
+ RcTcacheEntry LoadImpl(u32 stage, bool force_reload);
bool CreateUtilityTextures();