pFad - Phone/Frame/Anonymizer/Declutterfier! Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

URL: http://github.com/flutter/flutter/pull/174735

a437.css" /> [Impeller] Fix overdraw in Impeller DrawRect geomtry by flar · Pull Request #174735 · flutter/flutter · GitHub
Skip to content

Conversation

flar
Copy link
Contributor

@flar flar commented Aug 29, 2025

Fixes #174579

Bevel and Miter (and later Round) joins were fixed by being more careful about the creation of the vertices so that they have no inherent overdraw, but Round joins would take much more time and thought to fix so I tag them as needing overdraw prevention from the pipeline and they no longer exhibit the problem, but take a 50% hit in rendering.

I will submit an issue to try to recover their performance in a follow-on fix by doing a better job of creating their vertices.

Update: I got inspired and implemented overdraw-less round-join rectangle vertices with no loss of performance.

@github-actions github-actions bot added engine flutter/engine repository. See also e: labels. e: impeller Impeller rendering backend issues and features requests labels Aug 29, 2025
Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request addresses an overdraw issue in DrawRect geometry for stroked rectangles. For Bevel and Miter joins, the vertex generation has been updated to create geometry without inherent overdraw, and a special case has been added for thick strokes that collapse on themselves. For Round joins, the geometry is now flagged to use the pipeline's overdraw prevention, which fixes the visual artifact at a performance cost as noted. New tests are included to verify the rendering of wide stroked rectangles.

@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 #174735 at sha f2d7718

@flutter-dashboard flutter-dashboard bot added the will affect goldens Changes to golden files label Aug 30, 2025
@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 #174735 at sha 40ed227

@flar
Copy link
Contributor Author

flar commented Aug 31, 2025

All tests passed and the goldens for the new tests look correct (no overdraw anomalies that I could see). This PR is ready for review now.

@flar flar requested review from gaaclarke and chinmaygarde August 31, 2025 23:53
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.

[iOS]: Paint not rendering correctly in 3.35.x
1 participant
pFad - Phonifier reborn

Pfad - The Proxy pFad © 2024 Your Company Name. All rights reserved.





Check this box to remove all script contents from the fetched content.



Check this box to remove all images from the fetched content.


Check this box to remove all CSS styles from the fetched content.


Check this box to keep images inefficiently compressed and original size.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy