From cbfa4bfc8eef3a5f0e09e0ea2c3113bb2a88a7d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Mon, 21 Nov 2022 18:13:13 +0100 Subject: [PATCH] Centralize ClearCacheNextFrame --- GPU/Common/TextureCacheCommon.cpp | 5 +---- GPU/Common/TextureCacheCommon.h | 1 - GPU/D3D11/GPU_D3D11.cpp | 4 ---- GPU/D3D11/GPU_D3D11.h | 1 - GPU/Directx9/GPU_DX9.cpp | 4 ---- GPU/Directx9/GPU_DX9.h | 1 - GPU/GLES/GPU_GLES.cpp | 4 ---- GPU/GLES/GPU_GLES.h | 1 - GPU/GPUCommon.cpp | 1 - GPU/GPUInterface.h | 3 --- GPU/Software/SoftGpu.h | 1 - GPU/Vulkan/GPU_Vulkan.cpp | 4 ---- GPU/Vulkan/GPU_Vulkan.h | 1 - 13 files changed, 1 insertion(+), 30 deletions(-) diff --git a/GPU/Common/TextureCacheCommon.cpp b/GPU/Common/TextureCacheCommon.cpp index 5ae10bcf31..03e530381e 100644 --- a/GPU/Common/TextureCacheCommon.cpp +++ b/GPU/Common/TextureCacheCommon.cpp @@ -1200,6 +1200,7 @@ bool TextureCacheCommon::GetCurrentFramebufferTextureDebug(GPUDebugBuffer &buffe } void TextureCacheCommon::NotifyConfigChanged() { + clearCacheNextFrame_ = true; int scaleFactor = g_Config.iTexScalingLevel; if (!gstate_c.Use(GPU_USE_TEXTURE_NPOT)) { @@ -2554,10 +2555,6 @@ void TextureCacheCommon::InvalidateAll(GPUInvalidationType /*unused*/) { } } -void TextureCacheCommon::ClearNextFrame() { - clearCacheNextFrame_ = true; -} - std::string AttachCandidate::ToString() const { return StringFromFormat("[%s seq:%d rel:%d C:%08x/%d(%s) Z:%08x/%d X:%d Y:%d reint: %s]", this->channel == RASTER_COLOR ? "COLOR" : "DEPTH", diff --git a/GPU/Common/TextureCacheCommon.h b/GPU/Common/TextureCacheCommon.h index bbaf0eecde..4d46ff6590 100644 --- a/GPU/Common/TextureCacheCommon.h +++ b/GPU/Common/TextureCacheCommon.h @@ -323,7 +323,6 @@ public: bool SetOffsetTexture(u32 yOffset); void Invalidate(u32 addr, int size, GPUInvalidationType type); void InvalidateAll(GPUInvalidationType type); - void ClearNextFrame(); TextureShaderCache *GetTextureShaderCache() { return textureShaderCache_; } diff --git a/GPU/D3D11/GPU_D3D11.cpp b/GPU/D3D11/GPU_D3D11.cpp index e533e524e8..f03dca53f3 100644 --- a/GPU/D3D11/GPU_D3D11.cpp +++ b/GPU/D3D11/GPU_D3D11.cpp @@ -228,10 +228,6 @@ void GPU_D3D11::GetStats(char *buffer, size_t bufsize) { ); } -void GPU_D3D11::ClearCacheNextFrame() { - textureCacheD3D11_->ClearNextFrame(); -} - void GPU_D3D11::ClearShaderCache() { shaderManagerD3D11_->ClearShaders(); drawEngine_.ClearInputLayoutMap(); diff --git a/GPU/D3D11/GPU_D3D11.h b/GPU/D3D11/GPU_D3D11.h index 0cba325618..e56acc632a 100644 --- a/GPU/D3D11/GPU_D3D11.h +++ b/GPU/D3D11/GPU_D3D11.h @@ -41,7 +41,6 @@ public: void ExecuteOp(u32 op, u32 diff) override; void GetStats(char *buffer, size_t bufsize) override; - void ClearCacheNextFrame() override; void DeviceLost() override; // Only happens on Android. Drop all textures and shaders. void DeviceRestore() override; diff --git a/GPU/Directx9/GPU_DX9.cpp b/GPU/Directx9/GPU_DX9.cpp index e13a3b4f3d..c4053953cc 100644 --- a/GPU/Directx9/GPU_DX9.cpp +++ b/GPU/Directx9/GPU_DX9.cpp @@ -220,10 +220,6 @@ void GPU_DX9::GetStats(char *buffer, size_t bufsize) { ); } -void GPU_DX9::ClearCacheNextFrame() { - textureCacheDX9_->ClearNextFrame(); -} - void GPU_DX9::ClearShaderCache() { shaderManagerDX9_->ClearCache(true); } diff --git a/GPU/Directx9/GPU_DX9.h b/GPU/Directx9/GPU_DX9.h index 0ec463e55e..ff23b3fb23 100644 --- a/GPU/Directx9/GPU_DX9.h +++ b/GPU/Directx9/GPU_DX9.h @@ -41,7 +41,6 @@ public: void ReapplyGfxState() override; void GetStats(char *buffer, size_t bufsize) override; - void ClearCacheNextFrame() override; void DeviceLost() override; // Only happens on Android. Drop all textures and shaders. void DeviceRestore() override; diff --git a/GPU/GLES/GPU_GLES.cpp b/GPU/GLES/GPU_GLES.cpp index bee7a874f2..cec35c21d7 100644 --- a/GPU/GLES/GPU_GLES.cpp +++ b/GPU/GLES/GPU_GLES.cpp @@ -353,10 +353,6 @@ void GPU_GLES::GetStats(char *buffer, size_t bufsize) { ); } -void GPU_GLES::ClearCacheNextFrame() { - textureCacheGL_->ClearNextFrame(); -} - void GPU_GLES::ClearShaderCache() { shaderManagerGL_->ClearCache(true); } diff --git a/GPU/GLES/GPU_GLES.h b/GPU/GLES/GPU_GLES.h index 4955a3c511..d9ac76390f 100644 --- a/GPU/GLES/GPU_GLES.h +++ b/GPU/GLES/GPU_GLES.h @@ -49,7 +49,6 @@ public: void ReapplyGfxState() override; void GetStats(char *buffer, size_t bufsize) override; - void ClearCacheNextFrame() override; void DeviceLost() override; // Only happens on Android. Drop all textures and shaders. void DeviceRestore() override; diff --git a/GPU/GPUCommon.cpp b/GPU/GPUCommon.cpp index 9dfe4781d4..6222e1edb8 100644 --- a/GPU/GPUCommon.cpp +++ b/GPU/GPUCommon.cpp @@ -629,7 +629,6 @@ void GPUCommon::NotifyDisplayResized() { // if "transparent". void GPUCommon::CheckConfigChanged() { if (configChanged_) { - ClearCacheNextFrame(); gstate_c.useFlags = CheckGPUFeatures(); drawEngineCommon_->NotifyConfigChanged(); shaderManager_->DirtyLastShader(); // Don't think this is needed, at all. diff --git a/GPU/GPUInterface.h b/GPU/GPUInterface.h index 8dfc89daa1..76afe301dd 100644 --- a/GPU/GPUInterface.h +++ b/GPU/GPUInterface.h @@ -244,9 +244,6 @@ public: virtual bool PerformWriteColorFromMemory(u32 dest, int size) = 0; virtual bool PerformWriteStencilFromMemory(u32 dest, int size, WriteStencil flags = WriteStencil::NEEDS_CLEAR) = 0; - // Will cause the texture cache to be cleared at the start of the next frame. - virtual void ClearCacheNextFrame() = 0; - // Internal hack to avoid interrupts from "PPGe" drawing (utility UI, etc) virtual void EnableInterrupts(bool enable) = 0; diff --git a/GPU/Software/SoftGpu.h b/GPU/Software/SoftGpu.h index 508baa6d0e..4ddb0fa782 100644 --- a/GPU/Software/SoftGpu.h +++ b/GPU/Software/SoftGpu.h @@ -144,7 +144,6 @@ public: bool PerformReadbackToMemory(u32 dest, int size) override; bool PerformWriteColorFromMemory(u32 dest, int size) override; bool PerformWriteStencilFromMemory(u32 dest, int size, WriteStencil flags) override; - void ClearCacheNextFrame() override {} void DeviceLost() override; void DeviceRestore() override; diff --git a/GPU/Vulkan/GPU_Vulkan.cpp b/GPU/Vulkan/GPU_Vulkan.cpp index 6ed3789152..48b34baf9d 100644 --- a/GPU/Vulkan/GPU_Vulkan.cpp +++ b/GPU/Vulkan/GPU_Vulkan.cpp @@ -513,10 +513,6 @@ void GPU_Vulkan::GetStats(char *buffer, size_t bufsize) { ); } -void GPU_Vulkan::ClearCacheNextFrame() { - textureCacheVulkan_->ClearNextFrame(); -} - void GPU_Vulkan::ClearShaderCache() { // TODO } diff --git a/GPU/Vulkan/GPU_Vulkan.h b/GPU/Vulkan/GPU_Vulkan.h index ee45b43e5b..1aa405e1f6 100644 --- a/GPU/Vulkan/GPU_Vulkan.h +++ b/GPU/Vulkan/GPU_Vulkan.h @@ -51,7 +51,6 @@ public: void ExecuteOp(u32 op, u32 diff) override; void GetStats(char *buffer, size_t bufsize) override; - void ClearCacheNextFrame() override; void DeviceLost() override; // Only happens on Android. Drop all textures and shaders. void DeviceRestore() override;