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

130 Коммитов

Автор SHA1 Сообщение Дата
Gabriele Svelto aa43fa218e Bug 1831092 - Use the new pull-based API for all crash annotations and remove the global annotations table r=jgilbert,necko-reviewers,media-playback-reviewers,profiler-reviewers,win-reviewers,padenot,handyman,afranchuk,valentin,alwu,sotaro
This changes comes with several different refactorings all rolled into one,
unfotunately I couldn't find a way to pull them apart:
- First of all annotations now can either recorded (that is, we copy the value
  and have the crash reporting code own the copy) or registered. Several
  annotations are changed to use this functionality so that we don't need to
  update them as their value change.
- The code in the exception handler is modified to read the annotations from
  the mozannotation_client crate. This has the unfortunate side-effect that
  we need three different bits of code to serialize them: one for annotations
  read from a child process, one for reading annotations from the main process
  outside of the exception handler and one for reading annotations from the
  main process within the exception handler. As we move to fully
  out-of-process crash reporting the last two methods will go away.
- The mozannotation_client crate now doesn't record annotation types anymore.
  I realized as I was working on this that storing types at runtime has two
  issues: the first one is that buggy code might change the type of an
  annotation (that is record it under two different types at two different
  moments), the second issue is that types might become corrupt during a
  crash, so better enforce them at annotation-writing time. The end result is
  that the mozannotation_* crates now only store byte buffers, track the
  format the data is stored in (null-terminated string, fixed size buffer,
  etc...) but not the type of data each annotation is supposed to contain.
- Which brings us to the next change: concrete types for annotations are now
  enforced when they're written out. If an annotation doesn't match the
  expected type it's skipped. Storing an annotation with the wrong type will
  also trigger an assertion in debug builds.

Differential Revision: https://phabricator.services.mozilla.com/D195248
2024-03-04 10:24:43 +00:00
Andrew Osmond 21e833985f Bug 1873541 - Convert gfx blocklist entries for all features to subset excluding likely safe set. r=jrmuizel
This patch makes it so that we avoid blocking all features with the
blocklist, and instead continue to allow the safe subset proscribed by
GfxInfoBase::OnlyAllowFeatureOnKnownConfig. Any feature allowed in an
unknown configuration should be allowed in a blanket blocklist entry,
unless we know for a fact that we need to also block them.

Differential Revision: https://phabricator.services.mozilla.com/D197963
2024-01-08 21:30:06 +00:00
Andrew Osmond 7ac76ab68e Bug 1868737 - Allow minimal gfx features by default for uncertain configurations. r=jrmuizel,perftest-reviewers,kshampur
Some features such as the GPU process (except on Android), backdrop
filter (because it always works with Software WebRender), ANGLE (because
it is generally good) and out of process WebGL (we generally want to
remote WebGL for sandboxing purposes) are special, and should not be
disabled simply because we are uncertain about our configuration. In
these situations, disable most features, but keep these enabled by
default.

Differential Revision: https://phabricator.services.mozilla.com/D197595
2024-01-05 22:23:25 +00:00
Stanca Serban 2c85dc0395 Backed out changeset 03a4fbacc768 (bug 1868737) for causing talos performance tests related failures. CLOSED TREE 2024-01-05 02:17:01 +02:00
Andrew Osmond 9ad36620d3 Bug 1868737 - Allow minimal gfx features by default for uncertain configurations. r=jrmuizel
Some features such as the GPU process (except on Android), backdrop
filter (because it always works with Software WebRender), ANGLE (because
it is generally good) and out of process WebGL (we generally want to
remote WebGL for sandboxing purposes) are special, and should not be
disabled simply because we are uncertain about our configuration. In
these situations, disable most features, but keep these enabled by
default.

Differential Revision: https://phabricator.services.mozilla.com/D197595
2024-01-04 19:08:42 +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
Andrew Osmond 08581c22f1 Bug 1860048 - Enable threadsafe GL and DMABUF on NVIDIA 545.23.6+ on Linux for early beta and earlier. r=gfx-reviewers,nical
Differential Revision: https://phabricator.services.mozilla.com/D191430
2023-10-19 13:32:56 +00:00
Brad Werth 3d96d7be32 Bug 1831598: Add AMD 600 family to the Linux WebRender blocklist. r=gfx-reviewers,aosmond
Differential Revision: https://phabricator.services.mozilla.com/D186785
2023-08-24 15:50:47 +00:00
stransky ad68c2b448 Bug 1832080 [Linux/AMD] Disable VA-API decoding for AMD on Mesa < 23.1.1 r=aosmond
Disable VA-API decoding for AMD on Mesa < 23.1.1 due to broken decode:
https://gitlab.freedesktop.org/mesa/mesa/-/issues/8996

Differential Revision: https://phabricator.services.mozilla.com/D184230
2023-07-21 16:05:13 +00:00
stransky e1db2dee02 Bug 1843425 [Linux] Probe HW decoding on X11 too r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D183858
2023-07-19 08:41:58 +00:00
David Turner ea012bcbbf Bug 1833354 - Quieten V4L2 support warnings. r=rmader
v4l2test emits errors/warnings for every device which isn't an M2M
decoder, which can be quite a lot of devices.  So only emit these as
warnings instead of critical errors.  To see the output from v4l2test,
set gfx.logging.level = 5 in about:config.

Differential Revision: https://phabricator.services.mozilla.com/D181980
2023-06-26 09:56:27 +00:00
stransky 13b00af243 Bug 1837138 [Linux] Enable AMD VA-API zero copy playback on Mesa >= 23.1.1 r=aosmond
Differential Revision: https://phabricator.services.mozilla.com/D180187
2023-06-20 20:39:02 +00:00
stransky 90ebdbf5c4 Bug 1836021 [Linux] Probe VA-API devices if HW acceleration is force enabled r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D180177
2023-06-19 12:57:02 +00:00
Brad Werth 50b102dff8 Bug 1815481: Disable hardware WebRender on Mesa drivers in Virtual Machines. r=rmader
We classify anything with 'mesa/vmgfx' as a Virtual Machine driver and
block it for Linux.

Differential Revision: https://phabricator.services.mozilla.com/D179864
2023-06-16 20:45:22 +00:00
David Turner b8752c00b1 Bug 1833354 - Add V4L2 hw decode probing to GfxInfo. r=media-playback-reviewers,stransky
In GfxInfo, probe all V4L2 devices to see which of them can do M2M
hardware decode acceleration.  Set the hardware decode support features
appropriately depending on what we find.

Differential Revision: https://phabricator.services.mozilla.com/D178780
2023-06-15 12:59:59 +00:00
Sandor Molnar 0b7a002739 Backed out changeset 236a3de9726e (bug 1836021) for causing build bustages in widget/gtk/GfxInfo.cpp CLOSED TREE 2023-06-08 12:35:53 +03:00
stransky 79ad1960b7 Bug 1836021 [Linux] Probe VA-API devices if HW acceleration is force enabled r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D180177
2023-06-08 08:39:39 +00:00
stransky 63d3ba0ce4 Bug 1835797 [Linux] Don't launch vaapitest on software backends r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D179529
2023-05-31 09:52:53 +00:00
David Turner 8ab689c9e9 Bug 1833354 - Add build options for VAAPI and V4L2. r=media-playback-reviewers,glandium,stransky
Add separate options to control whether we build VA-API and/or V4L2
hardware video decode.  These options default to enabled on the
platforms where these decoders are used.

The downstream MOZ_WAYLAND_USE_HWDECODE build option is used within the
FFmpeg platform and is only set when building against a supported
version of the FFmpeg libraries (i.e. not for ffmpeg57).

Differential Revision: https://phabricator.services.mozilla.com/D178945
2023-05-31 06:13:29 +00:00
Brad Werth eea7eafab2 Bug 1821892: Block R600 hardware with Mesa drivers in all channels. r=gfx-reviewers,jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D179155
2023-05-30 14:42:53 +00:00
stransky d938e937bf Bug 1777430 [Linux] Enable VA-API HW video decoding for Intel devices r=aosmond
Differential Revision: https://phabricator.services.mozilla.com/D178760
2023-05-26 20:45:30 +00:00
stransky ad70535914 Bug 1831038 [Linux] Init FEATURE_*_HW_DECODE features according to VA-API test results r=emilio
Depends on D177021

Differential Revision: https://phabricator.services.mozilla.com/D177022
2023-05-11 09:58:21 +00:00
stransky e6bb782a12 Bug 1831541 [Linux] Don't assert on mIsVAAPISupported if MOZ_WAYLAND is missing r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D177620
2023-05-10 11:49:05 +00:00
stransky 5fe2a0b46b Bug 1829871 [Linux] glxtest/vaapi test: recover from EAGAIN/EINTR errors r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D176587
2023-04-27 06:41:37 +00:00
stransky 3f14d27047 Bug 1829461 [Linux] Use timeout to wait until gxltest/vaapi test is finished r=emilio
Depends on D176456

Differential Revision: https://phabricator.services.mozilla.com/D176457
2023-04-26 09:25:52 +00:00
stransky ef7e9adfcf Bug 1829461 [Linux] glxtest/vaapi test: use pid 0 for missing (waiting) test results and pid < 0 for finished test r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D176456
2023-04-26 09:25:52 +00:00
stransky f8f1de6603 Bug 1828192 [Linux] Run glxtest directly from GfxInfo::GetData() in case we're missing glx test data r=emilio
- Run glxtest directly from GfxInfo::GetData() in case we're missing glx test data. That happens for unusual code paths
  like profile manager run or xpcshell testing.
- Remove nsIGfxInfoDebug::fireTestProcess() hack to run glxtest in testsuite. We don't need that due this change.

Differential Revision: https://phabricator.services.mozilla.com/D175868
2023-04-20 08:54:17 +00:00
stransky 1551b41014 Bug 1828192 [Linux] Remove c style hacks to run glxtest and use FireTestProcess() for it r=emilio
- Migrate glxtest pid and pipe fd variables to static members of GfxInfo on Linux
- Implement GfxInfo::FireGLXTestProcess() to run glxtest process.

Differential Revision: https://phabricator.services.mozilla.com/D175867
2023-04-20 08:54:17 +00:00
stransky 2f37fa4403 Bug 1828192 [Linux] Implement GfxInfo::FireTestProcess() and use it to run VA-API testing r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D175866
2023-04-20 08:54:17 +00:00
stransky 5c134bc785 Bug 1828192 [Linux] Implement and use ManageChildProcess() to run and get data from child test process in GfxInfo r=emilio
- Implement ManageChildProcess() to get data from child test process and process exit status. We use glib I/O routines there instead of
  our custom implementation.
- Update GfxInfo::GetData() and GfxInfo::GetDataVAAPI() to use it.

Differential Revision: https://phabricator.services.mozilla.com/D175808
2023-04-20 08:54:16 +00:00
stransky aa94035b7c Bug 1787182 [Linux] Build and run VA-API test on MOZ_WAYLAND builds only r=emilio
Depends on D175236

Differential Revision: https://phabricator.services.mozilla.com/D175323
2023-04-13 09:49:59 +00:00
stransky a46255fb5e Bug 1787182 [Linux] Implement glxtest test as binary r=emilio
glxtest is run later when Firefox already spawns threads. Recently glxtest runs in forked process
which doesn't work correctly in multi-thread environment, so we need to move glxtest to different binary file
and launch it as stand alone code.

Differential Revision: https://phabricator.services.mozilla.com/D173486
2023-04-13 09:49:57 +00:00
stransky 301aad30ac Bug 1787182 [Linux] Run VA-API tests on supported hardware only r=emilio,gfx-reviewers,jgilbert
- Implement fire_vaapi_process() which launch VA-API test utility on given DRM device.
- Implement GfxInfo::GetDataVAAPI() which gets VA-API test results
- Run VA-API tests when FEATURE_HARDWARE_VIDEO_DECODING is probed and only if it's enabled by GfxInfo.

Differential Revision: https://phabricator.services.mozilla.com/D171995
2023-04-13 09:49:57 +00:00
Narcis Beleuzu 1615701d47 Backed out 5 changesets (bug 1787182) for bustages on vaapitest.cpp . CLOSED TREE
Backed out changeset f40c90d3ed12 (bug 1787182)
Backed out changeset 0771c006513a (bug 1787182)
Backed out changeset 21e692c2f871 (bug 1787182)
Backed out changeset e084be47c307 (bug 1787182)
Backed out changeset 6a1b9e363c54 (bug 1787182)
2023-04-07 18:11:21 +03:00
stransky b9d3c8c94e Bug 1787182 [Linux] Implement glxtest test as binary r=emilio
glxtest is run later when Firefox already spawns threads. Recently glxtest runs in forked process
which doesn't work correctly in multi-thread environment, so we need to move glxtest to different binary file
and launch it as stand alone code.

Differential Revision: https://phabricator.services.mozilla.com/D173486
2023-04-07 11:51:54 +00:00
stransky 9a6e65770c Bug 1787182 [Linux] Run VA-API tests on supported hardware only r=emilio,gfx-reviewers,jgilbert
- Implement fire_vaapi_process() which launch VA-API test utility on given DRM device.
- Implement GfxInfo::GetDataVAAPI() which gets VA-API test results
- Run VA-API tests when FEATURE_HARDWARE_VIDEO_DECODING is probed and only if it's enabled by GfxInfo.

Differential Revision: https://phabricator.services.mozilla.com/D171995
2023-04-07 11:51:53 +00:00
Norisz Fay 3d82e172c0 Backed out 5 changesets (bug 1787182) for causing bustage on glxtest.cpp and xpcshell failure on test_gfxBlacklist_Device.js
Backed out changeset 74758d7ccf41 (bug 1787182)
Backed out changeset 6267b0d60a1f (bug 1787182)
Backed out changeset 0fe756b5d74d (bug 1787182)
Backed out changeset e9a220ba6f47 (bug 1787182)
Backed out changeset be1774f1cceb (bug 1787182)
2023-04-05 11:34:32 +03:00
stransky 21ea86344c Bug 1787182 [Linux] Implement glxtest test as binary r=emilio
glxtest is run later when Firefox already spawns threads. Recently glxtest runs in forked process
which doesn't work correctly in multi-thread environment, so we need to move glxtest to different binary file
and launch it as stand alone code.

Differential Revision: https://phabricator.services.mozilla.com/D173486
2023-04-05 06:14:14 +00:00
stransky aa36e08377 Bug 1787182 [Linux] Run VA-API tests on supported hardware only r=emilio,gfx-reviewers,jgilbert
- Implement fire_vaapi_process() which launch VA-API test utility on given DRM device.
- Implement GfxInfo::GetDataVAAPI() which gets VA-API test results
- Run VA-API tests when FEATURE_HARDWARE_VIDEO_DECODING is probed and only if it's enabled by GfxInfo.

Differential Revision: https://phabricator.services.mozilla.com/D171995
2023-04-05 06:14:14 +00:00
Andrew Osmond 82828dba9e Bug 1824778 - Block threadsafe GL and DMABUF blocklist on all NVIDIA binary drivers. r=gfx-reviewers,jrmuizel
We can unblock when we have an actual driver version that works.

Differential Revision: https://phabricator.services.mozilla.com/D173741
2023-03-27 17:07:00 +00:00
Cristina Horotan 3de280b975 Backed out 5 changesets (bug 1787182) for causing leaks on linux asan. CLOSED TREE
Backed out changeset c5518abf189e (bug 1787182)
Backed out changeset ade3e3a9ec67 (bug 1787182)
Backed out changeset 10299b2e3a6a (bug 1787182)
Backed out changeset d11d31ec4d81 (bug 1787182)
Backed out changeset bde24058d87c (bug 1787182)
2023-03-27 18:09:38 +03:00
stransky e8643079fd Bug 1787182 [Linux] Implement glxtest test as binary r=emilio
glxtest is run later when Firefox already spawns threads. Recently glxtest runs in forked process
which doesn't work correctly in multi-thread environment, so we need to move glxtest to different binary file
and launch it as stand alone code.

Differential Revision: https://phabricator.services.mozilla.com/D173486
2023-03-27 13:47:21 +00:00
stransky 755cfff2a7 Bug 1787182 [Linux] Run VA-API tests on supported hardware only r=emilio,gfx-reviewers,jgilbert
- Implement fire_vaapi_process() which launch VA-API test utility on given DRM device.
- Implement GfxInfo::GetDataVAAPI() which gets VA-API test results
- Run VA-API tests when FEATURE_HARDWARE_VIDEO_DECODING is probed and only if it's enabled by GfxInfo.

Differential Revision: https://phabricator.services.mozilla.com/D171995
2023-03-27 13:47:21 +00:00
stransky 70e16f1549 Bug 1824307 [VAAPI] Disable HW video decoding on AMD R600 r=aosmond
Differential Revision: https://phabricator.services.mozilla.com/D173665
2023-03-27 13:00:19 +00:00
Iulian Moraru 5234db201c Backed out 5 changesets (bug 1787182) for causing leaks on linux asan. CLOSED TREE
Backed out changeset 34056df4e1d5 (bug 1787182)
Backed out changeset fea9dc3de652 (bug 1787182)
Backed out changeset 7e710b6500f0 (bug 1787182)
Backed out changeset fe70bf105370 (bug 1787182)
Backed out changeset 70439dbc72fd (bug 1787182)
2023-03-27 14:18:06 +03:00
stransky facf3ee2b4 Bug 1787182 [Linux] Implement glxtest test as binary r=emilio
glxtest is run later when Firefox already spawns threads. Recently glxtest runs in forked process
which doesn't work correctly in multi-thread environment, so we need to move glxtest to different binary file
and launch it as stand alone code.

Differential Revision: https://phabricator.services.mozilla.com/D173486
2023-03-27 10:16:46 +00:00