-
Notifications
You must be signed in to change notification settings - Fork 29.7k
Closed
flutter/engine
#44522Labels
P3Issues that are less important to the Flutter projectIssues that are less important to the Flutter projecte: impellerImpeller rendering backend issues and features requestsImpeller rendering backend issues and features requestsengineflutter/engine related. See also e: labels.flutter/engine related. See also e: labels.team-engineOwned by Engine teamOwned by Engine teamtriaged-engineTriaged by Engine teamTriaged by Engine team
Description
Parent issue: #118073.
Some notes:
- Look at impeller/entity/shaders/linear_gradient_ssbo_fill.frag
- Look at impeller/entity/contents/linear_gradient_contents.cc
Potential task items:
- Consider making a standalone playground that shows the same dithering issue within Impeller
- Get dithering working in the standalone playground
- Get consensus we want this to work as implemented before continuing
- Test
RadialGradientfor banding issues - Test
SweepGradientfor banding issues - Plumb
Paint.enableDitheringthrough to Impeller -
Create a test that, with the Flutter framework + Impeller, supports ditheringEdit: After talking to the engine team, we discovered that the place to do this (https://github.com/flutter/engine/blob/main/testing/dart/canvas_test.dart) relies on software rendering, and Impeller doesn't support it. For now, this will (like most of Impeller) be manual tested.
Note that we also talked about the fact that
Paint.enableDitheringis an API anti-pattern, i.e. it would better to either (a) dither by default (as loosely proposed in #112498, see also @Hixie's comment on #44134 (comment), and the conversation on flutter/engine#13868), or (b) perhaps better, make it a local flag (i.e. aboolorenumonLinearGradientor similar.For sake of scope, we'll continue to target the existing
Paint.enableDitheringin this issue, and explore refactors after.
/cc @jonahwilliams @gaaclarke to keep me honest that the above looks reasonable.
Metadata
Metadata
Assignees
Labels
P3Issues that are less important to the Flutter projectIssues that are less important to the Flutter projecte: impellerImpeller rendering backend issues and features requestsImpeller rendering backend issues and features requestsengineflutter/engine related. See also e: labels.flutter/engine related. See also e: labels.team-engineOwned by Engine teamOwned by Engine teamtriaged-engineTriaged by Engine teamTriaged by Engine team