diff --git a/MobileGL/MG_Backend/DirectGLES/Managers.cpp b/MobileGL/MG_Backend/DirectGLES/Managers.cpp index 7c8ffb62..e33b7026 100644 --- a/MobileGL/MG_Backend/DirectGLES/Managers.cpp +++ b/MobileGL/MG_Backend/DirectGLES/Managers.cpp @@ -644,6 +644,13 @@ namespace MobileGL::MG_Backend::DirectGLES { return; } + Uint16 currentTextureParamsVersion = stateTextureObject->GetTextureParamsVersion(); + if (m_syncedTextureParamsVersion == currentTextureParamsVersion) { + MGLOG_D("Texture parameters have not changed for texture ID: %u, skipping sync.", m_backendTextureId); + return; + } + m_syncedTextureParamsVersion = currentTextureParamsVersion; + MGLOG_D("Syncing texture params with backend ID %u to backend for state ID %u", m_backendTextureId, stateTextureObject->GetExternalIndex()); diff --git a/MobileGL/MG_Backend/DirectGLES/Managers.h b/MobileGL/MG_Backend/DirectGLES/Managers.h index 7ca7da85..196fd040 100644 --- a/MobileGL/MG_Backend/DirectGLES/Managers.h +++ b/MobileGL/MG_Backend/DirectGLES/Managers.h @@ -102,6 +102,7 @@ namespace MobileGL::MG_Backend::DirectGLES { Vec4 m_cacheSwizzleParams = {TextureSwizzleParam::Red, TextureSwizzleParam::Green, TextureSwizzleParam::Blue, TextureSwizzleParam::Alpha}; Uint16 m_syncedSamplerVersion = 0; + Uint16 m_syncedTextureParamsVersion = 0; }; extern UnorderedMap, SharedPtr>