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

286 Коммитов

Автор SHA1 Сообщение Дата
Robert Mader 067d78ddef Bug 1711224 - Add Wayland support for RenderCompositorNativeSWGL,
In order to do that, move buffer type specific code into
`NativeSurfaceWayland` and create subclasses for SHM and EGL
buffers.

This should help identify bugs, improve the code structure for
additional buffer types (e.g. YUV) and makes us get closer
to the CA backend.

Also includes some minor unrelated cleanups.

Differential Revision: https://phabricator.services.mozilla.com/D115938
2021-05-25 21:14:39 +00:00
stransky 42c1875739 Bug 1710958 [Linux] Delay DMABuf initialization when it's really needed, r=jhorak
Differential Revision: https://phabricator.services.mozilla.com/D115480
2021-05-25 10:21:56 +00:00
Jonathan Kew 18310539bf Bug 1708768 - Preliminary cleanup of gfxPlatformFontList creation/initialization code; no functional change. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D114863
2021-05-18 11:10:42 +00:00
Iulian Moraru b6ba6af634 Backed out 3 changesets (bug 1708768) for causing font related crashes (bug 1711332). a=backout DONTBUILD
Backed out changeset fa037550d6e8 (bug 1708768)
Backed out changeset 10b30c8d4b86 (bug 1708768)
Backed out changeset c03c7df7cd61 (bug 1708768)
2021-05-16 11:46:34 +03:00
Jonathan Kew 11b9b22a55 Bug 1708768 - Preliminary cleanup of gfxPlatformFontList creation/initialization code; no functional change. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D114863
2021-05-14 18:05:44 +00:00
Robert Mader 89349d8182 Bug 1699985 - Implement basic native Wayland compositor backend, r=stransky,mstange,aosmond
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
2021-05-11 13:38:59 +00:00
Emilio Cobos Álvarez e2df872ab8 Bug 1708285 - Pass default font settings from parent to child processes. r=jfkthame
Instead of relying on GTK to be initialized in the child process.

Differential Revision: https://phabricator.services.mozilla.com/D113784
2021-05-01 20:00:31 +00:00
Robert Mader 10d2da5900 Bug 1707943 - Fix warnings and apply suggestions form static analysis, r=stransky
Some more small cleanups to stop the review bot from complaining in
patches touching these files.

Differential Revision: https://phabricator.services.mozilla.com/D113721
2021-04-29 10:43:17 +00:00
Jeff Muizelaar 31c6602bfb Bug 1696819. Disable generating a profile from the EDID data. r=aosmond
This code doesn't seem to be working correctly and was broken
accidentally before. Intentionally break it for now to avoid the
regression.

Differential Revision: https://phabricator.services.mozilla.com/D110347
2021-03-31 14:32:55 +00:00
Alexandru Michis a6b034109b Backed out changeset 1bde1bcafcf1 (bug 1700799) for causing webgl crashes.
CLOSED TREE
2021-03-27 11:59:07 +02:00
Jeff Gilbert 615878e7ce Bug 1700799 - For GLContextGLX creation, add fallback if robustness fails. r=lsalzman
Also trim out unused code/vars.
Also give better WebGL context creation errors.

Differential Revision: https://phabricator.services.mozilla.com/D109679
2021-03-27 08:26:35 +00:00
Emilio Cobos Álvarez 75e5766b67 Bug 1699930 - Don't let GTK text scale affect non-native scrollbar sizes. r=mstange
This matches the native theme. We plumb it via LookAndFeel to avoid
having to load GTK settings in child processes.

Differential Revision: https://phabricator.services.mozilla.com/D109275
2021-03-22 16:11:33 +00:00
Andrew Osmond 86da16f9a5 Bug 1696071 - Add support for DMABuf to the blocklist. r=rmader
Differential Revision: https://phabricator.services.mozilla.com/D107019
2021-03-16 20:14:51 +00:00
Jan Alexander Steffens (heftig) 4920407bb3 Bug 1696845 - Use dlsym for gdk_*_display_get_type. r=stransky
Using `dlsym` for `gdk_wayland_display_get_type` is a cleaner solution
to bug 1696319, allowing running with a GTK that lacks the Wayland
backend.

Also adds a symmetric implementation for `gdk_x11_display_get_type`,
which should help running without X11.

Differential Revision: https://phabricator.services.mozilla.com/D107406
2021-03-11 14:32:53 +00:00
Narcis Beleuzu 198358fc15 Backed out changeset a4f4f640eaa7 (bug 1696845) for bustages on pangofc-fontmap.h 2021-03-10 04:49:51 +02:00
Jan Alexander Steffens (heftig) 1261a74d17 Bug 1696845 - Use dlsym for gdk_*_display_get_type. r=stransky
Using `dlsym` for `gdk_wayland_display_get_type` is a cleaner solution
to bug 1696319, allowing running with a GTK that lacks the Wayland
backend.

Also adds a symmetric implementation for `gdk_x11_display_get_type`,
which should help running without X11.

Differential Revision: https://phabricator.services.mozilla.com/D107406
2021-03-09 22:55:47 +00:00
Andrew Osmond 46ef42b1f0 Bug 1689464 - Add support for X11 EGL to the blocklist. r=rmader
Differential Revision: https://phabricator.services.mozilla.com/D106927
2021-03-02 15:49:06 +00:00
Butkovits Atila 3f97afc8db Backed out changeset 5e30c026c632 (bug 1635186) as requested by dev. CLOSED TREE 2021-03-01 19:01:54 +02:00
Robert Mader 4b0e9596ae Bug 1635186 - Do not use GLX vsync source on Xwayland, r=stransky
Xwayland will give us a 60Hz timer for `glXWaitVideoSyncSGI` anyway,
but an optimization in Xwayland to reduce that to 1Hz if a window is
occluded can cause issues for us in multi-window cases.

In unaffected (i.e. single window) cases this will make us consume
more resources, as rendering will not get throttled to 1Hz anymore
when hidden. The native Wayland backend supports this, however.

Differential Revision: https://phabricator.services.mozilla.com/D106723
2021-03-01 14:09:47 +00:00
Alexis Beingessner ade0725530 Bug 1686616 - make GfxInfo use Components instead of Services. r=kmag
Differential Revision: https://phabricator.services.mozilla.com/D105522
2021-02-18 13:26:29 +00:00
Andrew Osmond cb82d29e76 Bug 1680512 - Prefer EGL for glxtest detection and fallback to GLX if unavailable. r=rmader
As we make the transition to using EGL over GLX, we will need our
detection code to be sufficient without EGL to determine the device in
use. This patch makes us always use the EGL testing code over the GLX
testing code, regardless of the pref/envvar setting.

At the very least, we need to know the vendor ID of the device in use.
We can determine this if there is only one GPU on the PCI list, if we
get a driver name from Mesa, or if it is a proprietary driver (i.e.
NVIDIA) which includes its name in the vendor ID. If we know the vendor
ID, we can usually derive the device ID from the PCI list.

We now also track which path glxtest took. If we successfully did the
test via EGL, then we will allow the pref/envvar to use EGL instead of
GLX. If the test reverted to GLX, then it will use GLX regardless of the
pref/envvar. This is necessary because we need to know if the libraries
are available or not -- some systems may be missing one or the other.

Differential Revision: https://phabricator.services.mozilla.com/D102933
2021-01-25 19:41:04 +00:00
Noemi Erli 1f192d6edb Backed out changeset 98349a6be0f6 (bug 1680512) for causing build bustages in GfxInfo.mm CLOSED TREE 2021-01-25 21:13:12 +02:00
Andrew Osmond b364e1738e Bug 1680512 - Prefer EGL for glxtest detection and fallback to GLX if unavailable. r=rmader
As we make the transition to using EGL over GLX, we will need our
detection code to be sufficient without EGL to determine the device in
use. This patch makes us always use the EGL testing code over the GLX
testing code, regardless of the pref/envvar setting.

At the very least, we need to know the vendor ID of the device in use.
We can determine this if there is only one GPU on the PCI list, if we
get a driver name from Mesa, or if it is a proprietary driver (i.e.
NVIDIA) which includes its name in the vendor ID. If we know the vendor
ID, we can usually derive the device ID from the PCI list.

We now also track which path glxtest took. If we successfully did the
test via EGL, then we will allow the pref/envvar to use EGL instead of
GLX. If the test reverted to GLX, then it will use GLX regardless of the
pref/envvar. This is necessary because we need to know if the libraries
are available or not -- some systems may be missing one or the other.

Differential Revision: https://phabricator.services.mozilla.com/D102933
2021-01-25 17:31:27 +00:00
Robert Mader 736a9e904d Bug 1588904 - [Linux/EGL] Use correct rendering device in multi-GPU setup, r=stransky,emilio,jgilbert,geckoview-reviewers,m_kato
Fetch the DRM device in the EGL version of glxtest, set it in gfxInfo and pass
it to gfxVars. Finally, use it in nsDMABufDevice::Configure().

While on it, also clean up EGL typedefs and defines a bit to match how it's
done for GLX.

Inspired by and copied from wlroots and Xwayland. Thanks to emersion!

Differential Revision: https://phabricator.services.mozilla.com/D98108
2021-01-18 09:26:21 +00:00
Mihai Alexandru Michis 075a8d5214 Backed out changeset 03c509adfe55 (bug 1588904) for causing bustages.
CLOSED TREE
2021-01-16 18:09:05 +02:00
Robert Mader 2fd87154fc Bug 1588904 - [Linux/EGL] Use correct rendering device in multi-GPU setup, r=stransky,emilio,jgilbert
Fetch the DRM device in the EGL version of glxtest, set it in gfxInfo and pass
it to gfxVars. Finally, use it in nsDMABufDevice::Configure().

While on it, also clean up EGL typedefs and defines a bit to match how it's
done for GLX.

Inspired by and copied from wlroots and Xwayland. Thanks to emersion!

Differential Revision: https://phabricator.services.mozilla.com/D98108
2021-01-16 15:36:12 +00:00
Brindusan Cristian 4c535a3595 Backed out changeset dde159ea0c4c (bug 1588904) for build bustages at xf86drm.h. CLOSED TREE 2021-01-16 14:51:34 +02:00
Robert Mader 88f418e0a5 Bug 1588904 - [Linux/EGL] Use correct rendering device in multi-GPU setup, r=stransky,emilio,jgilbert
Fetch the DRM device in the EGL version of glxtest, set it in gfxInfo and pass
it to gfxVars. Finally, use it in nsDMABufDevice::Configure().

While on it, also clean up EGL typedefs and defines a bit to match how it's
done for GLX.

Inspired by and copied from wlroots and Xwayland. Thanks to emersion!

Differential Revision: https://phabricator.services.mozilla.com/D98108
2021-01-16 12:14:37 +00:00
Robert Mader db1a1fe941 Bug 1640053 - Implement full EGL support in glxtest, r=stransky,aosmond
1. On Wayland, use `get_egl_status()` by default
2. On X11/EGL use `x11_egltest()`, avoiding runtime dependencies on GLX
3. Avoid dlopening libgl/libgles on EGL if not needed
4. Some Wayland/X11 `ifdef` cleanups
5. Don't throw warnings when on mesa and using pci device detection

Depends on D101383

Differential Revision: https://phabricator.services.mozilla.com/D100638
2021-01-14 21:24:24 +00:00
Jonathan Kew 809ac36608 Bug 1676966 - Don't block layout on global font fallback; load character maps asynchronously, and then reflow when available. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D98904
2020-12-31 00:33:48 +00:00
Cosmin Sabou 74039caf3c Backed out changeset 345d6be71db1 (bug 1676966) for mochitest without e10s failures. CLOSED TREE 2020-12-30 15:36:10 +02:00
Jonathan Kew c19e845492 Bug 1676966 - Don't block layout on global font fallback; load character maps asynchronously, and then reflow when available. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D98904
2020-12-30 12:34:49 +00:00
Mihai Alexandru Michis d50d8d795e Backed out changeset 52eb1fa54b88 (bug 1676966) for causing mochitest failures in AsyncCompositionManager.cpp 2020-12-30 00:16:44 +02:00
Jonathan Kew 12c934e612 Bug 1676966 - Don't block layout on global font fallback; load character maps asynchronously, and then reflow when available. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D98904
2020-12-29 16:03:45 +00:00
Razvan Maries 0cb7aac5bd Backed out changeset 4a6818e6c81a (bug 1676966) for perma failures on AsyncCompositionManager.cpp. CLOSED TREE 2020-12-29 04:06:23 +02:00
Jonathan Kew 9e08463270 Bug 1676966 - Don't block layout on global font fallback; load character maps asynchronously, and then reflow when available. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D98904
2020-12-28 13:15:02 +00:00
stransky 86a8ecc95d Bug 1678324 [Linux] Check GdkScreen before we use it, r=jhorak
Differential Revision: https://phabricator.services.mozilla.com/D97594
2020-11-25 10:08:51 +00:00
Robert Mader 95194022d1 Bug 1669275 - [WR/EGL/X11] Use GLX vsyncsource on mesa. r=stransky
This allows mesa to continue using the existing vsync implementation.

Differential Revision: https://phabricator.services.mozilla.com/D92466
2020-11-24 13:30:19 +00:00
Karl Tomlinson deaaa17783 Bug 1675908 restore cache for GetFontScaleDPI() r=stransky
This was removed in https://hg.mozilla.org/mozilla-central/rev/d85aaf27109c
but that led to a regression in
perf_reftest_singletons scrollbar-styles-1.html.

Differential Revision: https://phabricator.services.mozilla.com/D96306
2020-11-09 12:18:59 +00:00
stransky 014948bd7b Bug 1675453 [Wayland] Remove dmabuf configuring methods from gfxPlatformGtk, r=jhorak
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
2020-11-06 14:13:16 +00:00
Vincent Bernat 10ae6bfc55 Bug 1554850 - handle fractional DPI change on Linux. r=karlt
On Linux, Firefox is listening on notify::scale-factor to detect DPI
change. However, scale-factor is an int and on the lower-end side of
the DPI scale, some devices are using fractional scale factors encoded
into Xft/DPI setting. Changing from ×1 to ×1.5 scale is therefore
undetected.

The proposed change is two-folds:

 - remove use of a cached sDPI value and rely on GTK being the cache

 - listening on notify::gtk-xft-dpi to trigger a DPI change

What is missing:

 - performance evaluation of not caching sDPI (on a 10s session
   loading 2 pages, there is an "overhead" of 6ms on my setup, nothing
   visible from my point of view)

 - when changing Xft/DPI and scale, the change is done twice, this
   seems harmless

Differential Revision: https://phabricator.services.mozilla.com/D92095
2020-10-13 02:47:27 +00:00
Csoregi Natalia 708c2f0ad2 Backed out changeset d42dc1f995bb (bug 1669275) for gfx crashes. CLOSED TREE 2020-10-08 04:26:03 +03:00
Robert Mader 8a5c42d45a Bug 1669275 - [WR/EGL/X11] Use GLX features on mesa. r=stransky
This allows mesa to continue using the existing vsync implementation
and nvidia to use the new EGL xvisual logic.

It is an intermediate solution until the issues are fixed. However,
assuming it will take a while to do so, it's probably worth it.

Differential Revision: https://phabricator.services.mozilla.com/D92466
2020-10-07 21:21:20 +00:00
stransky 716c84bec1 Bug 1650583 [Linux/EGL] Use GLX Vsync source on GLX only, r=jgilbert
When GLX Vsync source is created along EGL contexts, NVIDIA drivers refuse to make any EGL content current.
So disable GLX Vsync source creation when EGL context is used.

Differential Revision: https://phabricator.services.mozilla.com/D87634
2020-09-03 09:02:29 +00:00
Noemi Erli 3403bbb58e Backed out 4 changesets (bug 1650583) for causing build bustages in rules.mk CLOSED TREE
Backed out changeset 033e491241b1 (bug 1650583)
Backed out changeset e6a03fea3aad (bug 1650583)
Backed out changeset b24be6b2d8cd (bug 1650583)
Backed out changeset bbb04547d367 (bug 1650583)
2020-09-03 02:33:34 +03:00
Martin Stransky f1073aabb4 Bug 1650583 [Linux/EGL] Use GLX Vsync source on GLX only, r=jgilbert
When GLX Vsync source is created along EGL contexts, NVIDIA drivers refuse to make any EGL content current.
So disable GLX Vsync source creation when EGL context is used.

Differential Revision: https://phabricator.services.mozilla.com/D87634
2020-09-02 20:17:21 +00:00
Jonathan Kew 67674b78cb Bug 1661570 - Allow webfonts to be used for emoji-default codepoints even if they don't provide color glyphs. r=m_kato
Differential Revision: https://phabricator.services.mozilla.com/D88578
2020-09-01 07:43:53 +00:00
Jonathan Kew 3c2cb7fd1a Bug 1371386 - Take account of requirements for emoji-style or text-style presentation during font selection & fallback. r=m_kato
Differential Revision: https://phabricator.services.mozilla.com/D87304
2020-08-26 09:31:58 +00:00
Mihai Alexandru Michis b162701621 Backed out changeset 0cad1ef724ee (bug 1371386) for causing failures in emoji-fallback-3.html
CLOSED TREE
2020-08-24 21:02:10 +03:00
Jonathan Kew ba87878325 Bug 1371386 - Take account of requirements for emoji-style or text-style presentation during font selection & fallback. r=m_kato
Differential Revision: https://phabricator.services.mozilla.com/D87304
2020-08-24 14:24:12 +00:00