Skip to content

Enable SUPPORT_FRACTIONAL_TRANSLATION for desktop (and mobile if benchmarks permit) #103909

@jonahwilliams

Description

@jonahwilliams

See https://github.com/flutter/engine/search?q=SUPPORT_FRACTIONAL_TRANSLATION

Enabling SUPPORT_FRACTIONAL_TRANSLATION removes the physical pixel snap from engine layers. It is off by default due to mobile performance issues, specifically on iOS32 bit but potentially on newer devices as well. See also #56722

Unfortunately there are two major drawbacks of having this disabled, namely:

We should opt desktop into this define. This will require us to separately roll an engine variant with this enabled that would allow us to gradually opt-in google3.

Migration process:

  • Build a new engine host variant (linux is the only variant used for golden testing in g3) and roll that into google3. This variant will have SUPPORT_FRACTIONAL_TRANSLATION enabled and no raster cache in the tester.

  • Run a global presubmit in g3 to determine the impact of switching to the new tester. If the number of diffs is small, do this as an atomic change. If the number of diffs is large, then we'll perform a project by project opt-in, and finally switch the default to the new tester.

  • Once this has landed, we update the engine build rules so that all host variants are build with SUPPORT_FRACTIONAL_TRANSLATION. After this rolls into g3, we can switch the build rules back to the previous tester variant in a non-breaking way - since it should have the same rendering output as the new tester.

  • Finally, we delete the new engine variant.

Metadata

Metadata

Assignees

Labels

P2Important issues not at the top of the work listcustomer: googleVarious Google teamsengineflutter/engine related. See also e: labels.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions