[Fix]: fix Sundial Lite

- detach source texture from synced GLES framebuffers before mipmap generation

- bind a complete scratch framebuffer while calling glGenerateMipmap

- force ANGLE norm16 texture fallback and convert 16-bit normalized uploads

- raise Sundial Lite retrace tolerance for software DirectGLES validation
This commit is contained in:
2026-06-22 22:07:06 +08:00
parent 7419f62159
commit c08ac7db72
6 changed files with 343 additions and 68 deletions
@@ -41,6 +41,26 @@ namespace MobileGL::MG_Util::TextureFormatProcessor {
*outInternalFormat = GL_R32F;
break;
}
case GL_RGBA16_SNORM:
if (options & PixelFormatNormalizeOptionBit::NoNorm16) {
*outInternalFormat = GL_RGBA16F;
break;
}
case GL_RGB16_SNORM:
if (options & PixelFormatNormalizeOptionBit::NoNorm16) {
*outInternalFormat = GL_RGB16F;
break;
}
case GL_RG16_SNORM:
if (options & PixelFormatNormalizeOptionBit::NoNorm16) {
*outInternalFormat = GL_RG16F;
break;
}
case GL_R16_SNORM:
if (options & PixelFormatNormalizeOptionBit::NoNorm16) {
*outInternalFormat = GL_R16F;
break;
}
default:
*outInternalFormat = internalFormat;
break;
@@ -235,8 +255,13 @@ namespace MobileGL::MG_Util::TextureFormatProcessor {
case GL_RGB16_SNORM:
case GL_RG16_SNORM:
case GL_R16_SNORM:
*outType = GL_SHORT;
break;
if (options & PixelFormatNormalizeOptionBit::NoNorm16) {
*outType = GL_FLOAT;
break;
} else {
*outType = GL_SHORT;
break;
}
case GL_RGBA8_SNORM:
case GL_RGB8_SNORM:
case GL_RG8_SNORM: