Thanks to visit codestin.com
Credit goes to github.com

Skip to content

[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

Merged

Conversation

flar
Copy link
Contributor

@flar flar commented Apr 1, 2025

Now that Impeller performs high fidelity tessellation of Conic curves we will no longer convert Flutter app's conic curves into approximated quadratic curves.

@github-actions github-actions bot added the engine flutter/engine repository. See also e: labels. label Apr 1, 2025
@flutter-dashboard
Copy link

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:

  • Configuration Changes: The .ci.yaml file might have been modified between the creation of this pull request and the start of this test run. This can lead to ci yaml validation errors.
  • Infrastructure Issues: Problems with the CI environment itself (e.g., quota) could have caused the failure.

A blank commit, or merging to head, will be required to resume running CI for this PR.

Error Details:

DetailedApiRequestError(status: 502, message: No error details. HTTP status was: 502.)

Stack trace:

#0      validateResponse (package:_discoveryapis_commons/src/api_requester.dart:310:5)
#1      ApiRequester.request (package:_discoveryapis_commons/src/api_requester.dart:72:22)
<asynchronous suspension>
#2      ProjectsTopicsResource.publish (package:googleapis/pubsub/v1.dart:2090:23)
<asynchronous suspension>
#3      PubSub.publish (package:cocoon_service/src/request_handling/pubsub.dart:33:22)
<asynchronous suspension>
#4      LuciBuildService.scheduleTryBuilds (package:cocoon_service/src/service/luci_build_service.dart:387:7)
<asynchronous suspension>
#5      Scheduler._runCiTestingStage (package:cocoon_service/src/service/scheduler.dart:1292:9)
<asynchronous suspension>
#6      Scheduler.proceedToCiTestingStage (package:cocoon_service/src/service/scheduler.dart:1357:7)
<asynchronous suspension>
#7      Scheduler._closeSuccessfulEngineBuildStage (package:cocoon_service/src/service/scheduler.dart:1182:5)
<asynchronous suspension>
#8      Scheduler.processCheckRunCompletion (package:cocoon_service/src/service/scheduler.dart:1130:9)
<asynchronous suspension>
#9      Scheduler.processCheckRun (package:cocoon_service/src/service/scheduler.dart:1442:9)
<asynchronous suspension>
#10     GithubWebhookSubscription.post (package:cocoon_service/src/request_handlers/github/webhook_subscription.dart:114:24)
<asynchronous suspension>
#11     RequestHandler.service.<anonymous closure> (package:cocoon_service/src/request_handling/request_handler.dart:49:24)
<asynchronous suspension>
#12     SubscriptionHandler.service (package:cocoon_service/src/request_handling/subscription_handler.dart:141:5)
<asynchronous suspension>
#13     createServer.<anonymous closure> (package:cocoon_service/server.dart:291:7)
<asynchronous suspension>

@flutter-dashboard
Copy link

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 package:flutter.

Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing.

Changes reported for pull request #166305 at sha c22a44d

@flutter-dashboard flutter-dashboard bot added the will affect goldens Changes to golden files label Apr 1, 2025
@flar
Copy link
Contributor Author

flar commented Apr 1, 2025

Looks like some bookkeeping on the conics is off...

@flar
Copy link
Contributor Author

flar commented Apr 2, 2025

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 ReduceConic method, those degenerate conics would produce no path segments in the resulting path. Now that we just forward the conic directly with no analysis, those conics appear and they produce a single extra duplicate point in the list of points being tessellated or stroked.

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.

@github-actions github-actions bot added the e: impeller Impeller rendering backend issues and features requests label Apr 3, 2025
@flar
Copy link
Contributor Author

flar commented Apr 3, 2025

For now I'm going to prune duplicate points when iterating conics. This can potentially cause a problem with:

  • MoveTo(x, y)
  • ConicTo(x, y, x, y, w)

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.

@flutter-dashboard
Copy link

Golden file changes are available for triage from new commit, Click here to view.

For more guidance, visit Writing a golden file test for package:flutter.

Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing.

Changes reported for pull request #166305 at sha 9fb7167

@flar flar requested a review from jonahwilliams April 3, 2025 18:57
Copy link
Member

@jonahwilliams jonahwilliams left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@flar flar added the autosubmit Merge PR when tree becomes green via auto submit App label Apr 3, 2025
@jonahwilliams
Copy link
Member

Fixes #163563 ?

@auto-submit auto-submit bot added this pull request to the merge queue Apr 3, 2025
Merged via the queue into flutter:master with commit cb0e649 Apr 3, 2025
173 checks passed
@flutter-dashboard flutter-dashboard bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Apr 3, 2025
@flar
Copy link
Contributor Author

flar commented Apr 3, 2025

Fixes #163563 ?

Yep

@zanderso
Copy link
Member

zanderso commented Apr 4, 2025

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.

@gaaclarke
Copy link
Member

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?

@gaaclarke
Copy link
Member

I'm just seeing that one change and it looks fine to me.

@gaaclarke gaaclarke added the revert Autorevert PR (with "Reason for revert:" comment) label Apr 4, 2025
Copy link
Contributor

auto-submit bot commented Apr 4, 2025

A reason for requesting a revert of flutter/flutter/166305 could
not be found or the reason was not properly formatted. Begin a comment with 'Reason for revert:' to tell the bot why
this issue is being reverted.

engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Apr 7, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Apr 7, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Apr 7, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Apr 7, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Apr 7, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Apr 8, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Apr 8, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Apr 8, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Apr 8, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Apr 8, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Apr 8, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Apr 9, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Apr 9, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Apr 9, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Apr 9, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Apr 9, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Apr 9, 2025
auto-submit bot pushed a commit to flutter/packages that referenced this pull request Apr 9, 2025
…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
nick-llewellyn pushed a commit to labrystechnology/flutter_packages that referenced this pull request Apr 23, 2025
…lutter#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
CodixNinja pushed a commit to CodixNinja/packages that referenced this pull request May 15, 2025
…(#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
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 20, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 20, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 21, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
e: impeller Impeller rendering backend issues and features requests engine flutter/engine repository. See also e: labels. will affect goldens Changes to golden files
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants