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

292 Коммитов

Автор SHA1 Сообщение Дата
sotaro ea0f948ec8 Bug 1763053 - Disable avoid copying hardware decoded video on Win < 10 r=gfx-reviewers,jrmuizel
Chromium blocks "no video copy" on Win < 8.1. For now, it seems better to disable "no video copy" on Win < 10.

Differential Revision: https://phabricator.services.mozilla.com/D142915
2022-04-05 14:26:42 +00:00
Andrew Osmond 3df496f168 Bug 1760887 - Expose FEATURE_VP8_HW_DECODE and FEATURE_VP9_HW_DECODE to the downloadable blocklist. r=gfx-reviewers,jnicol,media-playback-reviewers,alwu
This patch also exposes it as a gfxVar for cross process/thread-safe access.

Differential Revision: https://phabricator.services.mozilla.com/D141803
2022-03-23 19:28:57 +00:00
Andrew Osmond 78afd0ab38 Bug 1760663 - Add blocklist support for WebGPU. r=gfx-reviewers,nical
This patch just adds the plumbing to allow for baked in blocklist rules
or the downloadable blocklist to prevent certain configurations from
getting WebGPU. It does not add any rules.

It also changes us from allowing WebGPU only in nightly, including
tests, to not release and not beta. This allows try to run the WebGPU
tests as expected, since even try builds forked from mozilla-central are
not considered nightly builds by CI (or so it seems).

Differential Revision: https://phabricator.services.mozilla.com/D141682
2022-03-22 15:22:39 +00:00
sotaro c7c684492c Bug 1758865 - Add Feature::VIDEO_OVERLAY r=gfx-reviewers,lsalzman
With Feature::VIDEO_OVERLAY, we could know if video overlay is enabled from about:support.

Differential Revision: https://phabricator.services.mozilla.com/D140706
2022-03-10 23:58:18 +00:00
stransky f677662932 Bug 1751987 [Linux] Add VA-API feature r=aosmond
Differential Revision: https://phabricator.services.mozilla.com/D139301
2022-02-23 11:47:07 +00:00
Andrew Osmond 6939c74a85 Bug 1749323 - Allow controlling access to OffscreenCanvas via a domain allowlist pref. r=gfx-reviewers,webidl,lsalzman,smaug
This patch adds several new prefs to control what happens with
OffscreenCanvas. gfx.offscreencanvas.enabled works as it did before.

- gfx.offscreencanvas.domain-enabled: Enables OffscreenCanvas for
domains on the allowlist.

- gfx.offscreencanvas.domain-allowlist: Comma separated allowlist
which controls which domains can access the OffscreenCanvas constructor
and HTMLCanvasElement.transferControlToOffscreen.

- dom.workers.requestAnimation: Controls whether or not
request/cancelAnimationFrame are accessible from dedicated workers.
Ideally this would have used the same decision process as
OffscreenCanvas but there were unrelated build/runtime issues around
using a Func directive with DedicatedWorkerGlobalScope.

Differential Revision: https://phabricator.services.mozilla.com/D135928
2022-01-24 16:12:02 +00:00
Andrew Osmond 62fe89a23e Bug 1751252 - Block partial present on Linux NVIDIA and ship X11 EGL with NVIDIA to release. r=rmader,jrmuizel,jnicol
Differential Revision: https://phabricator.services.mozilla.com/D136518
2022-01-21 16:24:06 +00:00
Andrew Osmond 925d668db0 Bug 1739996 - Select compositor or renderer thread for WebGL OOP depending on threadsafe GL status. r=jgilbert
If GL is threadsafe, we can run on the compositor thread. This appears
to have performance benefits, possibly because the renderer thread is
too busy. If GL is not threadsafe, we must run the WebGL OOP instances
on the renderer thread.

At the time of writing, only the nouveau drivers on Linux are considered
to be not threadsafe, so most users will see WebGL running on the
compositor thread. This patch also adds prefers to override the
blocklist to either assume GL is threadsafe
(webgl.threadsafe-gl.force-enabled) and not threadsafe
(webgl.threadsafe-gl.force-disabled).

Differential Revision: https://phabricator.services.mozilla.com/D130634
2021-11-09 17:33:46 +00:00
Nicolas Silva 51efadfa3e Bug 1737648 - Don't batch uploads for items larger than a certain size. r=gfx-reviewers,bradwerth
The default size on most platforms is 256*256 which corresponds to the default blob tile size. I didn't check on android so I set it to 512*512 above which we never batch the upload so that the behavior is unchanged, but I suspect that a smaller threshold like 256*256 would also work better there.

On Windows with heavy blob image workloads, not batching gives a 20%-30% improvement to the time spent in update_texture_cache.

Differential Revision: https://phabricator.services.mozilla.com/D129516
2021-11-03 16:42:42 +00:00
Nicolas Silva 962e3b930f Bug 1723134 - Make SwapInterval configurable via prefs for EGL and GLX. r=gfx-reviewers,jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D128476
2021-10-19 15:04:08 +00:00
Marian-Vasile Laza 35bb26d03e Backed out changeset af60c05d5dae (bug 1723134) for causing buid bustages on RenderCompositorEGL.cpp. 2021-10-19 13:52:26 +03:00
Timothy Nikkel 35a0a509c6 Bug 1734571. Remove old unused layers tiling left over code bits. r=gfx-reviewers,aosmond
Differential Revision: https://phabricator.services.mozilla.com/D127787
2021-10-19 10:12:25 +00:00
Nicolas Silva d3c8057ea3 Bug 1723134 - Make SwapInterval configurable via prefs for EGL and GLX. r=gfx-reviewers,jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D128476
2021-10-19 09:22:01 +00:00
sotaro d0f572a6ea Bug 1734505 - Add Feature::WINDOW_OCCLUSION r=gfx-reviewers,nical
With Feature::WINDOW_OCCLUSION, about:support could show if window occlusion is enabled. And Feature::WINDOW_OCCLUSION could be used to override windows occlusion setting. It could be used for Bug 1733955.

Differential Revision: https://phabricator.services.mozilla.com/D127752
2021-10-08 13:11:52 +00:00
Nicolas Silva 0752cfb5cb Bug 1731610 - Add new prefs in WebRender with less boilerplate. r=gfx-reviewers,jrmuizel
Right now adding a dynamic pref for webrender involves plumbing in gfxPlatform, gfxVars, CompositBridgeParent, WebRenderBridgeParent, WebRenderAPI, the bindings, and then messaging the pref change to the right thread in WebRender.

That's quite a bit time consuming for something we tend to do for multiple things.

We already have a pretty good system for boolean debug prefs where the pref only needs to be listed in gfxPlatform and in the DebugPref enum of webrender_api/lib.rs, which has led us to use it for non-debug purposes.

This patch adds a system similar to the DebugFlags with values passed in a bitfield to be able to use gfxVars. In WebRender the parameters are key-value pairs which flow through the pipeline so that any component can react to them. A followup will add integer parameters.

The patch also moves a few prefs to this system and adds a pref to use PBO uploads.

Differential Revision: https://phabricator.services.mozilla.com/D126100
2021-09-23 15:17:46 +00:00
Nicolas Silva 0afcd4879b Bug 1729441 - Add a pref to set the blob tile size. r=gfx-reviewers,bradwerth
The prefs name is gfx.webrender.blob-tile-size and can be changed at runtime.

It changes the behavior of a wrench reftest that was ensuring that we don't crash with unreasonable tile sizes. The new behavior (sanitizing the tile size) means we can render the image while we would previously skip it.

Differential Revision: https://phabricator.services.mozilla.com/D124789
2021-09-08 12:41:51 +00:00
Andrew Osmond aa22206ca2 Bug 1727603 - Remove gfxVars::UseOMTP. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D123676
2021-08-25 19:56:01 +00:00
Andrew Osmond 50d789dd6a Bug 1724936 - Remove XRender support. r=jrmuizel
This has been deprecated for a long time, and it doesn't work in
conjuction with WebRender.

Differential Revision: https://phabricator.services.mozilla.com/D122368
2021-08-25 19:35:23 +00:00
Butkovits Atila 073981c0e2 Backed out changeset f767bc7e5cd8 (bug 1724936) for causing build bustages on nsLookAndFeel.cpp. CLOSED TREE 2021-08-25 21:21:59 +03:00
Andrew Osmond ec43a845c8 Bug 1724936 - Remove XRender support. r=jrmuizel
This has been deprecated for a long time, and it doesn't work in
conjuction with WebRender.

Differential Revision: https://phabricator.services.mozilla.com/D122368
2021-08-25 17:45:04 +00:00
Andrew Osmond ddabc1b810 Bug 1725388 - Remove pref/envvars that can disable WebRender. r=jrmuizel
MOZ_WEBRENDER=0 now does nothing -- you will either get HW-WR or SW-WR
depending on the platform configuration. The pref
gfx.webrender.force-legacy-layers is removed. This leaves no
configuration option to disable WebRender.

MOZ_WEBRENDER=1 will continue to force WR on, which will ensure in CI we
get HW-WR unless gfx.webrender.software is true.

Differential Revision: https://phabricator.services.mozilla.com/D122474
2021-08-12 20:28:53 +00:00
Iulian Moraru 68dacf122d Backed out 2 changesets (bug 1725388) for causing multiple failures. CLOSED TREE
Backed out changeset cb961c255c8c (bug 1725388)
Backed out changeset 4ee9abeebd43 (bug 1725388)
2021-08-12 19:21:05 +03:00
Andrew Osmond 43a2a6d05e Bug 1725388 - Remove pref/envvars that can disable WebRender. r=jrmuizel
MOZ_WEBRENDER=0 now does nothing -- you will either get HW-WR or SW-WR
depending on the platform configuration. The pref
gfx.webrender.force-legacy-layers is removed. This leaves no
configuration option to disable WebRender.

MOZ_WEBRENDER=1 will continue to force WR on, which will ensure in CI we
get HW-WR unless gfx.webrender.software is true.

Differential Revision: https://phabricator.services.mozilla.com/D122474
2021-08-12 13:54:25 +00:00
Andrew Osmond 4a288852e3 Bug 1724794 - Remove Software WebRender allow/blocklist plumbing. r=gfx-reviewers,jrmuizel
We don't use this anymore for anything.

Differential Revision: https://phabricator.services.mozilla.com/D122254
2021-08-11 14:07:02 +00:00
Bob Owen b81850a8d7 Bug 1698946 p1: Add and maintain ClearType parameters gfxVars. r=jfkthame
Differential Revision: https://phabricator.services.mozilla.com/D120596
2021-08-05 09:13:09 +00:00
Jeff Muizelaar 1194fe927f Bug 1722055 - Rename gfx.webrender.force-disabled. r=aosmond
Change the pref name in anticipation of removing it completely
to see what the fallout will be.

Differential Revision: https://phabricator.services.mozilla.com/D120735
2021-07-23 17:00:29 +00:00
Andrew Osmond e54096406f Bug 1715269 - Prefer WebRender over XRender, unless WebRender is force disabled. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D120488
2021-07-21 16:50:46 +00:00
Andrew Osmond adb22f5066 Bug 1721626 - Allow Software WebRender in safe mode. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D120475
2021-07-21 16:50:46 +00:00
Andrew Osmond 62ca4d996b Bug 1717862 - Ship Software WebRender and WebRender to remaining Android devices. r=jnicol
Differential Revision: https://phabricator.services.mozilla.com/D118605
2021-06-23 16:55:18 +00:00
Andrew Osmond 805d9ce3e3 Bug 1715902 - Refuse WebRender on Linux if backed by software driver. r=jrmuizel
Reject software rasterizers on Linux (except Software WebRender) when
trying to create full WebRender, unless WebRender was force enabled.

Differential Revision: https://phabricator.services.mozilla.com/D117534
2021-06-11 13:15:17 +00:00
Dorel Luca 2190a59721 Backed out changeset c30c8b8dc0b5 (bug 1715902) on Dev's request. CLOSED TREE 2021-06-11 15:48:11 +03:00
Andrew Osmond 330727f6e8 Bug 1715902 - Refuse WebRender on Linux if backed by software driver. r=jrmuizel
When trying to create a GLContextEGL or GLContextGLX, we should check to
see what our display is backed by. If using a software driver, we should
fail to create the context for WebRender, so that it can fallback to
Software WebRender.

Differential Revision: https://phabricator.services.mozilla.com/D117473
2021-06-11 12:16:36 +00:00
Andrew Osmond a58e7ef933 Bug 1715132 - Ignore the blocklist for Software WebRender on desktop. r=jrmuizel
We still need the blocklist to control rollout on Android, but on
desktop, we should be shipping Software WebRender to all users, except
those in safe mode or whom have explicitly disabled WebRender.

Differential Revision: https://phabricator.services.mozilla.com/D117088
2021-06-08 16:07:57 +00:00
Alexandru Michis aaaa86cfb3 Backed out changeset f070ec38d011 (bug 1715132) for causing valgrind bustages in webrender::renderer::upload::upload_to_texture_cache
CLOSED TREE
2021-06-08 03:29:59 +03:00
Andrew Osmond a0205e33dc Bug 1715132 - Ignore the blocklist for Software WebRender on desktop. r=jrmuizel
We still need the blocklist to control rollout on Android, but on
desktop, we should be shipping Software WebRender to all users, except
those in safe mode or whom have explicitly disabled WebRender.

Differential Revision: https://phabricator.services.mozilla.com/D117088
2021-06-07 21:30:15 +00:00
sotaro f8c8266fc1 Bug 1713734 - Make force-disable override gfx.webrender.all r=jrmuizel,aosmond,gfx-reviewers
force-disable was originally override other enabling prefs (gfx.webrender.enabled, gfx.webrender.all, and gfx.webrender.all.qualified). But it does not override gfx.webrender.software, since gfx.webrender.software is used for testing in CI.

Differential Revision: https://phabricator.services.mozilla.com/D116439
2021-06-01 22:03:10 +00:00
Andrew Osmond 8f5da297a9 Bug 1711118 - Part 2. Allow Software WebRender without the GPU process in release. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D115079
2021-05-14 13:01:21 +00:00
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