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

255 Коммитов

Автор SHA1 Сообщение Дата
Andrew Osmond c46e4b35ef Bug 1709476 - Allow falling back to Software WebRender from D3D11/WebRender in release. r=jrmuizel
If a user is able to get D3D11, and Software WebRender hasn't been
forced on (either by the Fission experiment or our pref), then we prefer
D3D11 in late beta and release. This will allow users who start with
D3D11 in the GPU process, to fallback to Software WebRender in the GPU
process.

Differential Revision: https://phabricator.services.mozilla.com/D114286
2021-05-05 14:31:46 +00:00
Jamie Nicol 12c6f3d56a Bug 1707815 - Block partial present on all Mali-Txxx devices. r=nical
In bug 1680087 we disabled webrender's partial present feature on
Mali-T6xx and T7xx devices due to rendering issues caused by a buggy
implementation in the driver. We have now seen reports of the same
issue on a Mali-T8xx device.

This patch expands the block to include all Mali-Txxx devices. As a
follow up we should make this dependent on the driver version, so
that users with working drivers can take advantage of the feature.

Differential Revision: https://phabricator.services.mozilla.com/D113477
2021-04-27 07:36:57 +00:00
Andrew Osmond 2bfdd5faff Bug 1704954 - Ship WebRender without DirectComposition to NVIDIA high/mixed refresh rate monitor users. r=gfx-reviewers,jrmuizel
This patch leaves DirectComposition turned on by default on nightly but
disables DirectComposition on beta/release due to known rendering
artifact issues.

Differential Revision: https://phabricator.services.mozilla.com/D111965
2021-04-14 00:00:15 +00:00
Jamie Nicol 7abb7ce304 Bug 1615574 - Disable webrender shader cache on Adreno 3xx. r=aosmond
Loading cached shaders with glProgramBinary fails consistently for all
but the most trivial of our shaders on Adreno 3xx, so caching and
attempting to load them is a waste of time. Chromium and other
projects also appear to have disabled their shader caches on Adreno
3xx due to bugs.

This patch moves the gfx.webrender.program-binary-disk pref
declaration from all.js to StaticPrefList.yaml. Rather than directly
using the value of the pref to decide whether to create the shader
cache, we now initialize a Feature in gfxConfigManager with a default
value from the pref and then configure it from the blocklist. On
Android we block the feature on Adreno 3xx devices. The pref remains
true by default on Android and Windows, and false by default on Linux
and Macos.

Differential Revision: https://phabricator.services.mozilla.com/D111427
2021-04-12 15:14:12 +00:00
Andrew Osmond 46f59ff0b0 Bug 1698953 - Allow gfx.webrender.force-disable to override Fission requiring WebRender. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D108691
2021-03-16 20:58:35 +00:00
Andrew Osmond 86da16f9a5 Bug 1696071 - Add support for DMABuf to the blocklist. r=rmader
Differential Revision: https://phabricator.services.mozilla.com/D107019
2021-03-16 20:14:51 +00:00
Andrew Osmond 1c682d57a9 Bug 1697195 - Force enable Software WebRender if Fission and experiment are enabled. r=jrmuizel
Fission without WebRender is an unsupported configuration and enrolls
users based on their compositor. However because of our own rollout of
WebRender, a user might start in early beta with WebRender and lose it
in late beta, while they remain enrolled in the Fission experiment.
Also, a user could lose WebRender because of crashes or device reset,
and we may fall back to Basic.

This patch forces Software WebRender as available (but does not override
Hardware WebRender) if Fission is enabled for users enrolled in the
Fission experiment. It also prevents fallback to Basic layers when
disabling acceleration due to crashes and runtime errors, so the user
will be stuck with Software WebRender at a minimum. It also enables
Software WebRender for Windows popups with transparency.

Differential Revision: https://phabricator.services.mozilla.com/D107661
2021-03-12 15:52:40 +00:00
Andrew Osmond 48b3a42c46 Bug 1697582 - Ship Software WebRender to Windows release subset. r=jrmuizel
Windows users on Basic / without D3D11 compositing, with the GPU
process, and with small screens may get Software WebRender on the
late beta and release channel.

Differential Revision: https://phabricator.services.mozilla.com/D107920
2021-03-11 20:09:21 +00:00
sotaro fd5cd0584c Bug 1697335 - Fallback from WebRender (Software D3D11) to WebRender (Software) when ID3D11Texture2D allocation of tile fails r=aosmond
Differential Revision: https://phabricator.services.mozilla.com/D107766
2021-03-10 05:22:45 +00:00
Narcis Beleuzu aaad782884 Backed out 1 changesets (bug 1697195) for dt failures on nsDisplayList.cpp. CLOSED TREE
Backed out changeset d5ebf7eedb59 (bug 1697195)
2021-03-09 21:59:57 +02:00
Andrew Osmond 6fc115d39f Bug 1697195 - Force enable Software WebRender if Fission is enabled. r=jrmuizel
Fission without WebRender is an unsupported configuration and enrolls
users based on their compositor. However because of our own rollout of
WebRender, a user might start in early beta with WebRender and lose it
in late beta, while they remain enrolled in the Fission experiment.
Also, a user could lose WebRender because of crashes or device reset,
and we may fall back to Basic.

This patch forces Software WebRender as available (but does not override
Hardware WebRender) if Fission is enabled. It also prevents fallback to
Basic layers when disabling acceleration due to crashes and runtime
errors, so the user will be stuck with Software WebRender at a minimum.
It also enables Software WebRender for Windows popups with transparency.

Differential Revision: https://phabricator.services.mozilla.com/D107661
2021-03-09 16:53:01 +00:00
Jamie Nicol 3b58ed7898 Bug 1695771 - Disable partial present on Adreno 3xx GPUs. r=aosmond
It is buggy and causes rendering issues.

Differential Revision: https://phabricator.services.mozilla.com/D107041
2021-03-03 13:16:40 +00:00
Andrew Osmond 46ef42b1f0 Bug 1689464 - Add support for X11 EGL to the blocklist. r=rmader
Differential Revision: https://phabricator.services.mozilla.com/D106927
2021-03-02 15:49:06 +00:00
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