supportsRenderToMip property
Whether a pass can draw into a mip level below the base — see
ColorTarget.mipLevel.
Asked rather than assumed, and it is the one capability here that splits
a single backend by platform: flutter_gpu reports it as
doesSupportFramebufferRenderMipmap, true on Metal and Vulkan and false
on its OpenGL ES path, where an attachment naming a level other than zero
is refused. WebGL2 attaches any level with framebufferTexture2D, and
the software rasteriser writes into whichever array it is pointed at.
Rendering into a cube face is not gated by this — every backend that
answers true to supportsCubeTextures can attach a face at the base
level. What this decides is whether a probe's roughness chain can be
filtered on the device: a reflection probe renders six views into a cube
and then convolves them into the levels below, and the second half needs
a level to draw into. A device that says no gets no probe at all —
see ReflectionProbeNode.supportedOn, which asks this and
supportsCubeTextures together — because a cube with a base level only
is a mirror at every roughness, which is a picture nobody asked for; the
material there goes on reading the scene's environment.
Implementation
@override
bool get supportsRenderToMip => inner.supportsRenderToMip;