Commit Graph

339 Commits

Author SHA1 Message Date
Ashley Hale
aae82b51e3 Bug 1843782 - WebGL software rendering when mesa/vmwgfx driver detected r=jgilbert a=RyanVM
Original Revision: https://phabricator.services.mozilla.com/D192039

Differential Revision: https://phabricator.services.mozilla.com/D195330
2023-12-06 01:57:31 +00:00
Jonathan Kew
e7087f3a69 Bug 1856637 - Ignore gfxDWriteFont::UpdateSystemTextVars() call if the gfxVars are not yet initialized. r=gfx-reviewers,lsalzman, a=dmeehan
Differential Revision: https://phabricator.services.mozilla.com/D190151
2023-10-05 10:53:52 +00:00
Ray Kraesig
06d7f9c03e Bug 1834612 - [1/1] Restrict DComp-disabling mitigation to Windows 10 r=ahale,gfx-reviewers
Bug 1704954 disabled DirectComposition for users with NVIDIA graphics
hardware and mixed monitor refresh rates on Windows 10 and 11, as a
mitigation for bug 1638709. However, that bug is almost -- perhaps
entirely -- unknown on Windows 11 (q.v. for details), and the fallback
path it uses has been shown to cause issues there (bug 1763981).

Restrict the mitigation to only occur on Windows 10, where bug 1638709
is exhibited, but where no issues with the fallback path are known.

This also effectively reverts bug 1816001, which it obviates.

Differential Revision: https://phabricator.services.mozilla.com/D178848
2023-05-30 16:22:43 +00:00
Emilio Cobos Álvarez
86f1a48882 Bug 1830162 - Add array support to gfxVars, and use it for the DMABuf modifiers. r=stransky,gfx-reviewers,nical
Differential Revision: https://phabricator.services.mozilla.com/D177376
2023-05-11 09:59:53 +00:00
stransky
8dabb90364 Bug 1830162 [Wayland] Get dmabuf modifiers from Wayland and export them to child processes as gfxVar r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D176952
2023-05-11 09:59:53 +00:00
stransky
c1968f2af4 Bug 1831038 Add FEATURE_H264_HW_DECODE / FEATURE_AV1_HW_DECODE to track HW decode state on Linux r=alwu
- Add H264_HW_DECODE / AV1_HW_DECODE features to track H264/AV1 decoding state on Linux.
- Add UseH264HwDecode / UseAV1HwDecode gfx variables to route decode state to RDD process.
- Init H264_HW_DECODE / AV1_HW_DECODE features on Linux only and skip all HW decoding features init if VA-API is not supported.

Differential Revision: https://phabricator.services.mozilla.com/D177021
2023-05-11 09:58:21 +00:00
Ray Kraesig
98dc3ec133 Bug 1830792 - [3/4] Remove is-nightly check for bug 1704954 mitigation r=gfx-reviewers,bradwerth
This mitigation exposed bug 1763981. Unfortunately, not applying it on
Nightly made it look like bug 1763981 was _fixed_ in Nightly, tricking
several users and developers and making testing needlessly more
difficult even after this was discovered.

Apply the mitigation across the board, regardless of release channel.
Developers may still set `gfx.webrender.dcomp-apply-1704954` to override
this as needed for testing (e.g.) fixes for bug 1638709.

Differential Revision: https://phabricator.services.mozilla.com/D176843
2023-05-03 14:24:35 +00:00
Norisz Fay
f78c2a2910 Backed out 4 changesets (bug 1830792) for causing gtest failures regarding WebRenderNvidiaHighMixedRefreshRateNightly CLOSED TREE
Backed out changeset 7b723ef8f45e (bug 1830792)
Backed out changeset dca34ff20fab (bug 1830792)
Backed out changeset 0fa7665b8ede (bug 1830792)
Backed out changeset ce5ed4bf2b1c (bug 1830792)
2023-05-03 02:27:51 +03:00
Ray Kraesig
7f087d65c5 Bug 1830792 - [3/4] Remove is-nightly check for bug 1704954 mitigation r=gfx-reviewers,bradwerth
This mitigation exposed bug 1763981. Unfortunately, not applying it on
Nightly made it look like bug 1763981 was _fixed_ in Nightly, tricking
several users and developers and making testing needlessly more
difficult even after this was discovered.

Apply the mitigation across the board, regardless of release channel.
Developers may still set `gfx.webrender.dcomp-apply-1704954` to override
this as needed for testing (e.g.) fixes for bug 1638709.

Depends on D176842

Differential Revision: https://phabricator.services.mozilla.com/D176843
2023-05-02 22:40:20 +00:00
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