Commit Graph

357 Commits

Author SHA1 Message Date
sotaro
22fa535fac Bug 1843891 - Enable to present WebGPU without readback with DX12 on Windows r=webgpu-reviewers,nical
Differential Revision: https://phabricator.services.mozilla.com/D190250
2024-03-22 04:13:28 +00:00
Brad Werth
8e3acc45f5 Bug 1764201 Part 3: Remove screen info stuff from gfxPlatform. r=jgilbert,geckoview-reviewers
The gfxPlatform::GetScreen* methods have always been redundant. Removing
them in favor of ScreenManager or nsDeviceContext methods will
discourage future code authors from adding more redundancy in
gfxPlatform.

Differential Revision: https://phabricator.services.mozilla.com/D203672
2024-03-22 00:55:48 +00:00
sotaro
677f91dfde Bug 1884600 - Block NVIDIA RTX Video Super Resolution depends on driver version r=gfx-reviewers,jrmuizel
chromium requests NVIDIA super resolution needs 530+ driver.

Differential Revision: https://phabricator.services.mozilla.com/D204453
2024-03-13 01:34:05 +00:00
sotaro
d1064e447a Bug 1882005 - Block VideoProcessor-HDR on SDR content depends on driver version r=gfx-reviewers,jrmuizel
chromium blocks it when driver is not 550.00+.

pref gfx.webrender.video-true-hdr.nvidia is changed to a generic name gfx.webrender.overlay-vp-auto-hdr

Differential Revision: https://phabricator.services.mozilla.com/D203568
2024-03-08 01:38:56 +00:00
Daniel Holbert
6b6989bd75 Bug 1875430 part 3: Convert 'static UniquePtr' global vars to use StaticAutoPtr, in gfx. r=gfx-reviewers,jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D199169
2024-01-23 19:00:49 +00:00
Jeff Muizelaar
0609c5b0c1 Bug 1870277 - Include failure message when a feature is marked as failed. r=aosmond
This will help us figure out why things are failing in telemetry

Differential Revision: https://phabricator.services.mozilla.com/D196576
2023-12-15 15:07:17 +00:00
Ashley Hale
8c0266380b Bug 1843782 - WebGL software rendering when mesa/vmwgfx driver detected r=gfx-reviewers,bradwerth,jrmuizel,jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D192039
2023-11-29 21:45:27 +00:00
Butkovits Atila
fe1644b3dc Backed out changeset 8d11a3a0d707 (bug 1843782) for causing failures complaining about RemoteProcessMonitor . CLOSED TREE 2023-11-29 05:51:34 +02:00
Ashley Hale
5fed10025e Bug 1843782 - WebGL software rendering when mesa/vmwgfx driver detected r=gfx-reviewers,bradwerth,jrmuizel,jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D192039
2023-11-29 02:15:17 +00:00
Sandor Molnar
3b95748905 Backed out changeset c1e95a42b8d7 (bug 1843782) for causing gv-junit-fis failures. CLOSED TREE 2023-11-28 02:31:02 +02:00
Ashley Hale
5150f6a2bf Bug 1843782 - WebGL software rendering when mesa/vmwgfx driver detected r=gfx-reviewers,bradwerth,jrmuizel,jgilbert
Differential Revision: https://phabricator.services.mozilla.com/D192039
2023-11-27 23:25:14 +00:00
Brad Werth
8272a162fb Bug 1859625 Part 1: Stop sending the GetGfxVars message. r=ipc-reviewers,mccr8
Differential Revision: https://phabricator.services.mozilla.com/D192996
2023-11-27 21:11:09 +00:00
Cosmin Sabou
36dc5703c6 Backed out 3 changesets (bug 1859625) for causing reftest assertion failures on gfxFeature.cpp. CLOSED TREE
Backed out changeset ea804fe0a160 (bug 1859625)
Backed out changeset 7ba7a8156187 (bug 1859625)
Backed out changeset ab1801c9add6 (bug 1859625)
2023-11-21 19:38:28 +02:00
Brad Werth
5f4fbb29a9 Bug 1859625 Part 1: Stop sending the GetGfxVars message. r=ipc-reviewers,mccr8
Differential Revision: https://phabricator.services.mozilla.com/D192996
2023-11-21 16:33:47 +00:00
Jonathan Kew
cf58f732be Bug 1856637 - Ignore gfxDWriteFont::UpdateSystemTextVars() call if the gfxVars are not yet initialized. r=gfx-reviewers,lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D190151
2023-10-05 10:53:52 +00:00
Andrew Osmond
620833163a Bug 1852144 - Disable remote canvas globally in case of unrecoverable error. r=gfx-reviewers,lsalzman
This patch makes the remote canvas enabled state global. If we failed to
create a context, then it cannot recover, so we should never try again.
In the event of stream errors, it is likely due to virtual memory
shortages.

Differential Revision: https://phabricator.services.mozilla.com/D187718
2023-09-25 16:18:35 +00:00
Masatoshi Kimura
33a7abd008 Bug 1844908 - Remove pre-Win10-specific codepath from gfx/. r=gfx-reviewers,nical
Differential Revision: https://phabricator.services.mozilla.com/D184292
2023-08-17 02:58:21 +00:00
Masatoshi Kimura
4bf50bac40 Bug 1845746 - Remove gfxWindowsPlatform::DwmCompositionEnabled. r=gfx-reviewers,jrmuizel
Depends on D184715

Differential Revision: https://phabricator.services.mozilla.com/D184716
2023-08-10 18:58:03 +00:00
sotaro
3ece048a1b Bug 1829063 - Split video overlay feature of software decoded video from nsIGfxInfo::FEATURE_VIDEO_OVERLAY r=gfx-reviewers,lsalzman
Current gecko enables "software decoded video overlay" only when "hardware decoded video overlay" is enabled. On current release, "hardware decoded video overlay" is not enabled yet with non-Intel GPU, then "software decoded video overlay" is not yet enabled on release. It is not good. We want to enable "software decoded video overlay" independently from "hardware decoded video overlay". Then settings of video overlay is split between "hardware decoded video overlay" and "software decoded video overlay". Then "software decoded video overlay" could be enabled/disabled independently from status of "hardware decoded video overlay".

* settings of hardware decoded video overlay
- nsIGfxInfo::FEATURE_VIDEO_OVERLAY:
- gfx.webrender.dcomp-video-hw-overlay-win
- gfx.webrender.dcomp-video-hw-overlay-win-force-enabled
- gfxVars::UseWebRenderDCompVideoHwOverlayWin()

* settings of software decoded video overlay
- nsIGfxInfo::FEATURE_VIDEO_SOFTWARE_OVERLAY
- gfx.webrender.dcomp-video-sw-overlay-win
- gfx.webrender.dcomp-video-sw-overlay-win-force-enabled
- gfxVars::UseWebRenderDCompVideoSwOverlayWin()

Differential Revision: https://phabricator.services.mozilla.com/D175993
2023-06-22 00:21:07 +00:00
sotaro
dd38543e1e Bug 1837938 - Fix fallback from SW-WR + OpenGL to SW-WR r=gfx-reviewers,lsalzman
Fallback from SW-WR + OpenGL to SW-WR is not implemented yet. Since the fallback is not expected to be used on release.

Fallback implementation is borrowed from the fallback process of "WebRender + D3D11" and gfxVars::AllowSoftwareWebRenderD3D11() handling.

Differential Revision: https://phabricator.services.mozilla.com/D180645
2023-06-13 05:18:03 +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