Skip to content

DlColorSource::From(SkShader) cannot retrieve enough information from the Skia object to construct an appropriate DlColorSource #103111

@flar

Description

@flar

See Skia bug: https://bugs.chromium.org/p/skia/issues/detail?id=13297
See customer reporting noticing this phenomenon: #102947

Note that solving that customer issue will require us to resort to an opaque transfer of all gradient shaders from text until Impeller implements its own paragraph code, or until Skia opens up the Gradient inspection method to provide all necessary information.

For most Flutter apps, this should not impact them as the path from the ui.Gradient/Paint/Canvas objects into the engine preserves all information for rendering. But if the Gradient is used in a Text Paragraph, then the information goes through a skia module that will represent them as SkShader objects which cannot be inspected enough to reconstruct the full information in a DlColorSource object.

This does not cause a problem using the current rendering pipeline that goes through Skia for final rendering, but this means that the Impeller pipeline will not be able to render gradients on text.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Important issues not at the top of the work listdependency: skiaSkia team may need to help use: impellerImpeller rendering backend issues and features requestsengineflutter/engine related. See also e: labels.team-engineOwned by Engine teamtriaged-engineTriaged by Engine team

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions