Граф коммитов

292 Коммитов

Автор SHA1 Сообщение Дата
Alexis Beingessner ade0725530 Bug 1686616 - make GfxInfo use Components instead of Services. r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D105522
2021-02-18 13:26:29 +00:00
Jamie Nicol 2bc946d133 Bug 1689064 - Disable optimized shaders on Mali-T6xx. r=aosmond
Webrender's pre-optimized shaders result in completely broken
rendering on a Huawei MediaPad M2 (Mali-T628). As a precaution,
disable optimized shaders on all Mali-T6xx devices.

Differential Revision: https://phabricator.services.mozilla.com/D104752
2021-02-11 13:47:59 +00:00
Brindusan Cristian 8859fc3907 Backed out changeset e602ff8fea83 (bug 1689064) for assertion failures in gfxFeature.cpp. CLOSED TREE 2021-02-11 13:28:24 +02:00
Jamie Nicol e97cf43b8c Bug 1689064 - Disable optimized shaders on Mali-T6xx. r=aosmond
Webrender's pre-optimized shaders result in completely broken
rendering on a Huawei MediaPad M2 (Mali-T628). As a precaution,
disable optimized shaders on all Mali-T6xx devices.

Differential Revision: https://phabricator.services.mozilla.com/D104752
2021-02-11 10:54:15 +00:00
Noemi Erli 06eb4d31ad Backed out changeset 5338c029ee7c (bug 1689064) for causing GTest failures CLOSED TREE 2021-02-11 02:02:45 +02:00
Jamie Nicol 6bd22ad430 Bug 1689064 - Disable optimized shaders on Mali-T6xx. r=aosmond
Webrender's pre-optimized shaders result in completely broken
rendering on a Huawei MediaPad M2 (Mali-T628). As a precaution,
disable optimized shaders on all Mali-T6xx devices.

Differential Revision: https://phabricator.services.mozilla.com/D104752
2021-02-10 23:09:19 +00:00
Jamie Nicol d636995f23 Bug 1680087 - Disable webrender partial present on Mali-T6xx and T7xx. r=aosmond
Due to rendering issues reported on a Mali-T628 and Mali-T760, disable
partial present on all Mali-T6xx and T7xx devices. We know that not
all T6xx and T7xx devices are affected, so this is being cautious. The
driver version is probably more important than the GPU model. We
should make the block more precise once more is known about the bug.

Differential Revision: https://phabricator.services.mozilla.com/D104678
2021-02-10 13:10:38 +00:00
Matt Woodrow f9e8884de8 Bug 1541472 - Remove Advanced Layers, since it's disabled everywhere now. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D104592
2021-02-10 02:04:41 +00:00
Andrew Osmond 4a410a48ae Bug 1689203 - Allow fallback from WebRender to Software WebRender. r=jrmuizel
We can disable WebRender because the GPU process crashed, or we
encountered a graceful runtime error in WebRender. This patch adds two
new prefs to control how that fallback works.

gfx.webrender.fallback.software-d3d11 controls if WebRender falls back
to Software WebRender + D3D11 compositing. If true, and the user is
allowed to get Software WebRender, we will fallback to Software
WebRender with the D3D11 compositor first.

gfx.webrender.fallback.software controls if WebRender falls back to
Software WebRender. If true, and the user is allowed to get Software
WebRender, we will fallback to Software WebRender without the D3D11
compositor.

gfx.webrender.fallback.basic controls if WebRender or Software
WebRender falls back to Basic. If true, it falls back to Basic.
Otherwise it continues to use Software WebRender without the D3D11
compositor. Note that this means OpenGL on Android.

This patch also means that gfx.webrender.all=true and MOZ_WEBRENDER=1
no longer disables Software WebRender. It will still prefer (Hardware)
WebRender but we want to allow fallback to Software WebRender for
configurations that forced WebRender on.

Differential Revision: https://phabricator.services.mozilla.com/D103491
2021-02-01 23:36:36 +00:00
Butkovits Atila 6a81495553 Backed out changeset 7ba7ce64acae (bug 1689203) for causing failure on GfxConfigManager. CLOSED TREE 2021-02-02 01:33:00 +02:00
Andrew Osmond 2a606ea074 Bug 1689203 - Allow fallback from WebRender to Software WebRender. r=jrmuizel
We can disable WebRender because the GPU process crashed, or we
encountered a graceful runtime error in WebRender. This patch adds two
new prefs to control how that fallback works.

gfx.webrender.fallback.software-d3d11 controls if WebRender falls back
to Software WebRender + D3D11 compositing. If true, and the user is
allowed to get Software WebRender, we will fallback to Software
WebRender with the D3D11 compositor first.

gfx.webrender.fallback.software controls if WebRender falls back to
Software WebRender. If true, and the user is allowed to get Software
WebRender, we will fallback to Software WebRender without the D3D11
compositor.

gfx.webrender.fallback.basic controls if WebRender or Software
WebRender falls back to Basic. If true, it falls back to Basic.
Otherwise it continues to use Software WebRender without the D3D11
compositor. Note that this means OpenGL on Android.

This patch also means that gfx.webrender.all=true and MOZ_WEBRENDER=1
no longer disables Software WebRender. It will still prefer (Hardware)
WebRender but we want to allow fallback to Software WebRender for
configurations that forced WebRender on.

Differential Revision: https://phabricator.services.mozilla.com/D103491
2021-02-01 22:27:11 +00:00
Butkovits Atila 1d0218ffe2 Backed out changeset a3c9fce26dd1 (bug 1689203) for causing build bustages on GPUProcessManager.cpp. CLOSED TREE 2021-02-02 00:22:59 +02:00
Andrew Osmond 65ad480541 Bug 1689203 - Allow fallback from WebRender to Software WebRender. r=jrmuizel
We can disable WebRender because the GPU process crashed, or we
encountered a graceful runtime error in WebRender. This patch adds two
new prefs to control how that fallback works.

gfx.webrender.fallback.software-d3d11 controls if WebRender falls back
to Software WebRender + D3D11 compositing. If true, and the user is
allowed to get Software WebRender, we will fallback to Software
WebRender with the D3D11 compositor first.

gfx.webrender.fallback.software controls if WebRender falls back to
Software WebRender. If true, and the user is allowed to get Software
WebRender, we will fallback to Software WebRender without the D3D11
compositor.

gfx.webrender.fallback.basic controls if WebRender or Software
WebRender falls back to Basic. If true, it falls back to Basic.
Otherwise it continues to use Software WebRender without the D3D11
compositor. Note that this means OpenGL on Android.

This patch also means that gfx.webrender.all=true and MOZ_WEBRENDER=1
no longer disables Software WebRender. It will still prefer (Hardware)
WebRender but we want to allow fallback to Software WebRender for
configurations that forced WebRender on.

Differential Revision: https://phabricator.services.mozilla.com/D103491
2021-02-01 20:41:09 +00:00
Andrew Osmond 68638ae568 Bug 1689195 - Ship WebRender to release for Intel users with high refresh rate screens. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D103196
2021-01-29 14:22:23 +00:00
Jamie Nicol 3f25321970 Bug 1687312 - Expose gfx.feature.webrender probe to geckoview_streaming telemetry. r=jrmuizel,aosmond
We have noticed that a sizeable number of Fenix users are not getting
webrender when they should be. On desktop the existing
gfx.feature.webrender telemetry probe is used to determine why
webrender is not enabled. Expose this to geckoview_streaming telemetry
so we can tell the same for Fenix users.

Differential Revision: https://phabricator.services.mozilla.com/D102213
2021-01-18 22:39:24 +00:00
Robert Mader 736a9e904d Bug 1588904 - [Linux/EGL] Use correct rendering device in multi-GPU setup, r=stransky,emilio,jgilbert,geckoview-reviewers,m_kato
Fetch the DRM device in the EGL version of glxtest, set it in gfxInfo and pass
it to gfxVars. Finally, use it in nsDMABufDevice::Configure().

While on it, also clean up EGL typedefs and defines a bit to match how it's
done for GLX.

Inspired by and copied from wlroots and Xwayland. Thanks to emersion!

Differential Revision: https://phabricator.services.mozilla.com/D98108
2021-01-18 09:26:21 +00:00
Mihai Alexandru Michis 075a8d5214 Backed out changeset 03c509adfe55 (bug 1588904) for causing bustages.
CLOSED TREE
2021-01-16 18:09:05 +02:00
Robert Mader 2fd87154fc Bug 1588904 - [Linux/EGL] Use correct rendering device in multi-GPU setup, r=stransky,emilio,jgilbert
Fetch the DRM device in the EGL version of glxtest, set it in gfxInfo and pass
it to gfxVars. Finally, use it in nsDMABufDevice::Configure().

While on it, also clean up EGL typedefs and defines a bit to match how it's
done for GLX.

Inspired by and copied from wlroots and Xwayland. Thanks to emersion!

Differential Revision: https://phabricator.services.mozilla.com/D98108
2021-01-16 15:36:12 +00:00
Brindusan Cristian 4c535a3595 Backed out changeset dde159ea0c4c (bug 1588904) for build bustages at xf86drm.h. CLOSED TREE 2021-01-16 14:51:34 +02:00
Robert Mader 88f418e0a5 Bug 1588904 - [Linux/EGL] Use correct rendering device in multi-GPU setup, r=stransky,emilio,jgilbert
Fetch the DRM device in the EGL version of glxtest, set it in gfxInfo and pass
it to gfxVars. Finally, use it in nsDMABufDevice::Configure().

While on it, also clean up EGL typedefs and defines a bit to match how it's
done for GLX.

Inspired by and copied from wlroots and Xwayland. Thanks to emersion!

Differential Revision: https://phabricator.services.mozilla.com/D98108
2021-01-16 12:14:37 +00:00
Andrew Osmond 9168cac006 Bug 1684170 - Decouple WebRender and Software WebRender gfxConfig features. r=jrmuizel
Lack of support of (hardware) WebRender should not block Software
WebRender support. This can happen when ANGLE isn't supported, for
example.

Differential Revision: https://phabricator.services.mozilla.com/D100445
2021-01-14 19:59:10 +00:00
Jamie Nicol f394063007 Bug 1685276 - Fix and re-enable partial present on Mali-Gxx devices. r=kvark
In bug 1676474 an issue was reported regarding partial present on
Mali-G77 devices. This was introduced in bug 1675159, which refactored
some partial present logic and shifted the order of some OpenGL calls
around. As a precaution, we disabled the feature on all Mali-Gxx
devices.

The bug seems to occur when eglSetDamageRegion is called after
rendering to an offscreen render target (in this case due to texture
cache or GPU cache updates), but without the driver being flushed in
some way. This appears to be a bug in the Mali driver.

This patch moves the eglSetDamageRegion call back to its original
location -- after all offscreen render targets have been rendered,
immediately before rendering to the main framebuffer -- which fixes
the issue. It also re-enables the feature on all Mali-Gxx devices.

Differential Revision: https://phabricator.services.mozilla.com/D101018
2021-01-07 14:47:34 +00:00
Andi-Bogdan Postelnicu 7b246e293f Bug 1683551 - Make `gfx` buildable outside of `unified-build` environment. r=sg,jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D100209
2021-01-04 14:20:17 +00:00
Mihai Alexandru Michis 2aea8e093c Backed out changeset 465526830144 (bug 1684170) for causing talos failures.
CLOSED TREE
2020-12-25 07:04:27 +02:00
Andrew Osmond 1510060a56 Bug 1684170 - Decouple WebRender and Software WebRender gfxConfig features. r=jrmuizel
Lack of support of (hardware) WebRender should not block Software
WebRender support. This can happen when ANGLE isn't supported, for
example.

Differential Revision: https://phabricator.services.mozilla.com/D100445
2020-12-24 18:23:29 +00:00
Andrew Osmond 112768dbff Bug 1682927 - Ship WebRender to release for Intel users with a refresh rate of up to and including 75 Hz. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D99928
2020-12-16 19:25:19 +00:00
Matt Woodrow 4e7f9b4789 Bug 1678684 - Initialize DXVA on the media thread, remove the mostly-unused dll blocklist, and the crashguard. r=jya
The main-thread requirements for DXVA appear to have been needed when we initialized a crash guard. We now only run DXVA in the GPU and RDD processes, which don't support crash guards. This removes the main thread dispatch and the crashguard code, and enforces that we're in the GPU/RDD process to init DXVA.

This also removes the DLL blocklist code. This was disabled via pref when in the GPU process, which should be the majority of the time. In rare cases we would have been running DXVA in the RDD process (on older win7 when the GPU process isn't available). In these cases we can just do the same as the GPU process, allowing crashes and recovering from them (and disabling DXVA).

Differential Revision: https://phabricator.services.mozilla.com/D98036
2020-12-14 06:04:13 +00:00
Jamie Nicol 8c46075595 Bug 1676474 - Disable webrender partial present on Mali-Gxx. r=aosmond
Due to rendering issues reported on a Mali-G77, disable partial
present on all Mali-Gxx devices.

Differential Revision: https://phabricator.services.mozilla.com/D99216
2020-12-09 13:07:33 +00:00
Butkovits Atila df75ae580c Backed out changeset 8c0e2919f6b2 (bug 1678684) for causing Bug 1680661. CLOSED TREE 2020-12-04 11:26:44 +02:00
Matt Woodrow d58b85c3c9 Bug 1678684 - Initialize DXVA on the media thread, remove the mostly-unused dll blocklist, and the crashguard. r=jya
The main-thread requirements for DXVA appear to have been needed when we initialized a crash guard. We now only run DXVA in the GPU and RDD processes, which don't support crash guards. This removes the main thread dispatch and the crashguard code, and enforces that we're in the GPU/RDD process to init DXVA.

This also removes the DLL blocklist code. This was disabled via pref when in the GPU process, which should be the majority of the time. In rare cases we would have been running DXVA in the RDD process (on older win7 when the GPU process isn't available). In these cases we can just do the same as the GPU process, allowing crashes and recovering from them (and disabling DXVA).

Differential Revision: https://phabricator.services.mozilla.com/D98036
2020-12-04 00:49:27 +00:00
Simon Giesecke 971b645fe3 Bug 1660470 - Add missing include directives/forward declarations. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D87865
2020-11-23 16:21:38 +00:00
Andrew Osmond 2f6f788bc8 Bug 1678907 - Allow gfx.webrender.all to override software WebRender allowlist. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D97858
2020-11-22 14:42:57 +00:00
Andrew Osmond d54e45522a Bug 1677293 - Enable Software WebRender on Linux nightly for small/medium screens. r=jrmuizel
This patch enables Software WebRender for all Linux users. If their
configuration is also allowlisted for (accelerated) WebRender, then they
will default to that over Software WebRender.

Differential Revision: https://phabricator.services.mozilla.com/D97156
2020-11-20 17:38:53 +00:00
Butkovits Atila 4f241bf0c5 Backed out changeset f6a72042dd56 (bug 1677293) for failures on fullscreen.py. CLOSED TREE 2020-11-20 15:07:42 +02:00
Andrew Osmond 30f43fae5d Bug 1677293 - Enable Software WebRender on Linux nightly for small/medium screens. r=jrmuizel
This patch enables Software WebRender for all Linux users. If their
configuration is also allowlisted for (accelerated) WebRender, then they
will default to that over Software WebRender.

Differential Revision: https://phabricator.services.mozilla.com/D97156
2020-11-20 11:34:56 +00:00
Narcis Beleuzu 7c34b619e1 Backed out changeset e675571f2d9a (bug 1677293) for GTest failure on GfxConfigManager . CLOSED TREE 2020-11-20 06:58:06 +02:00
Andrew Osmond 1a739849ce Bug 1677293 - Enable Software WebRender on Linux nightly for small/medium screens. r=jrmuizel
This patch enables Software WebRender for all Linux users. If their
configuration is also allowlisted for (accelerated) WebRender, then they
will default to that over Software WebRender.

Differential Revision: https://phabricator.services.mozilla.com/D97156
2020-11-20 00:57:07 +00:00
Cristina Coroiu a6ec96e2b1 Backed out changeset 2991f291f95f (bug 1677293) for Wd failures at mozilla/webdriver/take_full_screenshot/iframe.py on a CLOSED TREE 2020-11-18 13:29:18 +02:00
Andrew Osmond 81c30b5780 Bug 1677293 - Enable Software WebRender on Linux nightly for small/medium screens. r=jrmuizel
This patch enables Software WebRender for all Linux users. If their
configuration is also allowlisted for (accelerated) WebRender, then they
will default to that over Software WebRender.

Differential Revision: https://phabricator.services.mozilla.com/D97156
2020-11-18 00:42:24 +00:00
Matt Woodrow 69e9ee97f9 Bug 1677818 - Allow running WebRender on ANGLE in the parent process outside of Nightly. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D97344
2020-11-17 19:34:22 +00:00
Andrew Osmond 14c1a2a995 Bug 1676925 - Remove code supporting the defunct WebRender experiments. r=jrmuizel,marionette-reviewers
Differential Revision: https://phabricator.services.mozilla.com/D96943
2020-11-13 05:40:10 +00:00
Matt Woodrow c347392269 Bug 1676719 - Allow WebRender ANGLE in parent process for Nightly. r=jrmuizel
Depends on D96766

Differential Revision: https://phabricator.services.mozilla.com/D96768
2020-11-12 01:31:19 +00:00
Matt Woodrow ccd859ffae Bug 1674866 - Add gfx feature for WR software. r=aosmond
Differential Revision: https://phabricator.services.mozilla.com/D96502
2020-11-10 23:36:43 +00:00
Andrew Osmond eb7cd09979 Bug 1674195 - Allow WebRender for Intel laptop users without DirectComposition. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D95190
2020-10-29 20:21:58 +00:00
Jeff Muizelaar fcfa9a589a Bug 1673715 - Make gfx.webrender.software a static pref. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D94885
2020-10-27 20:34:59 +00:00
Ricky Stewart 02a7b4ebdf Bug 1654103: Standardize on Black for Python code in `mozilla-central`.
Allow-list all Python code in tree for use with the black linter, and re-format all code in-tree accordingly.

To produce this patch I did all of the following:

1. Make changes to tools/lint/black.yml to remove include: stanza and update list of source extensions.

2. Run ./mach lint --linter black --fix

3. Make some ad-hoc manual updates to python/mozbuild/mozbuild/test/configure/test_configure.py -- it has some hard-coded line numbers that the reformat breaks.

4. Make some ad-hoc manual updates to `testing/marionette/client/setup.py`, `testing/marionette/harness/setup.py`, and `testing/firefox-ui/harness/setup.py`, which have hard-coded regexes that break after the reformat.

5. Add a set of exclusions to black.yml. These will be deleted in a follow-up bug (1672023).

# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D94045
2020-10-26 18:34:53 +00:00
Mihai Alexandru Michis d38909b148 Backed out changeset 3714bd86365f (bug 1672489) for accidentally disabling wr on Win7.
CLOSED TREE
2020-10-26 15:57:01 +02:00
Bogdan Tara da1098d4aa Backed out 10 changesets (bug 1654103, bug 1672023, bug 1518999) for PanZoomControllerTest.touchEventForResult gv-junit failures CLOSED TREE
Backed out changeset ff3fb0b4a512 (bug 1672023)
Backed out changeset e7834b600201 (bug 1654103)
Backed out changeset 807893ca8069 (bug 1518999)
Backed out changeset 13e6b92440e9 (bug 1518999)
Backed out changeset 8b2ac5a6c98a (bug 1518999)
Backed out changeset 575748295752 (bug 1518999)
Backed out changeset 65f07ce7b39b (bug 1518999)
Backed out changeset 4bb80556158d (bug 1518999)
Backed out changeset 8ac8461d7bd7 (bug 1518999)
Backed out changeset e8ba13ee17f5 (bug 1518999)
2020-10-24 03:36:18 +03:00
Jeff Muizelaar 07cb9dd9f8 Bug 1672489 - Don't restrict DirectComposition to Win10 on Nightly. r=aosmond
Differential Revision: https://phabricator.services.mozilla.com/D94359
2020-10-23 21:33:02 +00:00
Ricky Stewart c0cea3b0fa Bug 1654103: Standardize on Black for Python code in `mozilla-central`. r=remote-protocol-reviewers,marionette-reviewers,webdriver-reviewers,perftest-reviewers,devtools-backward-compat-reviewers,jgilbert,preferences-reviewers,sylvestre,maja_zf,webcompat-reviewers,denschub,ntim,whimboo,sparky
Allow-list all Python code in tree for use with the black linter, and re-format all code in-tree accordingly.

To produce this patch I did all of the following:

1. Make changes to tools/lint/black.yml to remove include: stanza and update list of source extensions.

2. Run ./mach lint --linter black --fix

3. Make some ad-hoc manual updates to python/mozbuild/mozbuild/test/configure/test_configure.py -- it has some hard-coded line numbers that the reformat breaks.

4. Make some ad-hoc manual updates to `testing/marionette/client/setup.py`, `testing/marionette/harness/setup.py`, and `testing/firefox-ui/harness/setup.py`, which have hard-coded regexes that break after the reformat.

5. Add a set of exclusions to black.yml. These will be deleted in a follow-up bug (1672023).

# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D94045
2020-10-23 20:40:42 +00:00
Andrew Osmond 7dbd895ab1 Bug 1672464 - Block WebRender for NVIDIA users with mixed refresh rates. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D94477
2020-10-23 15:12:41 +00:00
Andrew Osmond b2c20be0bc Bug 1671518 - Improve hardware stretching support to check all monitors and configurations. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D93704
2020-10-22 19:53:23 +00:00
Dorel Luca 1ff59cb7a3 Backed out changeset 7558c8821a07 (bug 1654103) for multiple failures. CLOSED TREE 2020-10-22 03:51:06 +03:00
Ricky Stewart 50762dacab Bug 1654103: Standardize on Black for Python code in `mozilla-central`. r=remote-protocol-reviewers,marionette-reviewers,webdriver-reviewers,perftest-reviewers,devtools-backward-compat-reviewers,jgilbert,preferences-reviewers,sylvestre,maja_zf,webcompat-reviewers,denschub,ntim,whimboo,sparky
Allow-list all Python code in tree for use with the black linter, and re-format all code in-tree accordingly.

To produce this patch I did all of the following:

1. Make changes to tools/lint/black.yml to remove include: stanza and update list of source extensions.

2. Run ./mach lint --linter black --fix

3. Make some ad-hoc manual updates to python/mozbuild/mozbuild/test/configure/test_configure.py -- it has some hard-coded line numbers that the reformat breaks.

4. Add a set of exclusions to black.yml. These will be deleted in a follow-up bug (1672023).

# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D94045
2020-10-21 21:27:27 +00:00
Dan Glastonbury 7ab5253afe Bug 1595994 - PD: Allow WMF decoding inside RDD process. r=mattwoodrow
This assumes that access to Windows WMF and DirectX is allowed from RDD process.

Depends on D91699

Differential Revision: https://phabricator.services.mozilla.com/D54883
2020-10-20 23:26:52 +00:00
Nicolas Silva 41bda13c88 Bug 1671289 - Improve WebRender's integrated profiler. r=gw
In a (large-ish) nutshell:

 - Consolidate all counters under a single type.
 - Counters are all arranged in an array and referred to via index.
 - All counters can be displayed as average+max (float/int), graph, and change indicator.
 - Specify what to show and in what form via a pref.
 - All counters and visualizations support not having values every frame.
 - GPU time queries visualization is easier to read relative to the frame budget:
  - If the maximum value is under 16ms, the right side of the graph is fixed at 16ms.
  - If the maximum value is above 16ms, draw a vertical bar at 16ms.
 - Added a few new profile counters:
  - Total frame CPU time (from API send to the end of GPU command submission).
  - Visibility, Prepare, Batching and Glyph resolve times.

The main change is how profile counters are represented. Instead of having different types for different visualizations, every counter is represented the same way, tracking average/max values over half a ms and optionally recording a graph over a number of frames. Counters are stored in a vector and referred to via index (See constants at the top of profiler.rs).
The main motivation for this storage is to facilitate adding counters without having to think too much about where to store them and how to pass them to the renderer.

The profiler's UI is defined by a string with with a single syntax:
 - Comma separated list of tokens (leading and trailing spaces ignored), which can be:
  - A counter name:
   - If prefixed with a '#' character, the counter is shown as a graph.
   - If prefixed with a '*' character, the counter is shown as a change indicator
   - By default (counter name without prefix), the counter is shown as average and max over half a second.
  - A preset name:
   - A preset is a builtin UI string in the same syntax that can be nested in the main UI string.
   - Presets are defined towards the top of profiler.rs and can also refer to other presets.
  - An empty token adds a  bit of vertical space.
  - A '|' token begins a new column.
  - A '_' token begins a new row.

Differential Revision: https://phabricator.services.mozilla.com/D93603
2020-10-20 08:54:04 +00:00
Narcis Beleuzu 1fa351142a Backed out 1 changesets (bug 1671289) for wrench bustages on profiler.rs . CLOSED TREE
Backed out changeset db80ac24d32f (bug 1671289)
2020-10-19 23:58:05 +03:00
Nicolas Silva b5e41f1e7e Bug 1671289 - Improve WebRender's integrated profiler. r=gw
In a (large-ish) nutshell:

 - Consolidate all counters under a single type.
 - Counters are all arranged in an array and referred to via index.
 - All counters can be displayed as average+max (float/int), graph, and change indicator.
 - Specify what to show and in what form via a pref.
 - All counters and visualizations support not having values every frame.
 - GPU time queries visualization is easier to read relative to the frame budget:
  - If the maximum value is under 16ms, the right side of the graph is fixed at 16ms.
  - If the maximum value is above 16ms, draw a vertical bar at 16ms.
 - Added a few new profile counters:
  - Total frame CPU time (from API send to the end of GPU command submission).
  - Visibility, Prepare, Batching and Glyph resolve times.

The main change is how profile counters are represented. Instead of having different types for different visualizations, every counter is represented the same way, tracking average/max values over half a ms and optionally recording a graph over a number of frames. Counters are stored in a vector and referred to via index (See constants at the top of profiler.rs).
The main motivation for this storage is to facilitate adding counters without having to think too much about where to store them and how to pass them to the renderer.

The profiler's UI is defined by a string with with a single syntax:
 - Comma separated list of tokens (leading and trailing spaces ignored), which can be:
  - A counter name:
   - If prefixed with a '#' character, the counter is shown as a graph.
   - If prefixed with a '*' character, the counter is shown as a change indicator
   - By default (counter name without prefix), the counter is shown as average and max over half a second.
  - A preset name:
   - A preset is a builtin UI string in the same syntax that can be nested in the main UI string.
   - Presets are defined towards the top of profiler.rs and can also refer to other presets.
  - An empty token adds a  bit of vertical space.
  - A '|' token begins a new column.
  - A '_' token begins a new row.

Differential Revision: https://phabricator.services.mozilla.com/D93603
2020-10-19 20:07:54 +00:00
Glenn Watson b4aecd470f Bug 1670842 - Pt 1 - Remove option to disable picture caching. r=jnicol
This patch removes the public API and high level logic for
disabling picture caching for debugging and pinch-zoom in
some cases.

Follow up patches will remove and simplify the internal parts
of WR that remain to handle the disabled picture caching
code path.

Differential Revision: https://phabricator.services.mozilla.com/D93446
2020-10-14 06:06:45 +00:00
Csoregi Natalia 708c2f0ad2 Backed out changeset d42dc1f995bb (bug 1669275) for gfx crashes. CLOSED TREE 2020-10-08 04:26:03 +03:00
Robert Mader 8a5c42d45a Bug 1669275 - [WR/EGL/X11] Use GLX features on mesa. r=stransky
This allows mesa to continue using the existing vsync implementation
and nvidia to use the new EGL xvisual logic.

It is an intermediate solution until the issues are fixed. However,
assuming it will take a while to do so, it's probably worth it.

Differential Revision: https://phabricator.services.mozilla.com/D92466
2020-10-07 21:21:20 +00:00
Jeff Muizelaar 7b09b731d0 Bug 1666455. Enable WebRender on higher refresh rates on non Intel. r=aosmond
Differential Revision: https://phabricator.services.mozilla.com/D92615
2020-10-06 15:06:53 +00:00
Jeff Gilbert a426e3880b Bug 1669381 - Replace GLLibraryEGL nsIGfxInfo use with gfxVars. r=mattwoodrow
+ Remove now-unused gfxUtils::ThreadSafeGetFeatureStatus.

Differential Revision: https://phabricator.services.mozilla.com/D92529
2020-10-06 05:43:33 +00:00
Andrew Osmond e1f1a27e9c Bug 1668360 - Invert WebRender feature config to be enabled by default. r=jrmuizel
This has no functional change beyond our telemetry reporting. It inverts
our feature configuration such that we get an explicit reason why we
don't turn on some features, instead of just "disabled by default."

Differential Revision: https://phabricator.services.mozilla.com/D91980
2020-10-01 14:22:33 +00:00
Jeff Gilbert 449098b7b4 Bug 1668144 - Add blocklisting for OOP WebGL. r=mattwoodrow
* Add FEATURE_THREADSAFE_GL and FEATURE_ALLOW_WEBGL_OUT_OF_PROCESS
* Add gfxVars::AllowWebglOop()
* Blocklist THREADSAFE_GL on mesa/nouveau

Differential Revision: https://phabricator.services.mozilla.com/D91879
2020-10-01 08:14:12 +00:00
Narcis Beleuzu 19240dd8eb Backed out changeset 5a501f5b443d (bug 1668360) for marionette gpu failures. CLOSED TREE 2020-10-01 04:04:42 +03:00
Andrew Osmond b9ef728a9d Bug 1668360 - Invert WebRender feature config to be enabled by default. r=jrmuizel
This has no functional change beyond our telemetry reporting. It inverts
our feature configuration such that we get an explicit reason why we
don't turn on some features, instead of just "disabled by default."

Differential Revision: https://phabricator.services.mozilla.com/D91980
2020-09-30 20:05:28 +00:00
Jeff Gilbert fe9cac8ce8 Bug 1664905 - Use gfxVars instead of GfxInfo in WebGL code. r=mattwoodrow
GfxInfo generally wants to be main-thread, so WebGL (especially
out-of-process) runs into problems sometimes.

Also rename to UNUSED_FEATURE_WEBGL_MSAA, pending removal.

Differential Revision: https://phabricator.services.mozilla.com/D91208
2020-09-27 22:18:23 +00:00
Andrew Osmond 0881691175 Bug 1667810 - Invert WEBRENDER_DCOMP_PRESENT feature logic to make failures clearer. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D91612
2020-09-28 15:48:29 +00:00
Andrew Osmond 754baa9793 Bug 1667380 - Grant each gfx feature instance level its own failure ID. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D91432
2020-09-25 14:11:52 +00:00
Csoregi Natalia fd1e86b487 Backed out changeset 3dcacf3ae5a1 (bug 1664905) for assertion failures on GfxInfoBase.cpp. CLOSED TREE 2020-09-25 09:33:40 +03:00
Jeff Gilbert 3fd329a969 Bug 1664905 - Use gfxVars instead of GfxInfo in WebGL code. r=mattwoodrow
GfxInfo generally wants to be main-thread, so WebGL (especially
out-of-process) runs into problems sometimes.

Also remove obsolete FEATURE_WEBGL_MSAA.

Differential Revision: https://phabricator.services.mozilla.com/D91208
2020-09-25 05:43:24 +00:00
Razvan Maries 92ac0ffaa7 Backed out changeset 3ea0c63fe8b8 (bug 1664905) for build bustages on ClientWebGLContext.cpp. CLOSED TREE 2020-09-25 03:26:17 +03:00
Jeff Gilbert 98e2fea926 Bug 1664905 - Use gfxVars instead of GfxInfo in WebGL code. r=mattwoodrow
GfxInfo generally wants to be main-thread, so WebGL (especially
out-of-process) runs into problems sometimes.

Also remove obsolete FEATURE_WEBGL_MSAA.

Differential Revision: https://phabricator.services.mozilla.com/D91208
2020-09-24 23:46:12 +00:00
Andrew Osmond a8fb0f7be6 Bug 1667105 - Use WEBRENDER_DCOMP failure ID when disabling WebRender due to no DC support. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D91279
2020-09-24 14:14:44 +00:00
Simon Giesecke de7bab0f06 Bug 1650145 - Replace all value uses of Empty[C]String by 0-length _ns literals. r=froydnj,geckoview-reviewers,agi
Differential Revision: https://phabricator.services.mozilla.com/D82325
2020-09-23 15:17:15 +00:00
Andrew Osmond 92a899be07 Bug 1666272 - Use the HW ANGLE failure ID when disabled WebRender due to it. r=jrmuizel
We don't collect telemetry stats on why users don't get HW ANGLE,
however we can just share failure IDs with HW ANGLE when we disable
WebRender with UnavailableNoAngle.

Differential Revision: https://phabricator.services.mozilla.com/D90867
2020-09-21 20:43:20 +00:00
sotaro 872ccfe115 Bug 1649088 - Add SharedSurface support with AHardwareBuffer support on android r=jgilbert
AHardwareBuffer could remove several limitations of android::SurfaceTexture.

File descriptor usage of current implementation is not efficient. It is going to be addressed by Bug 1663381.

Differential Revision: https://phabricator.services.mozilla.com/D89232
2020-09-11 03:11:45 +00:00
sotaro 54ede5160d Bug 1460499 - Use DirectComposition for hardware decoded video on Windows r=nical
Use ID3D11VideoProcessor for video frame rendering.

WebRenderError::VIDEO_OVERLAY does not cause disabling WebRender. It just change gfxVars::UseWebRenderDCompVideoOverlayWin() to false.

Differential Revision: https://phabricator.services.mozilla.com/D88763
2020-09-09 01:04:53 +00:00
Andrew Osmond 9804b7b693 Bug 1661531 - Ensure we always update the gfx feature failure reason. r=kats
Differential Revision: https://phabricator.services.mozilla.com/D88454
2020-08-27 17:04:27 +00:00
Matt Woodrow a0e8493a66 Bug 1657499 - Allow SWGL to run in basic_compositor_video. r=lsalzman,perftest-reviewers
Depends on D86088

Differential Revision: https://phabricator.services.mozilla.com/D86089
2020-08-06 07:48:01 +00:00
Sylvestre Ledru 843f943758 Bug 1519636 - Reformat recent changes to the Google coding style r=andi
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D85678
2020-08-02 15:29:15 +00:00
Andrew Osmond 6cfed64163 Bug 1650748 - Prevent DMABUF usage with GLX. r=nical
Differential Revision: https://phabricator.services.mozilla.com/D84256
2020-07-22 18:58:11 +00:00
Nicolas Silva e503589521 Bug 1645223 - Disable WebRender if XRender is enabled. r=aosmond
Differential Revision: https://phabricator.services.mozilla.com/D83655
2020-07-16 12:08:22 +00:00
sotaro ce3a41744b Bug 1648411 - Add AHardwareBuffer layer buffer support on android r=jnicol
AHardwareBuffer is supported since Android O(APIVersion 26). Implementation of AndroidHardwareBufferTextureData referred AndroidNativeWindowTextureData. Implementation of AndroidHardwareBufferTextureHost referred obsoleted GrallocTextureHost.

android fence is not supported yet.

Differential Revision: https://phabricator.services.mozilla.com/D81808
2020-07-02 13:43:19 +00:00
Simon Giesecke cd8b8939b9 Bug 1648010 - Replace uses of NS_LITERAL_STRING/NS_LITERAL_CSTRING macros by _ns literals. r=geckoview-reviewers,jgilbert,agi,hsivonen,froydnj
Differential Revision: https://phabricator.services.mozilla.com/D80860
2020-07-01 08:29:29 +00:00
Daosheng Mu af1368e7aa Bug 1602072 - Add a gfxInfo flag determine Firefox is embedded by FxR for telemetry. r=thomasmo,chutten,froydnj,jrmuizel,geckoview-reviewers,rbarker,snorp
Differential Revision: https://phabricator.services.mozilla.com/D56233
2020-06-25 17:22:20 +00:00
Kartikaya Gupta d61fdfeed8 Bug 1647225 - Change some failure IDs and strings. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D80450
2020-06-23 15:23:11 +00:00
Kartikaya Gupta 837a027ab6 Bug 1647225 - Consistently use blocklist terminology for gfxFeature. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D80425
2020-06-23 15:13:57 +00:00
Narcis Beleuzu 1f50773a6e Backed out 8 changesets (bug 1647225) for xpcshell failures on test_gfxBlacklist_Version.js CLOSED TREE
Backed out changeset b6f88195da61 (bug 1647225)
Backed out changeset a5b3f54cb5f2 (bug 1647225)
Backed out changeset 6a1025189b0e (bug 1647225)
Backed out changeset b95de94b444e (bug 1647225)
Backed out changeset ed2c7dfd8373 (bug 1647225)
Backed out changeset 1adc99494bcb (bug 1647225)
Backed out changeset 5d0cf22c335a (bug 1647225)
Backed out changeset 956b43a8636f (bug 1647225)
2020-06-23 04:34:12 +03:00
Kartikaya Gupta 347a55ff38 Bug 1647225 - Change some failure IDs and strings. r=jrmuizel
Depends on D80449

Differential Revision: https://phabricator.services.mozilla.com/D80450
2020-06-22 14:06:18 +00:00
Kartikaya Gupta 793dc7ec5d Bug 1647225 - Consistently use blocklist terminology for gfxFeature. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D80425
2020-06-22 14:04:38 +00:00
Dzmitry Malyshau 59b6551dd5 Bug 1638672 - Use shaders to clear texture cache regions r=geckoview-reviewers,gw,snorp
This is a suggested workaround for an interesting visual bug that we see on
some platforms with Intel Broadwell GPUs.

Also reverts https://phabricator.services.mozilla.com/D57100

Differential Revision: https://phabricator.services.mozilla.com/D78705
2020-06-08 21:05:03 +00:00
sotaro 33ee2a10f6 Bug 1637497 - Disable partial present dynamically when Dwm is disabled r=jrmuizel
Do full render with WebRender when Dwn is disabled. It could be done by RenderCompositorANGLE::RequestFullRender().

Back out  Bug 1638469. It disables WebRender during starting if Dwm is disabled. But Dwm is enabled/disabled dynamically. And we do not want to disable WebRender in this case.

Differential Revision: https://phabricator.services.mozilla.com/D77221
2020-06-01 18:39:50 +00:00
Andrew Osmond 5a41ea33e0 Bug 1641510 - Ensure we allow WebRender on beta/release for 60 Hz monitors. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D77234
2020-05-28 13:24:29 +00:00
Sylvestre Ledru 615c83d723 Bug 1519636 - Reformat recent changes to the Google coding style r=andi
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D76451
2020-05-25 07:42:38 +00:00
Nika Layzell 549547126e Bug 1635689 - Part 1: Stop using 'get' method on IPDL unions in gfxVars.h, r=jrmuizel
This code is the only caller of this generated method.

Differential Revision: https://phabricator.services.mozilla.com/D75348
2020-05-15 00:12:58 +00:00
Andrew Osmond 0973fc9056 Bug 1638469 - Disable WebRender on Windows 7/8 without DWM composition enabled. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D75646
2020-05-16 14:05:35 +00:00
Andrew Osmond bc973c5022 Bug 1638413 - Allow WebRender compositor to be used without DirectComposition on non-Windows. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D75638
2020-05-18 17:46:05 +00:00
sotaro 8cdc3c8f18 Bug 1638742 - Remove unnecessary mFeatureWrPartial->UserEnable(Enabled) call r=nical
Since Bug 1625474 fix, it is not necessary anymore.

Differential Revision: https://phabricator.services.mozilla.com/D75738
2020-05-18 08:25:00 +00:00