`vaapitest()` is meant to be a sanity check. If it failed there's
likely something very broken about the driver and we log gfx
warnings accordingly, allowing to debug the problem.
Ensure to force-disable VAAPI in this case but still allow users
to enable the feature in blocklisted cases.
While on it add some additional fixes for issues encoutered while
testing:
- `InitVAAPIConfig()` was not run on X11-only builds, wrongly
setting `sLayersSupportsHardwareVideoDecoding` to `true` there
on allowlisted drivers. Thus replace `MOZ_WAYLAND` with
`MOZ_WIDGET_GTK`, ensuring the "Wayland support missing" warning
is shown in `about:support`.
- `UserForceEnable` must be run before `ForceDisable`, otherwise an
assert is triggered on debug builds. Reorder this.
- `GetFeatureStatus` was run twice for
`FEATURE_HARDWARE_VIDEO_DECODING`, once in `InitAcceleration()` in the
common code path, the again in `InitVAAPIConfig()`. Untangle the common
code path to only run `InitVAAPIConfig()`.
- Use the chance to turn `media.hardware-video-decoding.enabled` into a
static pref so it matches `media.hardware-video-decoding.force-enabled`
Differential Revision: https://phabricator.services.mozilla.com/D150959
`vaapitest()` is meant to be a sanity check. If it failed there's
likely something very broken about the driver and we log gfx
warnings accordingly, allowing to debug the problem.
Ensure to force-disable VAAPI in this case but still allow users
to enable the feature in blocklisted cases.
While on it add some additional fixes for issues encoutered while
testing:
- `InitVAAPIConfig()` was not run on X11-only builds, wrongly
setting `sLayersSupportsHardwareVideoDecoding` to `true` there
on allowlisted drivers. Thus replace `MOZ_WAYLAND` with
`MOZ_WIDGET_GTK`, ensuring the "Wayland support missing" warning
is shown in `about:support`.
- `UserForceEnable` must be run before `ForceDisable`, otherwise an
assert is triggered on debug builds. Reorder this.
- `GetFeatureStatus` was run twice for
`FEATURE_HARDWARE_VIDEO_DECODING`, once in `InitAcceleration()` in the
common code path, the again in `InitVAAPIConfig()`. Untangle the common
code path to only run `InitVAAPIConfig()`.
- Use the chance to turn `media.hardware-video-decoding.enabled` into a
static pref so it matches `media.hardware-video-decoding.force-enabled`
Differential Revision: https://phabricator.services.mozilla.com/D150959
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
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
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
Previously, content processes would try to contact the X server
directly during startup to read color calibration information; with
`dom.ipc.avoid-gtk` this doesn't work because the process is in headless
mode. This patch extends the color profile IPC facility added in bug
1540776 for Windows sandboxing (win32k lockdown) to GTK under X11.
(Currently there's no support for color management under Wayland, so
there's nothing for this patch to fix in that case.)
Differential Revision: https://phabricator.services.mozilla.com/D124507
This implements a mostly working native backend for Wayland. It can
be enabled via `gfx.webrender.compositor.force-enabled`.
The focus here was to get a basic structure in place while mini-
mising changes in shared code.
Known issues and limitations:
- No readback - this will likely require an internal compositor
again, as Wayland doesn't allow easily allow readback of the
composited image, at least not without asking for permission.
Alternatively, a new Wayland extension could be written for it.
- Frame-call related issues when using a compositor that optimizes
them (e.g. Gnome-Shell). This will be fixed in a follow-up, in
the mean time disabling `widget.wayland.opaque-region.enabled`
and `widget.wayland.vsync.enabled` works around the issues.
- Only works on Weston or very recent versions of Gnome-Shell, see
bug 1699754
Differential Revision: https://phabricator.services.mozilla.com/D111662
gfxPlatformGtk needs gtk_init() so we can't use it in all places where dmabuf is used, so remove it from it.
Leave only WebGL config there as it can use gfxPlatform.
- Reomve UseDMABufTextures()
- Remove UseDMABufVideoTextures()
- Remove UseHardwareVideoDecoding()
- Remove UseDRMVAAPIDisplay()
Depends on D95992
Differential Revision: https://phabricator.services.mozilla.com/D95993