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

330 Коммитов

Автор SHA1 Сообщение Дата
Andrew Osmond e69fa7da55 Bug 1818047 - Add prefs to control WebRender scissored cache clears. r=gfx-reviewers,jrmuizel
This patch adds two new prefs, gfx.webrender.scissored-cache-clears
.enabled and .force-enabled to control its status beyond the blocklist.
The former is true by default and allows one to turn the feature off by
flipping it to false. The latter allows one to force the feature on even
if the blocklist disables it. It also adds the status to the decision
log in about:support.

Differential Revision: https://phabricator.services.mozilla.com/D170507
2023-02-21 20:50:58 +00:00
sotaro 959d11a58a Bug 1817712 - Disable Feature::WEBRENDER_DCOMP_PRESENT when GPU process is disabled r=gfx-reviewers,nical
DirectComposition Device is not created when GPU process does not exist.

Differential Revision: https://phabricator.services.mozilla.com/D170315
2023-02-21 00:05:20 +00:00
Ray Kraesig fdc007af70 Bug 1816001 - allow users to disable mitigation for bug 1638709 r=gfx-reviewers,bradwerth,ahale
Bug 1638709 describes artifacts when the webrender compositor is enabled
on certain Windows systems with NVIDIA cards and mixed monitor refresh
rates. As of bug 1704954, we currently disable DirectComposition on such
systems in Beta and Release as a mitigation.

Unfortunately, on a significant (albeit not yet fully characterized)
fraction of Windows 11 machines, the fallback compositor also has
issues, resulting in bug 1763981 (clipping of web content on first
entering fullscreen). Users experiencing this latter issue have hitherto
_not_ reported the former when testing on Nightly, suggesting that the
mitigation may be getting applied overbroadly.

Add a pref to allow disabling the mitigation in question, so that users
experiencing bug 1763981, but who are not subject to 1638709, have a
less intrusive workaround than remembering to hit F11 twice every time
they start Firefox.

Differential Revision: https://phabricator.services.mozilla.com/D169389
2023-02-11 00:31:49 +00:00
Cristian Tuns 8335f7645c Backed out changeset fe2339f60bf1 (bug 1816001) for causing build bustages on gfxConfigManager.cpp CLOSED TREE 2023-02-09 17:48:08 -05:00
Ray Kraesig 8d967b07d5 Bug 1816001 - allow users to disable mitigation for bug 1638709 r=gfx-reviewers,bradwerth
Bug 1638709 describes artifacts when the webrender compositor is enabled
on certain Windows systems with NVIDIA cards and mixed monitor refresh
rates. As of bug 1704954, we currently disable DirectComposition on such
systems in Beta and Release as a mitigation.

Unfortunately, on a significant (albeit not yet fully characterized)
fraction of Windows 11 machines, the fallback compositor also has
issues, resulting in bug 1763981 (clipping of web content on first
entering fullscreen). Users experiencing this latter issue have hitherto
_not_ reported the former when testing on Nightly, suggesting that the
mitigation may be getting applied overbroadly.

Add a pref to allow disabling the mitigation in question, so that users
experiencing bug 1763981, but who are not subject to 1638709, have a
less intrusive workaround than remembering to hit F11 twice every time
they start Firefox.

Differential Revision: https://phabricator.services.mozilla.com/D169389
2023-02-09 22:32:06 +00:00
sotaro d55f5ec846 Bug 1810097 - Support AHardwareBuffer of out-of-process WebGL on Android r=lsalzman,gfx-reviewers
Modify AHardwareBuffer implementation as to support gl::SharedSurface of out-of-process WebGL. And remove unused AHardwareBuffer implementation.

By limiting AHardwareBuffer only in GPU process, AHardwareBuffer implementation becomes simpler. We do not need to handle cross process AHardwareBuffer delivery and cross process android Fence delivery.

Differential Revision: https://phabricator.services.mozilla.com/D167911
2023-01-27 21:35:26 +00:00
sotaro 145bd39747 Bug 1753373 - Upload software decoded video to NV12 for video overlay on Windows r=alwu,gfx-reviewers,bradwerth
RGB video overlay usage improves downscaled videos rendering quality. And it reduces GPU usage.

Differential Revision: https://phabricator.services.mozilla.com/D156393
2022-12-20 08:29:47 +00:00
Lee Salzman e599e9d352 Bug 1806058 - Add blocklist for Accelerated Canvas2D. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D164881
2022-12-16 20:15:49 +00:00
sotaro 02d18ed8c1 Bug 1776885 - Add capability of async remote texture on WebGL if CanvasRenderThread is used r=gfx-reviewers,lsalzman
The remote texture is processed asynchronously, but the WebGL rendering results are rendered synchronously with WebRender transaction by WebRender.

Async remote texture support is enabled only when CanvasRenderThread is used. This is to simplify implementation.

In async mode, remote texture of current RemoteTextureId might not be created yet when WebRenderImageHost::UseRemoteTexture() is called. In this case, RemoteTextureHostWrapper uses its own external image ID, otherwise the RemoteTextureHostWrapper uses compatible old remote texture for creating wr display list. RenderTextureHostWrapper calls RemoteTextureMap::GetExternalImageIdOfRemoteTextureSync() before is ussage. The GetExternalImageIdOfRemoteTextureSync() synchronously waits until remote texture becomes ready. The wait works since WebGL IPC handling is always done in CanvasRenderThread in async mode.

PWebGLChild::SendGetFrontBuffer() triggers sync IPC. It is called to ensure the compatible remote texture in RemoteTextureMap during RemoteTextureMap::GetRemoteTextureForDisplayList() call.

Differential Revision: https://phabricator.services.mozilla.com/D162971
2022-12-07 02:24:57 +00:00
Stanca Serban d0ad6a0b22 Backed out changeset d78a41db7a82 (bug 1776885) for causing reftests failures in ReleaseCompositableRef. CLOSED TREE 2022-12-06 17:34:12 +02:00
sotaro e23cea6ac1 Bug 1776885 - Add capability of async remote texture on WebGL if CanvasRenderThread is used r=gfx-reviewers,lsalzman
The remote texture is processed asynchronously, but the WebGL rendering results are rendered synchronously with WebRender transaction by WebRender.

Async remote texture support is enabled only when CanvasRenderThread is used. This is to simplify implementation.

In async mode, remote texture of current RemoteTextureId might not be created yet when WebRenderImageHost::UseRemoteTexture() is called. In this case, RemoteTextureHostWrapper uses its own external image ID, otherwise the RemoteTextureHostWrapper uses compatible old remote texture for creating wr display list. RenderTextureHostWrapper calls RemoteTextureMap::GetExternalImageIdOfRemoteTextureSync() before is ussage. The GetExternalImageIdOfRemoteTextureSync() synchronously waits until remote texture becomes ready. The wait works since WebGL IPC handling is always done in CanvasRenderThread in async mode.

PWebGLChild::SendGetFrontBuffer() triggers sync IPC. It is called to ensure the compatible remote texture in RemoteTextureMap during RemoteTextureMap::GetRemoteTextureForDisplayList() call.

Differential Revision: https://phabricator.services.mozilla.com/D162971
2022-12-06 13:56:19 +00:00
sotaro 6a1331f13a Bug 1803732 - Expose if canvas renderer thread is enabled in about:support r=gfx-reviewers,bradwerth
It would be helpful to have information on whether the canvas renderer thread is enabled in the about:support.

Differential Revision: https://phabricator.services.mozilla.com/D163677
2022-12-02 22:50:00 +00:00
Andrew Osmond d664f47e78 Bug 1801780 - Include more information about blocklist in about:support. r=jrmuizel
We used to provide links to the bug numbers but this was broken
somewhere along the way. Now it is provided the failure IDs from which
it can attempt to extract a bug number, as well as always display any
failure ID and message whenever possible.

Differential Revision: https://phabricator.services.mozilla.com/D162734
2022-11-22 16:00:15 +00:00
Andrew Osmond 9d245b8325 Bug 1794722 - Part 2. Remove all uses of gfxVars::UseWebRender(). r=jrmuizel,media-playback-reviewers,alwu
This is always true.

Differential Revision: https://phabricator.services.mozilla.com/D160121
2022-10-28 12:36:06 +00:00
Andrew Osmond 53608b802f Bug 1794722 - Part 1. Remove WebRender from the GfxInfo allowlist. r=jrmuizel
WebRender is a mature feature. We should start blocking it on known bad
devices over allowlisting known good devices. This may enable WebRender
in a few more obscure places than we shipped before.

Differential Revision: https://phabricator.services.mozilla.com/D160120
2022-10-28 12:36:05 +00:00
Cristian Tuns 1303ee58d8 Backed out 3 changesets (bug 1794722) for causing multiple failures on RemoteProcessMonitor CLOSED TREE
Backed out changeset 0217af5b1aa6 (bug 1794722)
Backed out changeset d7805be9dfb3 (bug 1794722)
Backed out changeset 0093f071f1a5 (bug 1794722)
2022-10-27 20:52:36 -04:00
Andrew Osmond 93abf26cbc Bug 1794722 - Part 2. Remove all uses of gfxVars::UseWebRender(). r=jrmuizel,media-playback-reviewers,alwu
This is always true.

Differential Revision: https://phabricator.services.mozilla.com/D160121
2022-10-28 00:08:03 +00:00
Andrew Osmond b01099b79d Bug 1794722 - Part 1. Remove WebRender from the GfxInfo allowlist. r=jrmuizel
WebRender is a mature feature. We should start blocking it on known bad
devices over allowlisting known good devices. This may enable WebRender
in a few more obscure places than we shipped before.

Differential Revision: https://phabricator.services.mozilla.com/D160120
2022-10-28 00:08:03 +00:00
Andrew Osmond 5a36e3dd85 Bug 1785366 - Blocklist backdrop filter on some Ivy/Sandybridge Intel Windows drivers. r=jrmuizel,emilio
Backdrop filter crashes newer Intel drivers on Windows. This patch adds
support to the blocklist infrastructure for backdrop filter, and hooks
this up with the CSS property table.

Differential Revision: https://phabricator.services.mozilla.com/D154950
2022-08-18 12:29:20 +00:00
Marian-Vasile Laza d774d6ecb3 Backed out changeset 49c7536f01db (bug 1785366) for causing xpcshell failures on test_css-properties-db.js. CLOSED TREE 2022-08-18 07:41:44 +03:00
Andrew Osmond 96648c7055 Bug 1785366 - Blocklist backdrop filter on some Ivy/Sandybridge Intel Windows drivers. r=jrmuizel,emilio
Backdrop filter crashes newer Intel drivers on Windows. This patch adds
support to the blocklist infrastructure for backdrop filter, and hooks
this up with the CSS property table.

Differential Revision: https://phabricator.services.mozilla.com/D154950
2022-08-18 03:21:27 +00:00
Andrew Osmond 5b2fd01232 Bug 1783309 - Convert OffscreenCanvas domain allowlist pref to DataMutexString. r=gfx-reviewers,lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D153831
2022-08-16 01:00:23 +00:00
az 805f4822ab Bug 1766308 - Add gfxVars::CodecSupportInfo to store user-readable codec support string r=media-playback-reviewers,alwu
Differential Revision: https://phabricator.services.mozilla.com/D147386
2022-07-22 23:08:08 +00:00
Cristian Tuns 296431b106 Backed out 8 changesets (bug 1754239, bug 1766307, bug 1766308, bug 1766310) for causing build bustages on Logging.h CLOSED TREE
Backed out changeset 50918938a839 (bug 1766307)
Backed out changeset 19800bb8974e (bug 1766307)
Backed out changeset 40ec82794497 (bug 1766310)
Backed out changeset 4f860e20098c (bug 1754239)
Backed out changeset f54eac410bfd (bug 1754239)
Backed out changeset c8cc5e0c89dd (bug 1766307)
Backed out changeset d7aab4098f12 (bug 1766308)
Backed out changeset a7ffa6f44fe8 (bug 1766307)
2022-07-19 21:20:07 -04:00
az 86d8351f49 Bug 1766308 - Add gfxVars::CodecSupportInfo to store user-readable codec support string r=media-playback-reviewers,alwu
Differential Revision: https://phabricator.services.mozilla.com/D147386
2022-07-19 23:27:39 +00:00
Norisz Fay 82c8f892b0 Backed out 8 changesets (bug 1754239, bug 1766308, bug 1766307, bug 1766310) for causing build bustages on UtilityAudioDecoderParent.cpp CLOSED TREE
Backed out changeset e383703e28cf (bug 1766307)
Backed out changeset 5fb04c68ae7a (bug 1766307)
Backed out changeset ee76505a46ff (bug 1766310)
Backed out changeset d76eae67ae79 (bug 1754239)
Backed out changeset fed974dcf641 (bug 1754239)
Backed out changeset 67c5fbd546a1 (bug 1766307)
Backed out changeset da49735366d2 (bug 1766308)
Backed out changeset 81ccd31d0f07 (bug 1766307)
2022-07-14 04:03:19 +03:00
az 4e1baacec1 Bug 1766308 - Add gfxVars::CodecSupportInfo to store user-readable codec support string r=media-playback-reviewers,alwu
Differential Revision: https://phabricator.services.mozilla.com/D147386
2022-07-14 00:32:37 +00:00
sotaro b9e60f30de Bug 1778431 - Allocate canvas render thread for out-of-process WebGL r=gfx-reviewers,aosmond
If dedicated thread for out-of-process WebGL exists, compositor thread tasks are not delayed by WebGL tasks.

And Bug 1712486 requests that WebGL run on non-compositor thread.

Differential Revision: https://phabricator.services.mozilla.com/D151210
2022-07-08 04:02:41 +00:00
stransky bea11a62d5 Bug 1773282 [Linux] Remove nsIGfxInfo::FEATURE_VAAPI and use nsIGfxInfo::FEATURE_HARDWARE_VIDEO_DECODING r=alwu
nsIGfxInfo::FEATURE_HARDWARE_VIDEO_DECODING is used on all platforms so let's use it on Linux too and don't add new feature for Linux only.

Differential Revision: https://phabricator.services.mozilla.com/D149765
2022-06-29 12:09:02 +00:00
sotaro b15ea105d5 Bug 1776800 - Let zero copy hardware decoded video to release on intel GPU on Windows r=jrmuizel,gfx-reviewers
Reuse decoder device also to release on intel GPU on Windows, since it is also necessary for zero copy hardware decoded video.
Reuse decoder device handling is also updated as aligned to FEATURE_HW_DECODED_VIDEO_ZERO_COPY.

Differential Revision: https://phabricator.services.mozilla.com/D150448
2022-06-28 21:54:36 +00:00
Bogdan Szekely 399c93b211 Backed out 4 changesets (bug 1773282) for causing xpcshell failures on test_gfxBlacklist_Version.js CLOSED TREE
Backed out changeset c9134683c1db (bug 1773282)
Backed out changeset a2d33cd0de61 (bug 1773282)
Backed out changeset 3024ad3df3db (bug 1773282)
Backed out changeset a1a1a1c7d622 (bug 1773282)
2022-06-28 16:06:39 +03:00
stransky a961fafee3 Bug 1773282 [Linux] Remove nsIGfxInfo::FEATURE_VAAPI and use nsIGfxInfo::FEATURE_HARDWARE_VIDEO_DECODING r=alwu
nsIGfxInfo::FEATURE_HARDWARE_VIDEO_DECODING is used on all platforms so let's use it on Linux too and don't add new feature for Linux only.

Differential Revision: https://phabricator.services.mozilla.com/D149765
2022-06-28 12:10:37 +00:00
Martin Stransky 3a7a803654 Bug 1774271 [Linux] Use DMABUF_SURFACE_EXPORT feature to control dmabuf surface export from EGLImage and disable that on Mesa/Intel and Mesa/AMD r=jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D149984
2022-06-27 05:54:52 +00:00
Iulian Moraru de1c46fa2a Backed out 4 changesets (bug 1773282) for causing bp-hybrid bustages on FFmpegLibWrapper. CLOSED TREE
Backed out changeset 0ec631549071 (bug 1773282)
Backed out changeset c370d6fa2f1f (bug 1773282)
Backed out changeset a69d65742893 (bug 1773282)
Backed out changeset 6c9325e96448 (bug 1773282)
2022-06-25 12:07:40 +03:00
stransky 20d789184c Bug 1773282 [Linux] Remove nsIGfxInfo::FEATURE_VAAPI and use nsIGfxInfo::FEATURE_HARDWARE_VIDEO_DECODING r=alwu
nsIGfxInfo::FEATURE_HARDWARE_VIDEO_DECODING is used on all platforms so let's use it on Linux too and don't add new feature for Linux only.

Differential Revision: https://phabricator.services.mozilla.com/D149765
2022-06-25 05:24:47 +00:00
stransky 1cdfeeec54 Bug 1774075 [Linux] Don't use EGL_MESA_image_dma_buf_export on mesa/radeonsi driver r=jgilbert
Don't use EGL_MESA_image_dma_buf_export on Mesa/radeonsi driver due to multi-thread crash there (https://gitlab.freedesktop.org/mesa/mesa/-/issues/6666)

Differential Revision: https://phabricator.services.mozilla.com/D149238
2022-06-20 10:14:41 +00:00
sotaro 62aba43325 Bug 1770950 - Rename HW_DECODED_VIDEO_NO_COPY to HW_DECODED_VIDEO_ZERO_COPY r=gfx-reviewers,lsalzman
Another decoded video no copies were renamed to decoded video zero copies by  Bug 1766282.

Differential Revision: https://phabricator.services.mozilla.com/D147188
2022-05-25 00:14:06 +00:00
sotaro 4f8549101c Bug 1766282 - Do not use SharedHandle of ID3D11Texture2D of hardware decoded video during no video copy r=jgilbert,jrmuizel,gfx-reviewers
With CI's NVIDIA GPU, SharedHandle of ID3D11Texture2D of hardware decoded video during no video copy caused rendering problem. When SharedHandle is not used, the rendering problem did not happen. But when video is rendered to WebGL texture, SharedHandle need to be used.
In this case, D3D11TextureIMFSampleImage copies original ID3D11Texture2D to a new ID3D11Texture2D and use a shared handled of the copied texture. And no video copy of future video frames are disabled.

NoCopyNV12Texture is renamed to ZeroCopyNV12Texture to clarify its meaning.

Differential Revision: https://phabricator.services.mozilla.com/D144598
2022-05-20 04:37:53 +00:00
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