TEXTURE_NPOT — width or height isn't a power of two.
Mipmap filtering is undefined or fall-back-quality on older
GPUs (GL ES 2 era / WebGL 1) for NPOT textures; modern
WebGL 2 handles them but mip generation is still cheaper for
POT.
TEXTURE_OVERSIZED — width or height above
InspectSceneModelParams.maxTextureDim (default
4096). Memory pressure + GPU upload cost; a 4K × 4K RGBA
texture is ~67 MB before mipmaps.
Textures with zero width / height (image not yet loaded, or
image: undefined) are skipped — there's nothing to evaluate.
No matching auto-fix ships with the SDK — both remediations
(resize / downsample) need image-manipulation tooling and lossy
judgement calls, so they're left for manual triage.
Opt-in (InspectSceneModelParams.checkTextureSanity). Two cheap dimension checks per SceneTexture:
TEXTURE_NPOT— width or height isn't a power of two. Mipmap filtering is undefined or fall-back-quality on older GPUs (GL ES 2 era / WebGL 1) for NPOT textures; modern WebGL 2 handles them but mip generation is still cheaper for POT.TEXTURE_OVERSIZED— width or height above InspectSceneModelParams.maxTextureDim (default4096). Memory pressure + GPU upload cost; a 4K × 4K RGBA texture is ~67 MB before mipmaps.Textures with zero width / height (image not yet loaded, or
image: undefined) are skipped — there's nothing to evaluate.No matching auto-fix ships with the SDK — both remediations (resize / downsample) need image-manipulation tooling and lossy judgement calls, so they're left for manual triage.