Skip to content

Impeller breaks mesh gradients #153964

@renancaraujo

Description

@renancaraujo

Steps to reproduce

When using mesh gradients from the mesh package, on the last stable (3.24.1), the rendering on the impeller is all messed up.

The package works by using the '.drawVertices' API passing texture coordinates to draw patches of a mesh gradient image.

I understand this is an advanced usage but I don't see any anti-pattern on this.

It works fine on Skia.

Actual results

Example mesh gradient when using impeller on 3.24.1:

Expected results

Same mesh gradient when using skia:

Code sample

Code sample
OMeshRect(
  width: 3,
  height: 4,
  colorSpace: OMeshColorSpace.linear,
  vertices: [
    (0.0, 0.0).v, (0.5, 0.0).v, (1.0, 0.0).v, //

    (0.0, 0.33).v,
    (0.5, 0.5).v,
    (1.0, 0.33).v, //

    (0.0, 0.66).v,
    (0.5, 0.66).v.bezier(),
    (1.0, 0.66).v, //

    (0.0, 1.0).v, (0.5, 1.0).v, (1.0, 1.0).v, //
  ],
  colors: const [
    Colors.red, Colors.green, Colors.blue, //
    Colors.yellow, Colors.purple, Colors.orange, //
    Colors.teal, Colors.green, Colors.pink, //
    Colors.cyan, Colors.pinkAccent, Colors.amber, //
  ],
)

Screenshots or Video

No response

Logs

No relevant logs

Flutter Doctor output

Doctor output

Reproduced on beta:

Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel beta, 3.25.0-0.1.pre, on macOS 14.5
    darwin-arm64, locale en-GB)
[✓] Android toolchain - develop for Android devices (Android SDK
    version 34.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 16.0)


• No issues found!

Reproduced on stable:

Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.24.1, on macOS 14.5
    darwin-arm64, locale en-GB)
[✓] Android toolchain - develop for Android devices (Android SDK
    version 34.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 16.0)

• No issues found!

Reproduced on main:

Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel master, 3.25.0-1.0.pre.94, on macOS 14.5 
    darwin-arm64, locale en-GB)
[✓] Android toolchain - develop for Android devices (Android SDK
    version 34.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 16.0)


• No issues found!

Metadata

Metadata

Assignees

Labels

P1High-priority issues at the top of the work listc: regressionIt was better in the past than it is nowc: renderingUI glitches reported at the engine/skia or impeller rendering levele: impellerImpeller rendering backend issues and features requestsengineflutter/engine related. See also e: labels.found in release: 3.24Found to occur in 3.24found in release: 3.25Found to occur in 3.25has reproducible stepsThe issue has been confirmed reproducible and is ready to work onr: fixedIssue is closed as already fixed in a newer versionteam-engineOwned by Engine teamtriaged-engineTriaged by Engine team

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions