MozillaReality / FirefoxReality

INACTIVE - A fast and secure browser for standalone virtual-reality and augmented-reality headsets.
https://mzl.la/reality
Mozilla Public License 2.0
770 stars 217 forks source link

[meta] Enable multiprocess i.e. e10s #451

Closed MortimerGoro closed 5 years ago

MortimerGoro commented 6 years ago

We need to enable multiprocess to improve loading times and for all the perf benefits.

Currently it's blocked because there is a problem with shared video SurfaceTextures

needs #680

bluemarvin commented 6 years ago

Currently blocked by https://bugzilla.mozilla.org/show_bug.cgi?id=1486659

larsbergstrom commented 6 years ago

This is not happening for V1.0 due to the blocking bug, but is high priority for V1.1.

larsbergstrom commented 6 years ago

Related to: https://github.com/MozillaReality/FirefoxReality/issues/680

Unlikely for 1.1.

cvan commented 6 years ago

We can move this to post-v1.1.

fernandojsg commented 5 years ago

Running each test 3 times, here you can see the average and summary comparing master branch with and without e10s enabled:

It seems totalTime (loading + rendering all the frames) is lower in most of the examples with e10s disabled, while timeToFirstFrame seems lower on 8 out of 11 tests with e10s enabled. So it seems that loading resources is faster with e10s, while actually rendering and running the demo is slower. cpuTime also seems lower on 9/11 with e10s disabled. image

Complete results image image image

| HALLOVREEN                |
| COUNTER                   |     MASTER  | MASTER_E10S  |      DIF |    DIF% |
| avgFps                    |       20.39 |        18.78 |     1.61 |   8.55% |
| numStutterEvents          |      127.33 |       133.33 |     6.00 |   4.71% |
| totalRenderTime           |    24610.27 |     26866.70 |  2256.43 |   9.17% |
| cpuTime                   |    15338.15 |     16544.79 |  1206.64 |   7.87% |
| cpuIdleTime               |    11297.05 |     11214.33 |    82.72 |   0.74% |
| cpuIdlePerc               |       45.82 |        41.87 |     3.95 |   9.44% |
| pageLoadTime              |     2032.67 |      1912.34 |   120.33 |   6.29% |
| totalTime                 |    28972.51 |     29975.80 |  1003.29 |   3.46% |
| timeToFirstFrame          |     4362.24 |      3109.10 |  1253.14 |  40.31% |
| fps                       |       22.01 |        20.34 |     1.67 |   8.20% |
| dt                        |       52.57 |        55.01 |     2.44 |   4.64% |
| cpu                       |       63.74 |        61.71 |     2.03 |   3.29% |
| drawCalls                 |       19.02 |        18.71 |     0.30 |   1.62% |
| useProgramCalls           |       13.80 |        13.58 |     0.21 |   1.56% |
| faces                     |    21521.22 |     21004.89 |   516.34 |   2.46% |
| vertices                  |    66483.67 |     64934.66 |  1549.01 |   2.39% |
| bindTextures              |       23.93 |        23.62 |     0.31 |   1.32% |
|  |
| CUBES-3ECS                |
| COUNTER                   |     MASTER  | MASTER_E10S  |      DIF |    DIF% |
| avgFps                    |       46.24 |        41.27 |     4.97 |  12.03% |
| numStutterEvents          |      100.33 |       136.33 |    36.00 |  35.88% |
| totalRenderTime           |    10849.30 |     12115.33 |  1266.03 |  11.67% |
| cpuTime                   |     5078.19 |      5533.40 |   455.21 |   8.96% |
| cpuIdleTime               |     5667.59 |      6478.61 |   811.01 |  14.31% |
| cpuIdlePerc               |       51.98 |        53.47 |     1.49 |   2.87% |
| pageLoadTime              |      366.06 |       384.43 |    18.37 |   5.02% |
| totalTime                 |    11532.13 |     12898.95 |  1366.82 |  11.85% |
| timeToFirstFrame          |      682.83 |       783.62 |   100.79 |  14.76% |
| fps                       |       47.99 |        42.15 |     5.84 |  13.86% |
| dt                        |       21.53 |        24.07 |     2.54 |  11.78% |
| cpu                       |       48.84 |        46.25 |     2.60 |   5.62% |
| drawCalls                 |      100.45 |       100.45 |        = |       = |
| useProgramCalls           |        0.00 |         0.00 |        = |       = |
| faces                     |     1193.35 |      1193.35 |        = |       = |
| vertices                  |     3640.06 |      3640.06 |        = |       = |
| bindTextures              |        0.00 |         0.00 |        = |       = |
|  |
| CUBES-AFRAME              |
| COUNTER                   |     MASTER  | MASTER_E10S  |      DIF |    DIF% |
| avgFps                    |       39.52 |        34.82 |     4.70 |  13.50% |
| numStutterEvents          |      131.00 |       137.67 |     6.67 |   5.09% |
| totalRenderTime           |    12721.19 |     14361.81 |  1640.63 |  12.90% |
| cpuTime                   |     6738.19 |      7336.18 |   597.99 |   8.87% |
| cpuIdleTime               |     5897.97 |      6938.30 |  1040.33 |  17.64% |
| cpuIdlePerc               |       45.94 |        48.32 |     2.38 |   5.18% |
| pageLoadTime              |     2833.04 |      2521.78 |   311.26 |  12.34% |
| totalTime                 |    15814.59 |     17105.68 |  1291.09 |   8.16% |
| timeToFirstFrame          |     3093.40 |      2743.87 |   349.53 |  12.74% |
| fps                       |       40.35 |        35.29 |     5.06 |  14.33% |
| dt                        |       25.32 |        28.61 |     3.28 |  12.97% |
| cpu                       |       54.20 |        50.61 |     3.60 |   7.11% |
| drawCalls                 |      100.09 |       100.09 |        = |       = |
| useProgramCalls           |        0.00 |         0.00 |        = |       = |
| faces                     |        0.00 |         0.00 |        = |       = |
| vertices                  |     3627.38 |      3627.38 |        = |       = |
| bindTextures              |        0.00 |         0.00 |        = |       = |
|  |
| BALLSHOOTER               |
| COUNTER                   |     MASTER  | MASTER_E10S  |      DIF |    DIF% |
| avgFps                    |       46.38 |        41.93 |     4.45 |  10.60% |
| numStutterEvents          |       96.33 |       115.00 |    18.67 |  19.38% |
| totalRenderTime           |    10824.51 |     11933.91 |  1109.40 |  10.25% |
| cpuTime                   |     4393.99 |      4424.56 |    30.57 |   0.70% |
| cpuIdleTime               |     6287.19 |      7376.29 |  1089.10 |  17.32% |
| cpuIdlePerc               |       57.91 |        61.82 |     3.90 |   6.74% |
| pageLoadTime              |      686.34 |       588.90 |    97.44 |  16.55% |
| totalTime                 |    11904.69 |     12912.69 |  1008.00 |   8.47% |
| timeToFirstFrame          |     1080.18 |       978.78 |   101.40 |  10.36% |
| fps                       |       48.36 |        43.01 |     5.35 |  12.45% |
| dt                        |       21.41 |        23.65 |     2.24 |  10.48% |
| cpu                       |       41.32 |        36.17 |     5.15 |  14.25% |
| drawCalls                 |       28.80 |        28.80 |        = |       = |
| useProgramCalls           |        2.00 |         2.00 |        = |       = |
| faces                     |        0.00 |         0.00 |        = |       = |
| vertices                  |    26948.16 |     26948.16 |        = |       = |
| bindTextures              |        0.00 |         0.00 |        = |       = |
|  |
| PERFORMANCE_MATRICES      |
| COUNTER                   |     MASTER  | MASTER_E10S  |      DIF |    DIF% |
| avgFps                    |       40.26 |        33.68 |     6.58 |  19.53% |
| numStutterEvents          |       96.00 |       276.67 |   180.67 | 188.19% |
| totalRenderTime           |    24925.59 |     29707.73 |  4782.14 |  19.19% |
| cpuTime                   |    16949.61 |     17406.14 |   456.53 |   2.69% |
| cpuIdleTime               |     7869.46 |     12198.81 |  4329.35 |  55.01% |
| cpuIdlePerc               |       31.35 |        41.05 |     9.70 |  30.92% |
| pageLoadTime              |     1186.56 |       966.09 |   220.47 |  22.82% |
| totalTime                 |    26305.84 |     30863.09 |  4557.25 |  17.32% |
| timeToFirstFrame          |     1380.25 |      1155.36 |   224.89 |  19.47% |
| fps                       |       40.88 |        33.96 |     6.93 |  20.40% |
| dt                        |       24.84 |        29.63 |     4.79 |  19.28% |
| cpu                       |       70.68 |        61.60 |     9.08 |  14.74% |
| drawCalls                 |        0.00 |         0.00 |        = |       = |
| useProgramCalls           |        0.00 |         0.00 |        = |       = |
| faces                     |        0.00 |         0.00 |        = |       = |
| vertices                  |        0.00 |         0.00 |        = |       = |
| bindTextures              |        0.00 |         0.00 |        = |       = |
|  |
| PERFORMANCE_ANIMATION     |
| COUNTER                   |     MASTER  | MASTER_E10S  |      DIF |    DIF% |
| avgFps                    |       16.75 |        15.40 |     1.35 |   8.76% |
| numStutterEvents          |       36.33 |        41.33 |     5.00 |  13.76% |
| totalRenderTime           |    29849.25 |     32470.41 |  2621.17 |   8.78% |
| cpuTime                   |    23355.69 |     25769.71 |  2414.01 |  10.34% |
| cpuIdleTime               |     6341.08 |      6548.00 |   206.92 |   3.26% |
| cpuIdlePerc               |       21.24 |        20.17 |     1.08 |   5.33% |
| pageLoadTime              |     4997.44 |      4642.17 |   355.27 |   7.65% |
| totalTime                 |    35108.51 |     37326.19 |  2217.68 |   6.32% |
| timeToFirstFrame          |     5259.26 |      4855.77 |   403.49 |   8.31% |
| fps                       |       17.04 |        15.76 |     1.28 |   8.09% |
| dt                        |       59.51 |        64.76 |     5.25 |   8.83% |
| cpu                       |       80.11 |        79.89 |     0.22 |   0.27% |
| drawCalls                 |      192.00 |       192.00 |        = |       = |
| useProgramCalls           |        5.00 |         5.00 |        = |       = |
| faces                     |    32372.00 |     32372.00 |        = |       = |
| vertices                  |    97280.00 |     97280.00 |        = |       = |
| bindTextures              |       40.00 |        40.00 |        = |       = |
|  |
| PERFORMANCE_PHYSICS       |
| COUNTER                   |     MASTER  | MASTER_E10S  |      DIF |    DIF% |
| avgFps                    |       34.42 |        24.04 |    10.38 |  43.17% |
| numStutterEvents          |      155.67 |       127.33 |    28.33 |  22.25% |
| totalRenderTime           |    14526.61 |     47280.37 | 32753.76 | 225.47% |
| cpuTime                   |     8079.67 |      8089.45 |     9.78 |   0.12% |
| cpuIdleTime               |     6323.73 |     39067.54 | 32743.81 | 517.79% |
| cpuIdlePerc               |       43.53 |        60.17 |    16.64 |  38.23% |
| pageLoadTime              |     2924.33 |      3464.39 |   540.06 |  18.47% |
| totalTime                 |    17838.15 |     51048.71 | 33210.56 | 186.18% |
| timeToFirstFrame          |     3311.53 |      3768.33 |   456.80 |  13.79% |
| fps                       |       35.44 |        34.96 |     0.48 |   1.38% |
| dt                        |       28.86 |        94.50 |    65.64 | 227.40% |
| cpu                       |       59.95 |        58.39 |     1.56 |   2.66% |
| drawCalls                 |      100.99 |       100.99 |        = |       = |
| useProgramCalls           |        2.00 |         2.00 |        = |       = |
| faces                     |     1199.90 |      1199.90 |        = |       = |
| vertices                  |     5603.71 |      5603.71 |        = |       = |
| bindTextures              |        0.00 |         0.00 |        = |       = |
|  |
| PERFORMANCE_COMPLEX_MODEL |
| COUNTER                   |     MASTER  | MASTER_E10S  |      DIF |    DIF% |
| avgFps                    |       29.88 |        28.81 |     1.08 |   3.74% |
| numStutterEvents          |      237.67 |       264.33 |    26.67 |  11.22% |
| totalRenderTime           |    33484.48 |     34729.25 |  1244.77 |   3.72% |
| cpuTime                   |    20962.28 |     20230.04 |   732.24 |   3.62% |
| cpuIdleTime               |    12143.00 |     14122.02 |  1979.02 |  16.30% |
| cpuIdlePerc               |       36.27 |        40.66 |     4.39 |  12.12% |
| pageLoadTime              |     8288.03 |      7575.72 |   712.31 |   9.40% |
| totalTime                 |    41936.26 |     42408.23 |   471.97 |   1.13% |
| timeToFirstFrame          |     8451.78 |      7678.97 |   772.81 |  10.06% |
| fps                       |       30.54 |        29.41 |     1.13 |   3.83% |
| dt                        |       33.14 |        34.39 |     1.25 |   3.77% |
| cpu                       |       64.77 |        60.19 |     4.58 |   7.62% |
| drawCalls                 |       71.00 |        71.00 |        = |       = |
| useProgramCalls           |       11.00 |        11.00 |        = |       = |
| faces                     |   141802.00 |    141802.00 |        = |       = |
| vertices                  |   425406.00 |    425406.00 |        = |       = |
| bindTextures              |       21.00 |        21.00 |        = |       = |
|  |
| PERFORMANCE_WEBGL_RAW     |
| COUNTER                   |     MASTER  | MASTER_E10S  |      DIF |    DIF% |
| avgFps                    |        2.89 |         3.04 |     0.15 |   5.24% |
| numStutterEvents          |       15.67 |         7.00 |     8.67 | 123.81% |
| totalRenderTime           |   173216.26 |    164627.66 |  8588.60 |   5.22% |
| cpuTime                   |   164367.79 |    155123.43 |  9244.36 |   5.96% |
| cpuIdleTime               |     8613.61 |      9269.59 |   655.99 |   7.62% |
| cpuIdlePerc               |        4.97 |         5.63 |     0.66 |  13.33% |
| pageLoadTime              |     2794.27 |      2835.50 |    41.23 |   1.48% |
| totalTime                 |   176421.09 |    167816.68 |  8604.41 |   5.13% |
| timeToFirstFrame          |     3204.83 |      3189.02 |    15.81 |   0.50% |
| fps                       |        2.95 |         3.10 |     0.15 |   5.05% |
| dt                        |      346.66 |       329.44 |    17.21 |   5.22% |
| cpu                       |       95.56 |        94.80 |     0.76 |   0.80% |
| drawCalls                 |     5000.00 |      5000.00 |        = |       = |
| useProgramCalls           |        0.00 |         0.00 |        = |       = |
| faces                     |  4835000.00 |   4835000.00 |        = |       = |
| vertices                  | 14505000.00 |  14505000.00 |        = |       = |
| bindTextures              |        0.00 |         0.00 |        = |       = |
|  |
| AFTERTHEFLOOD-VLQ         |
| COUNTER                   |     MASTER  | MASTER_E10S  |      DIF |    DIF% |
| avgFps                    |        9.90 |         7.64 |     2.25 |  29.50% |
| numStutterEvents          |       84.00 |        78.00 |     6.00 |   7.69% |
| totalRenderTime           |    60634.24 |     78520.56 | 17886.32 |  29.50% |
| cpuTime                   |    40108.22 |     52301.60 | 12193.38 |  30.40% |
| cpuIdleTime               |    19929.96 |     25305.74 |  5375.78 |  26.97% |
| cpuIdlePerc               |       32.87 |        32.23 |     0.64 |   1.99% |
| pageLoadTime              |    24331.10 |     23776.38 |   554.72 |   2.33% |
| totalTime                 |    94933.68 |    112906.66 | 17972.98 |  18.93% |
| timeToFirstFrame          |    34299.44 |     34386.10 |    86.66 |   0.25% |
| fps                       |       14.65 |        10.65 |     3.99 |  37.47% |
| dt                        |      100.23 |       129.56 |    29.33 |  29.26% |
| cpu                       |       71.10 |        68.66 |     2.44 |   3.56% |
| drawCalls                 |      166.40 |       166.40 |        = |       = |
| useProgramCalls           |       86.11 |        86.11 |     0.00 |   0.00% |
| faces                     |   549157.90 |    549157.90 |        = |       = |
| vertices                  |  1647477.96 |   1647477.96 |        = |       = |
| bindTextures              |      356.62 |       356.61 |     0.00 |   0.00% |
|  |
| AQUARIUM                  |
| COUNTER                   |     MASTER  | MASTER_E10S  |      DIF |    DIF% |
| avgFps                    |       11.17 |        11.85 |     0.68 |   6.05% |
| numStutterEvents          |        9.00 |        20.00 |    11.00 | 122.22% |
| totalRenderTime           |    44745.22 |     42196.46 |  2548.76 |   6.04% |
| cpuTime                   |    30992.10 |     31825.21 |   833.11 |   2.69% |
| cpuIdleTime               |    12836.02 |      9410.16 |  3425.86 |  36.41% |
| cpuIdlePerc               |       28.69 |        22.30 |     6.39 |  28.64% |
| pageLoadTime              |      964.32 |       990.70 |    26.38 |   2.74% |
| totalTime                 |    45760.26 |     43207.93 |  2552.33 |   5.91% |
| timeToFirstFrame          |     1015.04 |      1011.47 |     3.57 |   0.35% |
| fps                       |       12.49 |        12.70 |     0.21 |   1.66% |
| dt                        |       87.83 |        82.64 |     5.20 |   6.29% |
| cpu                       |       80.73 |        81.37 |     0.63 |   0.78% |
| drawCalls                 |     1587.88 |      1598.57 |    10.69 |   0.67% |
| useProgramCalls           |       45.75 |        46.03 |     0.28 |   0.61% |
| faces                     |   100252.27 |    100928.24 |   675.97 |   0.67% |
| vertices                  |   300756.81 |    302784.71 |  2027.90 |   0.67% |
| bindTextures              |       83.04 |        83.35 |     0.31 |   0.37% |
bluemarvin commented 5 years ago

@fernandojsg thanks for compiling these. It might be good for the performance team to investigate anything with a very large delta. I believe other than the chromatic page, all webvr links on the feed now work with e10s enabled. @cvan, have you had a chance to figure out what is not working on the js side that prevents chromatic from working with e10s?

philip-lamb commented 5 years ago

From @cvan:

WebCompat sites affected by e10s (to my knowledge):

cvan commented 5 years ago

@cvan, have you had a chance to figure out what is not working on the js side that prevents chromatic from working with e10s?

nope, looking at it again this week: https://github.com/MozillaReality/FirefoxReality/issues/1048 thanks!

philip-lamb commented 5 years ago

Pushing to 1.3 as we won't have time to thoroughly test against 1.2.

jvonitter commented 5 years ago

blocking bug appears to be closed. removing that label.

bluemarvin commented 5 years ago

currently blocked on https://bugzilla.mozilla.org/show_bug.cgi?id=1578851 (WebVR immersive mode broken on android when e10s is enabled)

philip-lamb commented 5 years ago

https://bugzilla.mozilla.org/show_bug.cgi?id=1529812 (Panomoments fail to load when e10s is enabled.) is still open too.

bluemarvin commented 5 years ago

https://github.com/MozillaReality/FirefoxReality/issues/2046