Commit 4606d0a
fix: rotate drawCircleGradient boundary vertex per call
Two drawCircleGradient calls stacked at the same position would reveal a
faint vertical column where the top circle should have painted - the GPU
edge-tiebreaker rule (top-left rule or equivalent) appears to assign the
boundary line-degenerate triangle's (C, R_0) edge pixels to the
degenerate, which has zero area and produces no fragments. The adjacent
real fan slice doesn't own those pixels under the rule, so the column
goes unpainted and the lower draw shows through.
Rotate which rim vertex serves as the boundary by one slice per call.
The polygon has 32-fold rotational symmetry so the rendered shape is
visually identical, but consecutive calls now have their boundary
line-degens on different rim verts - the unpainted columns no longer
stack on the same pixel positions.
Partial mitigation only - the artifact can still appear in some
combinations because both circles' line-degens converge at the shared
center vertex.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>1 parent 06caea9 commit 4606d0a
7 files changed
Lines changed: 43 additions & 32 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1845 | 1845 | | |
1846 | 1846 | | |
1847 | 1847 | | |
1848 | | - | |
1849 | | - | |
1850 | | - | |
1851 | | - | |
1852 | | - | |
1853 | | - | |
1854 | | - | |
1855 | | - | |
1856 | | - | |
1857 | | - | |
| 1848 | + | |
1858 | 1849 | | |
1859 | 1850 | | |
1860 | 1851 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4520 | 4520 | | |
4521 | 4521 | | |
4522 | 4522 | | |
| 4523 | + | |
4523 | 4524 | | |
4524 | 4525 | | |
4525 | 4526 | | |
| |||
4538 | 4539 | | |
4539 | 4540 | | |
4540 | 4541 | | |
4541 | | - | |
4542 | | - | |
4543 | | - | |
| 4542 | + | |
| 4543 | + | |
| 4544 | + | |
| 4545 | + | |
4544 | 4546 | | |
4545 | 4547 | | |
4546 | 4548 | | |
4547 | 4549 | | |
4548 | | - | |
| 4550 | + | |
| 4551 | + | |
| 4552 | + | |
| 4553 | + | |
4549 | 4554 | | |
4550 | 4555 | | |
4551 | | - | |
| 4556 | + | |
4552 | 4557 | | |
4553 | 4558 | | |
4554 | 4559 | | |
| |||
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4520 | 4520 | | |
4521 | 4521 | | |
4522 | 4522 | | |
| 4523 | + | |
4523 | 4524 | | |
4524 | 4525 | | |
4525 | 4526 | | |
| |||
4538 | 4539 | | |
4539 | 4540 | | |
4540 | 4541 | | |
4541 | | - | |
4542 | | - | |
4543 | | - | |
| 4542 | + | |
| 4543 | + | |
| 4544 | + | |
| 4545 | + | |
4544 | 4546 | | |
4545 | 4547 | | |
4546 | 4548 | | |
4547 | 4549 | | |
4548 | | - | |
| 4550 | + | |
| 4551 | + | |
| 4552 | + | |
| 4553 | + | |
4549 | 4554 | | |
4550 | 4555 | | |
4551 | | - | |
| 4556 | + | |
4552 | 4557 | | |
4553 | 4558 | | |
4554 | 4559 | | |
| |||
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3840 | 3840 | | |
3841 | 3841 | | |
3842 | 3842 | | |
| 3843 | + | |
3843 | 3844 | | |
3844 | 3845 | | |
3845 | 3846 | | |
| |||
3858 | 3859 | | |
3859 | 3860 | | |
3860 | 3861 | | |
3861 | | - | |
3862 | | - | |
3863 | | - | |
| 3862 | + | |
| 3863 | + | |
| 3864 | + | |
| 3865 | + | |
3864 | 3866 | | |
3865 | 3867 | | |
3866 | 3868 | | |
3867 | 3869 | | |
3868 | | - | |
| 3870 | + | |
| 3871 | + | |
| 3872 | + | |
| 3873 | + | |
3869 | 3874 | | |
3870 | 3875 | | |
3871 | | - | |
| 3876 | + | |
3872 | 3877 | | |
3873 | 3878 | | |
3874 | 3879 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
736 | 736 | | |
737 | 737 | | |
738 | 738 | | |
| 739 | + | |
739 | 740 | | |
740 | 741 | | |
741 | 742 | | |
| |||
754 | 755 | | |
755 | 756 | | |
756 | 757 | | |
757 | | - | |
758 | | - | |
759 | | - | |
| 758 | + | |
| 759 | + | |
| 760 | + | |
| 761 | + | |
760 | 762 | | |
761 | 763 | | |
762 | 764 | | |
763 | 765 | | |
764 | | - | |
| 766 | + | |
| 767 | + | |
| 768 | + | |
| 769 | + | |
765 | 770 | | |
766 | 771 | | |
767 | | - | |
| 772 | + | |
768 | 773 | | |
769 | 774 | | |
770 | 775 | | |
| |||
0 commit comments