Skip to content

Add the re-fit on delete feature to the Path tool #2768

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

Open
wants to merge 5 commits into
base: master
Choose a base branch
from

Conversation

4adex
Copy link
Collaborator

@4adex 4adex commented Jun 27, 2025

Closes #2651

Copy link

github-actions bot commented Jun 27, 2025

Performance Benchmark Results

compile_demo_art_iai::compile_group::compile_to_proto with_setup_0:load_from_name(isometric-fountain)
Instructions: 25,114,306 (master) -> 25,118,902 (HEAD) : $$\color{red}+0.02\%$$

Detailed metrics
Baselines:                master|       HEAD
D1mr                     310,612|    309,222          -0.45%
D1mw                      99,788|     97,588          -2.20%
DLmr                      28,941|     28,802          -0.48%
DLmw                      49,977|     42,245         -15.47%
Dr                     6,084,845|  6,086,252          +0.02%
Dw                     4,301,961|  4,302,837          +0.02%
EstimatedCycles       39,720,742| 39,468,535          -0.63%
I1mr                      46,150|     44,076          -4.49%
ILmr                         863|        853          -1.16%
Ir                    25,114,306| 25,118,902          +0.02%
L1hits                35,044,562| 35,057,105          +0.04%
LLhits                   376,769|    378,986          +0.59%
RamHits                   79,781|     71,900          -9.88%
TotalRW               35,501,112| 35,507,991          +0.02%

compile_demo_art_iai::compile_group::compile_to_proto with_setup_1:load_from_name(painted-dreams)
Instructions: 13,088,521 (master) -> 13,083,509 (HEAD) : $$\color{lime}-0.04\%$$

Detailed metrics
Baselines:                master|       HEAD
D1mr                     156,762|    155,598          -0.74%
D1mw                      49,415|     49,621          +0.42%
DLmr                         918|        777         -15.36%
DLmw                      15,844|     12,850         -18.90%
Dr                     3,172,749|  3,171,360          -0.04%
Dw                     2,233,731|  2,232,965          -0.03%
EstimatedCycles       19,935,111| 19,827,584          -0.54%
I1mr                      22,653|     22,101          -2.44%
ILmr                         731|        722          -1.23%
Ir                    13,088,521| 13,083,509          -0.04%
L1hits                18,266,171| 18,260,514          -0.03%
LLhits                   211,337|    212,971          +0.77%
RamHits                   17,493|     14,349         -17.97%
TotalRW               18,495,001| 18,487,834          -0.04%

compile_demo_art_iai::compile_group::compile_to_proto with_setup_2:load_from_name(procedural-string-lights)
Instructions: 2,205,714 (master) -> 2,166,128 (HEAD) : $$\color{lime}-1.79\%$$

Detailed metrics
Baselines:                master|       HEAD
D1mr                      22,740|     22,438          -1.33%
D1mw                      10,755|     10,586          -1.57%
DLmr                          22|         21          -4.55%
DLmw                       1,583|      2,476         +56.41%
Dr                       510,313|    500,832          -1.86%
Dw                       372,191|    365,324          -1.85%
EstimatedCycles        3,311,772|  3,280,122          -0.96%
I1mr                       4,971|      4,883          -1.77%
ILmr                         718|        710          -1.11%
Ir                     2,205,714|  2,166,128          -1.79%
L1hits                 3,049,752|  2,994,377          -1.82%
LLhits                    36,143|     34,700          -3.99%
RamHits                    2,323|      3,207         +38.05%
TotalRW                3,088,218|  3,032,284          -1.81%

compile_demo_art_iai::compile_group::compile_to_proto with_setup_3:load_from_name(parametric-dunescape)
Instructions: 14,467,730 (master) -> 12,557,721 (HEAD) : $$\color{lime}-13.20\%$$

Detailed metrics
Baselines:                master|       HEAD
D1mr                     187,083|    155,288         -17.00%
D1mw                      66,536|     50,902         -23.50%
DLmr                          67|         43         -35.82%
DLmw                      16,966|     11,937         -29.64%
Dr                     3,472,460|  3,012,438         -13.25%
Dw                     2,479,965|  2,145,850         -13.47%
EstimatedCycles       22,051,067| 19,000,887         -13.83%
I1mr                      19,949|     18,887          -5.32%
ILmr                         855|        839          -1.87%
Ir                    14,467,730| 12,557,721         -13.20%
L1hits                20,146,587| 17,490,932         -13.18%
LLhits                   255,680|    212,258         -16.98%
RamHits                   17,888|     12,819         -28.34%
TotalRW               20,420,155| 17,716,009         -13.24%

compile_demo_art_iai::compile_group::compile_to_proto with_setup_4:load_from_name(red-dress)
Instructions: 30,717,005 (master) -> 30,054,384 (HEAD) : $$\color{lime}-2.16\%$$

Detailed metrics
Baselines:                master|       HEAD
D1mr                     392,646|    382,024          -2.71%
D1mw                     132,150|    126,035          -4.63%
DLmr                      42,472|     40,942          -3.60%
DLmw                      63,886|     62,976          -1.42%
Dr                     7,381,918|  7,223,312          -2.15%
Dw                     5,230,397|  5,116,029          -2.19%
EstimatedCycles       48,846,148| 47,763,495          -2.22%
I1mr                      50,171|     48,436          -3.46%
ILmr                         874|        875          +0.11%
Ir                    30,717,005| 30,054,384          -2.16%
L1hits                42,754,353| 41,837,230          -2.15%
LLhits                   467,735|    451,702          -3.43%
RamHits                  107,232|    104,793          -2.27%
TotalRW               43,329,320| 42,393,725          -2.16%

compile_demo_art_iai::compile_group::compile_to_proto with_setup_5:load_from_name(valley-of-spires)
Instructions: 19,067,735 (master) -> 19,068,291 (HEAD) : $$\color{red}+0.00\%$$

Detailed metrics
Baselines:                master|       HEAD
D1mr                     235,942|    234,843          -0.47%
D1mw                      76,338|     76,866          +0.69%
DLmr                      12,420|     11,591          -6.67%
DLmw                      28,828|     25,770         -10.61%
Dr                     4,604,301|  4,605,228          +0.02%
Dw                     3,256,019|  3,256,538          +0.02%
EstimatedCycles       29,575,545| 29,455,115          -0.41%
I1mr                      34,375|     33,543          -2.42%
ILmr                         781|        774          -0.90%
Ir                    19,067,735| 19,068,291          +0.00%
L1hits                26,581,400| 26,584,805          +0.01%
LLhits                   304,626|    307,117          +0.82%
RamHits                   42,029|     38,135          -9.27%
TotalRW               26,928,055| 26,930,057          +0.01%

@Keavon
Copy link
Member

Keavon commented Jul 1, 2025

Please resolve conflicts, thanks!

@Keavon
Copy link
Member

Keavon commented Jul 2, 2025

Unfortunately, in my testing, this doesn't seem to work very well in even the simple case of un-splitting a path. It also seems to fail quite badly when one of the segment ends is a zero-length handle.

@Keavon Keavon changed the title Refit on delete Add the re-fit on delete feature to the Path tool Jul 2, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Deleting (dissolving) a point should scale its adjacent handles to minimize curvature change
2 participants