Repository navigation
Commit 50115fd
committed
Pre-mount Android views in the time each frame leaves free, behind a flag
With enablePremountItemsBetweenFramesAndroid on, the DISPATCH_UI frame
callback no longer pre-mounts for half of a 60 Hz frame before the frame's
traversal. PreMountItemsBetweenFrames pre-mounts after the frame, in slices
posted to the UI thread's looper as asynchronous messages, each starting
items for about 1 ms, until the next vsync: from Android 13 the spacing of
the frame timelines the Choreographer hands a vsync callback, otherwise the
display's refresh rate. After a frame that left no time, it also pre-mounts
before the next traversal: for as long as that frame's draw slept, or for
half a frame once two frames in a row each took a frame interval of their
own work, at most half a frame and half of a 30 Hz frame either way. A
commit whose mount items arrive while the slices run is mounted by the
next slice, which first runs every pre-mount item left; one the pull model
queues as a surface to pull waits for the frame, and mount items wait with
it. Slices run only while the frame callback would mount.1 parent 79a5629 commit 50115fd
31 files changed
Lines changed: 2211 additions & 88 deletions
File tree
- packages/react-native
- ReactAndroid/src
- main
- java/com/facebook/react
- fabric
- mounting
- internal/featureflags
- jni/react/featureflags
- test/java/com/facebook/react/fabric
- mounting
- ReactCommon/react
- featureflags
- nativemodule/featureflags
- scripts/featureflags
- src/private/featureflags
- specs
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
| 24 | + | |
24 | 25 | | |
25 | 26 | | |
26 | 27 | | |
| |||
58 | 59 | | |
59 | 60 | | |
60 | 61 | | |
| 62 | + | |
| 63 | + | |
61 | 64 | | |
62 | 65 | | |
| 66 | + | |
63 | 67 | | |
64 | 68 | | |
65 | 69 | | |
| |||
182 | 186 | | |
183 | 187 | | |
184 | 188 | | |
| 189 | + | |
| 190 | + | |
185 | 191 | | |
186 | 192 | | |
187 | 193 | | |
| |||
258 | 264 | | |
259 | 265 | | |
260 | 266 | | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
261 | 276 | | |
262 | 277 | | |
263 | 278 | | |
| |||
463 | 478 | | |
464 | 479 | | |
465 | 480 | | |
| 481 | + | |
| 482 | + | |
| 483 | + | |
466 | 484 | | |
467 | 485 | | |
468 | 486 | | |
| |||
498 | 516 | | |
499 | 517 | | |
500 | 518 | | |
| 519 | + | |
501 | 520 | | |
502 | 521 | | |
503 | 522 | | |
| |||
1680 | 1699 | | |
1681 | 1700 | | |
1682 | 1701 | | |
1683 | | - | |
1684 | | - | |
| 1702 | + | |
1685 | 1703 | | |
1686 | 1704 | | |
1687 | 1705 | | |
| 1706 | + | |
| 1707 | + | |
| 1708 | + | |
| 1709 | + | |
| 1710 | + | |
| 1711 | + | |
1688 | 1712 | | |
1689 | 1713 | | |
1690 | 1714 | | |
1691 | 1715 | | |
| 1716 | + | |
| 1717 | + | |
| 1718 | + | |
| 1719 | + | |
| 1720 | + | |
| 1721 | + | |
| 1722 | + | |
| 1723 | + | |
| 1724 | + | |
| 1725 | + | |
| 1726 | + | |
| 1727 | + | |
| 1728 | + | |
1692 | 1729 | | |
1693 | 1730 | | |
1694 | 1731 | | |
| |||
1728 | 1765 | | |
1729 | 1766 | | |
1730 | 1767 | | |
1731 | | - | |
1732 | | - | |
1733 | | - | |
1734 | | - | |
1735 | | - | |
1736 | | - | |
1737 | | - | |
| 1768 | + | |
| 1769 | + | |
| 1770 | + | |
| 1771 | + | |
| 1772 | + | |
| 1773 | + | |
| 1774 | + | |
| 1775 | + | |
| 1776 | + | |
| 1777 | + | |
| 1778 | + | |
| 1779 | + | |
| 1780 | + | |
| 1781 | + | |
1738 | 1782 | | |
1739 | 1783 | | |
1740 | 1784 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
10 | | - | |
11 | 10 | | |
12 | 11 | | |
13 | 12 | | |
| |||
17 | 16 | | |
18 | 17 | | |
19 | 18 | | |
| 19 | + | |
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
| |||
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
30 | 33 | | |
31 | 34 | | |
32 | 35 | | |
| |||
49 | 52 | | |
50 | 53 | | |
51 | 54 | | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
52 | 61 | | |
53 | 62 | | |
54 | 63 | | |
| |||
64 | 73 | | |
65 | 74 | | |
66 | 75 | | |
67 | | - | |
68 | | - | |
69 | 76 | | |
70 | 77 | | |
71 | 78 | | |
| |||
355 | 362 | | |
356 | 363 | | |
357 | 364 | | |
358 | | - | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
359 | 369 | | |
| 370 | + | |
| 371 | + | |
| 372 | + | |
| 373 | + | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
360 | 378 | | |
361 | 379 | | |
362 | | - | |
| 380 | + | |
363 | 381 | | |
364 | | - | |
365 | | - | |
366 | | - | |
| 382 | + | |
| 383 | + | |
367 | 384 | | |
368 | 385 | | |
369 | 386 | | |
| |||
381 | 398 | | |
382 | 399 | | |
383 | 400 | | |
384 | | - | |
| 401 | + | |
385 | 402 | | |
386 | 403 | | |
387 | 404 | | |
| |||
473 | 490 | | |
474 | 491 | | |
475 | 492 | | |
476 | | - | |
477 | | - | |
478 | 493 | | |
479 | 494 | | |
480 | 495 | | |
| |||
0 commit comments