You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
On Android native builds using Impeller Vulkan, environment maps that use the
cubemap-mip radiance layout produce overly sharp, roughness-dependent IBL
reflections. The same scene is normal when the legacy radiance atlas layout is
used.
Reproduction
Official bdero/flutter_scene master baseline: 4bc80f598086a574e3c169eb06a9a1c2f63f3bdd
Redmi K60 Pro (socrates, 22127RK46C), HyperOS OS3.0.303.0
The Redmi startup log reports the Impeller Vulkan backend. The shiny Car scene
reproduces on both devices.
Observed behavior
Upstream reference (author-provided)
Android Impeller Vulkan with cubemap-mip radiance
On Android Impeller Vulkan, the cubemap-mip radiance layout produces overly
sharp, roughness-dependent IBL reflections compared with the upstream reference.
Expected behavior
Android output should match the upstream reference and should not remain overly
sharp across roughness levels.
Current workaround
Keep Android native environments on the legacy radiance atlas while retaining
cubemap-mip radiance on web and other native platforms. A focused PR with
platform-selection tests will be linked here.
I have a PR upstream to fix the manual mip sampling capability flag being incorrect for Adreno Vulkan drivers that should address this: flutter/flutter#189897
Thanks for the upstream fix. I also submitted flutter/flutter#189966 this morning to explore an explicit opt-in for complete manually supplied mip chains; after building a local engine with that change, after building a local engine with that change, I verified that it fixes the overly sharp reflections in flutter_scene’s Car example on this device. I see flutter/flutter#189897 as the safe capability correction for flutter_scene, while #189966 is a possible follow-up and still needs maintainer confirmation on whether exposing explicit manual-mip sampling is worthwhile.
Activity
bdero commentedon Jul 17, 2026
Thanks for opening this!
bdero commentedon Jul 24, 2026
I have a PR upstream to fix the manual mip sampling capability flag being incorrect for Adreno Vulkan drivers that should address this: flutter/flutter#189897
Ram-Dawson commentedon Jul 24, 2026
Thanks for the upstream fix. I also submitted flutter/flutter#189966 this morning to explore an explicit opt-in for complete manually supplied mip chains; after building a local engine with that change, after building a local engine with that change, I verified that it fixes the overly sharp reflections in flutter_scene’s Car example on this device. I see flutter/flutter#189897 as the safe capability correction for flutter_scene, while #189966 is a possible follow-up and still needs maintainer confirmation on whether exposing explicit manual-mip sampling is worthwhile.
[Impeller] Scope the broken mipmap workaround to the textures it affe…