-
Notifications
You must be signed in to change notification settings - Fork 28.7k
[Impeller] Render conics without conversion from Flutter apps #166305
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Impeller] Render conics without conversion from Flutter apps #166305
Conversation
CI had a failure that stopped further tests from running. We need to investigate to determine the root cause. SHA at time of execution: 59e7f7a. Possible causes:
A blank commit, or merging to head, will be required to resume running CI for this PR. Error Details:
Stack trace:
|
Golden file changes have been found for this pull request. Click here to view and triage (e.g. because this is an intentional change). If you are still iterating on this change and are not ready to resolve the images on the Flutter Gold dashboard, consider marking this PR as a draft pull request above. You will still be able to view image results on the dashboard, commenting will be silenced, and the check will not try to resolve itself until marked ready for review. For more guidance, visit Writing a golden file test for Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing. |
Looks like some bookkeeping on the conics is off... |
Here is the bookkeeping issue that is surfacing here. Note that the errors in the star_borders are similar to what we had before #164753. In that PR we switched to our own code to insert quads in place of conics and that code had protections for when conics were degenerate (i.e. p1 == cp == p2 for instance). It did not dispatch any segments for degenerate conics. In steps the star_border_test, which in its default configuration will generate conics such that p1 == cp == p2 and so they don't contribute anything to the path, but they are still recorded. With the simplifications in the previous And then our stroking code gets involved and draws odd miters on those empty line segments. Looking at the easiest way to fix this and whether I want to do it as part of this PR or a follow-on. |
For now I'm going to prune duplicate points when iterating conics. This can potentially cause a problem with:
Where it should draw a very tiny "box-cap" at (x,y), but in this case it will just draw nothing. I can do a better point pruning fix when I update the path rendering code to tessellate directly from a path readback. |
Golden file changes are available for triage from new commit, Click here to view. For more guidance, visit Writing a golden file test for Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Fixes #163563 ? |
Yep |
There are a bunch of post-submit golden diffs on this PR (that seem unrelated to the PR description?). Is this intentional? Here is an example: https://flutter-gold.skia.org/detail?grouping=name%3Dcupertino.cupertino_selection_toolbar.TopRight.Brightness.dark%26source_type%3Dflutter&digest=9d8cdcd7bf34162c13185ae2a217c81d. |
Jim was expected some changes. Do any of them look wrong? |
I'm just seeing that one change and it looks fine to me. |
A reason for requesting a revert of flutter/flutter/166305 could |
…9036) Manual roll requested by [email protected] flutter/flutter@02f13c3...212064a 2025-04-06 [email protected] Roll Skia from 8f1638231e34 to da7929d79c28 (1 revision) (flutter/flutter#166657) 2025-04-06 [email protected] Roll Skia from 943df306bc3a to 8f1638231e34 (2 revisions) (flutter/flutter#166647) 2025-04-05 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[web] fix text selection offset in multi-line fields (#166565)" (flutter/flutter#166644) 2025-04-04 [email protected] Roll Skia from a7da13848085 to 943df306bc3a (8 revisions) (flutter/flutter#166609) 2025-04-04 [email protected] Adds semantics input type (flutter/flutter#165925) 2025-04-04 [email protected] Relands "[Impeller] Render conics without conversion from Flutter apps (#166305)" (flutter/flutter#166598) 2025-04-04 [email protected] [web] fix text selection offset in multi-line fields (flutter/flutter#166565) 2025-04-04 [email protected] [Impeller] if drawTextFrame scale is massive, convert to Path. (flutter/flutter#166234) 2025-04-04 [email protected] [ Widget Previews ] Add `widget_preview_scaffold.shard` to test the `widget_preview_scaffold` template contents (flutter/flutter#166358) 2025-04-04 [email protected] [Embedder] Only call removeview callback when raster thread is done with the view (flutter/flutter#164571) 2025-04-04 [email protected] Roll Packages from 4a36dc6 to 267ac7b (2 revisions) (flutter/flutter#166583) 2025-04-04 [email protected] Roll Dart SDK from 4293d50dd30d to 87965ab4864e (3 revisions) (flutter/flutter#166571) 2025-04-04 [email protected] Disable firefox image_to_byte_data_test as a group. (flutter/flutter#166559) 2025-04-04 [email protected] Add x64 ddm variants (flutter/flutter#166511) 2025-04-04 [email protected] Roll Skia from af7ff0e98c4e to a7da13848085 (3 revisions) (flutter/flutter#166560) 2025-04-04 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[Impeller] Render conics without conversion from Flutter apps (#166305)" (flutter/flutter#166591) 2025-04-03 [email protected] Roll Dart SDK from d174ec16c3ea to 4293d50dd30d (1 revision) (flutter/flutter#166557) 2025-04-03 [email protected] Roll Skia from 5f65df75febd to af7ff0e98c4e (7 revisions) (flutter/flutter#166551) 2025-04-03 [email protected] [Impeller] Render conics without conversion from Flutter apps (flutter/flutter#166305) 2025-04-03 [email protected] Update localizations from console (flutter/flutter#166496) 2025-04-03 [email protected] Roll Fuchsia GN SDK from K_1kHDN1WfObPYHya... to jsZSHIOmQAs3URvWU... (flutter/flutter#166544) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages Please CC [email protected] on the revert to ensure that a human is aware of the problem. To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
) Manual roll requested by [email protected] flutter/flutter@02f13c3...212064a 2025-04-06 [email protected] Roll Skia from 8f1638231e34 to da7929d79c28 (1 revision) (flutter/flutter#166657) 2025-04-06 [email protected] Roll Skia from 943df306bc3a to 8f1638231e34 (2 revisions) (flutter/flutter#166647) 2025-04-05 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[web] fix text selection offset in multi-line fields (#166565)" (flutter/flutter#166644) 2025-04-04 [email protected] Roll Skia from a7da13848085 to 943df306bc3a (8 revisions) (flutter/flutter#166609) 2025-04-04 [email protected] Adds semantics input type (flutter/flutter#165925) 2025-04-04 [email protected] Relands "[Impeller] Render conics without conversion from Flutter apps (#166305)" (flutter/flutter#166598) 2025-04-04 [email protected] [web] fix text selection offset in multi-line fields (flutter/flutter#166565) 2025-04-04 [email protected] [Impeller] if drawTextFrame scale is massive, convert to Path. (flutter/flutter#166234) 2025-04-04 [email protected] [ Widget Previews ] Add `widget_preview_scaffold.shard` to test the `widget_preview_scaffold` template contents (flutter/flutter#166358) 2025-04-04 [email protected] [Embedder] Only call removeview callback when raster thread is done with the view (flutter/flutter#164571) 2025-04-04 [email protected] Roll Packages from 4a36dc6 to 267ac7b (2 revisions) (flutter/flutter#166583) 2025-04-04 [email protected] Roll Dart SDK from 4293d50dd30d to 87965ab4864e (3 revisions) (flutter/flutter#166571) 2025-04-04 [email protected] Disable firefox image_to_byte_data_test as a group. (flutter/flutter#166559) 2025-04-04 [email protected] Add x64 ddm variants (flutter/flutter#166511) 2025-04-04 [email protected] Roll Skia from af7ff0e98c4e to a7da13848085 (3 revisions) (flutter/flutter#166560) 2025-04-04 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[Impeller] Render conics without conversion from Flutter apps (#166305)" (flutter/flutter#166591) 2025-04-03 [email protected] Roll Dart SDK from d174ec16c3ea to 4293d50dd30d (1 revision) (flutter/flutter#166557) 2025-04-03 [email protected] Roll Skia from 5f65df75febd to af7ff0e98c4e (7 revisions) (flutter/flutter#166551) 2025-04-03 [email protected] [Impeller] Render conics without conversion from Flutter apps (flutter/flutter#166305) 2025-04-03 [email protected] Update localizations from console (flutter/flutter#166496) 2025-04-03 [email protected] Roll Fuchsia GN SDK from K_1kHDN1WfObPYHya... to jsZSHIOmQAs3URvWU... (flutter/flutter#166544) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages Please CC [email protected] on the revert to ensure that a human is aware of the problem. To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
…(#9036) Manual roll requested by [email protected] flutter/flutter@02f13c3...212064a 2025-04-06 [email protected] Roll Skia from 8f1638231e34 to da7929d79c28 (1 revision) (flutter/flutter#166657) 2025-04-06 [email protected] Roll Skia from 943df306bc3a to 8f1638231e34 (2 revisions) (flutter/flutter#166647) 2025-04-05 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[web] fix text selection offset in multi-line fields (#166565)" (flutter/flutter#166644) 2025-04-04 [email protected] Roll Skia from a7da13848085 to 943df306bc3a (8 revisions) (flutter/flutter#166609) 2025-04-04 [email protected] Adds semantics input type (flutter/flutter#165925) 2025-04-04 [email protected] Relands "[Impeller] Render conics without conversion from Flutter apps (#166305)" (flutter/flutter#166598) 2025-04-04 [email protected] [web] fix text selection offset in multi-line fields (flutter/flutter#166565) 2025-04-04 [email protected] [Impeller] if drawTextFrame scale is massive, convert to Path. (flutter/flutter#166234) 2025-04-04 [email protected] [ Widget Previews ] Add `widget_preview_scaffold.shard` to test the `widget_preview_scaffold` template contents (flutter/flutter#166358) 2025-04-04 [email protected] [Embedder] Only call removeview callback when raster thread is done with the view (flutter/flutter#164571) 2025-04-04 [email protected] Roll Packages from 95f8e65 to 57f42e1 (2 revisions) (flutter/flutter#166583) 2025-04-04 [email protected] Roll Dart SDK from 4293d50dd30d to 87965ab4864e (3 revisions) (flutter/flutter#166571) 2025-04-04 [email protected] Disable firefox image_to_byte_data_test as a group. (flutter/flutter#166559) 2025-04-04 [email protected] Add x64 ddm variants (flutter/flutter#166511) 2025-04-04 [email protected] Roll Skia from af7ff0e98c4e to a7da13848085 (3 revisions) (flutter/flutter#166560) 2025-04-04 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[Impeller] Render conics without conversion from Flutter apps (#166305)" (flutter/flutter#166591) 2025-04-03 [email protected] Roll Dart SDK from d174ec16c3ea to 4293d50dd30d (1 revision) (flutter/flutter#166557) 2025-04-03 [email protected] Roll Skia from 5f65df75febd to af7ff0e98c4e (7 revisions) (flutter/flutter#166551) 2025-04-03 [email protected] [Impeller] Render conics without conversion from Flutter apps (flutter/flutter#166305) 2025-04-03 [email protected] Update localizations from console (flutter/flutter#166496) 2025-04-03 [email protected] Roll Fuchsia GN SDK from K_1kHDN1WfObPYHya... to jsZSHIOmQAs3URvWU... (flutter/flutter#166544) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages Please CC [email protected] on the revert to ensure that a human is aware of the problem. To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Now that Impeller performs high fidelity tessellation of Conic curves we will no longer convert Flutter app's conic curves into approximated quadratic curves.