diff --git a/GPU/GLES/TextureCache.cpp b/GPU/GLES/TextureCache.cpp index 5613effb1c..9dfaccab72 100644 --- a/GPU/GLES/TextureCache.cpp +++ b/GPU/GLES/TextureCache.cpp @@ -1066,7 +1066,7 @@ void TextureCache::SetTexture() { if (iter != cache.end()) { entry = &iter->second; // Validate the texture still matches the cache entry. - int dim = gstate.texsize[0] & 0xF0F; + u16 dim = gstate.getTextureDimension(0); bool match = entry->Matches(dim, format, maxLevel); // Check for FBO - slow! @@ -1161,7 +1161,7 @@ void TextureCache::SetTexture() { gpuStats.numTextureInvalidations++; DEBUG_LOG(G3D, "Texture different or overwritten, reloading at %08x", texaddr); if (doDelete) { - if (entry->maxLevel == maxLevel && entry->dim == (gstate.texsize[0] & 0xF0F) && entry->format == format && g_Config.iTexScalingLevel <= 1) { + if (entry->maxLevel == maxLevel && entry->dim == gstate.getTextureDimension(0) && entry->format == format && g_Config.iTexScalingLevel <= 1) { // Actually, if size and number of levels match, let's try to avoid deleting and recreating. // Instead, let's use glTexSubImage to replace the images. replaceImages = true; @@ -1198,7 +1198,7 @@ void TextureCache::SetTexture() { entry->maxLevel = maxLevel; entry->lodBias = 0.0f; - entry->dim = gstate.texsize[0] & 0xF0F; + entry->dim = gstate.getTextureDimension(0); entry->bufw = bufw; // This would overestimate the size in many case so we underestimate instead diff --git a/GPU/GPUState.h b/GPU/GPUState.h index 9582f49c69..19c01600ae 100644 --- a/GPU/GPUState.h +++ b/GPU/GPUState.h @@ -278,6 +278,7 @@ struct GPUgstate // Texturing int getTextureWidth(int level) const { return 1 << (texsize[level] & 0xf);} int getTextureHeight(int level) const { return 1 << ((texsize[level] >> 8) & 0xf);} + u16 getTextureDimension(int level) const { return texsize[level] & 0xf0f;} bool isTextureMapEnabled() const { return textureMapEnable & 1; } GETexFunc getTextureFunction() const { return static_cast(texfunc & 0x7); } bool isColorDoublingEnabled() const { return (texfunc & 0x10000) != 0; }