Ignore mipmap when texture format compressed 33/297333/3
authorEunki, Hong <eunkiki.hong@samsung.com>
Thu, 17 Aug 2023 04:08:18 +0000 (13:08 +0900)
committerEunki, Hong <eunkiki.hong@samsung.com>
Thu, 17 Aug 2023 05:47:05 +0000 (14:47 +0900)
Since some graphic driver doesn't support mipmap generation automatically,
We need to ignore that mipmap using with compressed format.

Change-Id: If39facde441ed63dc26462079575dea8b1df18a3
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
dali/internal/graphics/gles-impl/gles-graphics-texture.cpp

index 5435a97..2151d5b 100644 (file)
@@ -352,6 +352,12 @@ void Texture::Bind(const TextureBinding& binding) const
 
     auto mipMapMode = samplerCreateInfo.mipMapMode;
 
+    // @todo : Should we always ignore mipmap mode when it is compressed, and never bind higher level mipmap?
+    if(mMaxMipMapLevel == 0u && mIsCompressed)
+    {
+      mipMapMode = Graphics::SamplerMipmapMode::NONE;
+    }
+
     SetSamplerParameter(GL_TEXTURE_MIN_FILTER, mDefaultSamplerState.minFilter, GLSamplerFilterAndMipMapMode(samplerCreateInfo.minFilter, mipMapMode).glFilter);
     SetSamplerParameter(GL_TEXTURE_MAG_FILTER, mDefaultSamplerState.magFilter, GLSamplerFilter(samplerCreateInfo.magFilter).glFilter);
     SetSamplerParameter(GL_TEXTURE_WRAP_S, mDefaultSamplerState.wrapS, GLAddressMode(samplerCreateInfo.addressModeU).texParameter);