Commit Graph

39465 Commits

Author SHA1 Message Date
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
Jonathan Kew
5aeb57227b Bug 1688596 - Updating character maps only needs to cause reflow if we've previously needed to request cmap coverage to support a font fallback search. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D102902
2021-01-25 18:25:42 +00:00
Jonathan Kew
313ad40981 Bug 1687622 - Activate fonts for additional language support from their new location on Big Sur. r=m_kato
Differential Revision: https://phabricator.services.mozilla.com/D102821
2021-01-25 17:25:19 +00:00
Jonathan Kew
743c0a6871 Bug 1687622 - Rewrite macOS version of GetCommonFallbackFonts to handle a lot more language fonts that ship with the OS. r=m_kato
Differential Revision: https://phabricator.services.mozilla.com/D102820
2021-01-25 17:19:23 +00: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
Mats Palmgren
b41a2b9d21 Bug 1687239 part 2 - Remove plugin support from layout/. r=emilio
Note that there's still a little plugin related code in
widget/ and gfx/ etc after this.  That can be removed
once we remove plugin support from dom/ etc.
The removal from layout/ should be pretty complete though.

Differential Revision: https://phabricator.services.mozilla.com/D102140
2021-01-25 11:53:49 +00:00
Lee Salzman
4dac9993b6 Bug 1688323 - refactor WR gradient shaders with gradient_shared. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D102813
2021-01-24 19:51:18 +00:00
Lee Salzman
cd4ccd90f8 Bug 1688303 - implement SWGL fast-path for cs_scale. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D102801
2021-01-22 23:23:22 +00:00
Lee Salzman
c738dc904e Bug 1688104 - support builtin clip-mask blending in SWGL. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D102701
2021-01-22 20:48:14 +00:00
Timothy Nikkel
bc32435029 Bug 1688086. Only dispatch a runnable to the main thread to notify it of vsync if there are main thread observers for it. r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D102693
2021-01-22 17:16:47 +00:00
stransky
0c7400ee46 Bug 1674473 [Linux] SW-WR Clear background when painting popup windows, r=lsalzman
Clear alpha from buffer before painting transparent windows by SW Webrender to avoid rendering artifacts.

Differential Revision: https://phabricator.services.mozilla.com/D102189
2021-01-20 21:11:48 +00:00
Jim Blandy
d45fbc5a22 Bug 1676554: Decide whether rectangles fall within rounded rectangles more accurately. r=gw
Under software WebRender, performance is substantially improved if we make the approximations in ClipItemKind::get_clip_result more accurate.

That function's job is to decide whether a primitive falls entirely inside a
clip, entirely outside it, or has regions of both. If the primitive is known to
fall entirely inside the clip, WebRender doesn't bother applying the clip to it.
This also saves WR the trouble of rendering the clip mask itself - which is what
the cs_rectangle_clip shader is spending a lot of time on when displaying these
pages.

Before this change, ClipItemKind::get_clip_result handles rounded rectangle clip
regions by computing an 'inner rect', a rectangle inset from the rounded
rectangle on each side by the relevant rounding radii. This is a correct
conservative approximation, but it means that any primitive that lies flush with
one of the flat sides of the clip is considered to only be partially within the
clip, and thus needs to have the clip mask applied - even though simple
rectangle intersection would serve.

With this change, instead of an 'inner rect', we approximate the rounded
rectangle by a rectangle with rectangular chunks taken out of each corner. This
lets us recognize more primitives as being fully within the clip, and apply the
clip mask less often.

Differential Revision: https://phabricator.services.mozilla.com/D102526
2021-01-21 03:59:25 +00:00
Mark Banner
9c69be2431 Bug 1685986 - Prepare to enable ESLint on gfx/wr/debugger/ where possible. r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D101334
2021-01-21 18:35:57 +00:00
Mark Banner
d5cb20e148 Bug 1685986 - Automatically fix ESLint issues in gfx/wr/debugger. r=mstange
This is fixing formatting (prettier) and dot-notation issues.

Differential Revision: https://phabricator.services.mozilla.com/D101333
2021-01-21 18:36:23 +00:00
Jeff Muizelaar
061b4b0ee9 Bug 1687856 - Remove unneeded Cargo.lock. r=kvark
I believe this was unintentionally added in bug 1637092.

Differential Revision: https://phabricator.services.mozilla.com/D102521
2021-01-21 15:41:03 +00:00
Lee Salzman
5c561b7b0f Bug 1686729 - flip source rect instead of dest. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D102513
2021-01-21 01:23:50 +00:00
Lee Salzman
8f06a347bd Bug 1687265 - clear out old SWGL framebuffer after frame ends. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D102493
2021-01-21 00:42:11 +00:00
Glenn Watson
d3caff4f5b Bug 1687814 - Add even more fuzziness for wrench raster-space reftest. r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D102502
2021-01-20 23:10:33 +00:00
Jeff Muizelaar
7f0fefed0c Bug 1687533 - Update Cargo.lock format. r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D102339
2021-01-20 22:42:35 +00:00
sotaro
d99c416a10 Bug 1684412 - Pass only valid rests to Present1() r=nical
Empty rect causes error on Present1().

Differential Revision: https://phabricator.services.mozilla.com/D101557
2021-01-20 22:28:50 +00:00
Dzmitry Malyshau
404511fd71 Bug 1561358 - Move WR storage module under prim_storage r=gw
the storage logic was made for, and used exclusively in, the prim_store.
Moving it into the sub-module and making it private allows for easier navigation in the code.

Differential Revision: https://phabricator.services.mozilla.com/D102494
2021-01-20 21:54:19 +00:00
sotaro
dc800277dd Bug 1687252 - Avoid crash on headless mode r=nical
On headless mode, widget is HeadlessWidget instead of nsWindow.

Differential Revision: https://phabricator.services.mozilla.com/D102384
2021-01-20 22:03:23 +00:00
Glenn Watson
779a4c7d39 Bug 1687814 - Update fuzziness for wrench raster-space reftest. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D102499
2021-01-20 21:57:22 +00:00
Lee Salzman
51df412a39 Bug 1687265 - try to avoid out-of-bounds ReadPixels. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D102479
2021-01-20 19:56:51 +00:00
Glenn Watson
c58d174a1e Bug 1687573 - Add no-op shadow primitives directly to parent prim list. r=nical
This removes another code path that was creating pass through
picture primitives.

Differential Revision: https://phabricator.services.mozilla.com/D102359
2021-01-20 19:31:48 +00:00
Jamie Nicol
9be8a0dec3 Bug 1687554 - Revert to using BGRA8 textures for non-subpixel AA glyphs. r=lsalzman
Bug 1685563 switched to using R8 textures instead of BGRA8 for
non-subpixel AA glyphs. This caused rendering issues on certain
android and linux devices, so switch back temporarily until those
issues are fixed.

Differential Revision: https://phabricator.services.mozilla.com/D102465
2021-01-20 19:25:10 +00:00
Lee Salzman
eec3f9ab02 Bug 1677927 - avoid some unnecessary anti-aliasing work in YUV shader SWGL fast-path. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D102462
2021-01-20 19:15:07 +00:00
Lee Salzman
e8b01389d1 Bug 1675590 - use the opaque gradient brush shader when no other features are required. r=nical
Differential Revision: https://phabricator.services.mozilla.com/D102387
2021-01-20 17:49:50 +00:00
Lee Salzman
2830a0ac8f Bug 1683084 - add SWGL fast-path for ps_split_composite shader. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D102444
2021-01-20 17:02:34 +00:00
Jeff Muizelaar
8dbf8556cb Bug 1687726 - Bool vectors are vectors. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D102435
2021-01-20 16:19:53 +00:00
Jamie Nicol
215a74be21 Bug 1687378 - Expire old picture cache tiles at the beginning of the frame. r=gw
Currently we expire old picture cache tiles at the end of the frame,
immediately before garbage collecting them. This means that new
textures have already been allocated for newly-created picture cache
tiles, so we often end up both allocating and destroying textures in
the same frame.

Instead, move the call to expire_old_picture_cache_tiles() to the
beginning of the frame. Picture cache tiles added to the cache during
the frame can then recylce these textures rather than allocate new
ones. Garbage collection still occurs at the end of the frame,
destroying freed textures that were not recycled.

Note that expire_old_picture_cache_tiles() frees picture cache tiles
which were unused in the *previous* as well as the current frame. This
is a legacy from when the function freed all types of texture cache
entries, and could be called throughout the frame. Immediately prior
to this change, it could in fact have just checked for usage during
the *current* frame, as the function was only called at the end of the
frame. However, as this change moves the call to the beginning of the
frame, we do actually now need to check for usage during
the *previous* frame.

Differential Revision: https://phabricator.services.mozilla.com/D102349
2021-01-20 08:52:39 +00:00
Jeff Gilbert
f4699b02fe Bug 1687438 - Bail if null iosurf for GLBlitHelper::BlitImage. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D102373
2021-01-20 01:49:32 +00:00
Jeff Gilbert
7d80634d28 Bug 1687231 - Make failures non-fatal in Nightly !DEBUG builds. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D102370
2021-01-20 01:35:31 +00:00
sotaro
aeb51e51a6 Bug 1687427 - Update display list when ExternalCompositing is changed r=mattwoodrow
When when TexutureHost's SupportsExternalCompositing is changed, display list needs to be updated.

Differential Revision: https://phabricator.services.mozilla.com/D102264
2021-01-19 21:42:57 +00:00
sotaro
b82da0489b Bug 1686974 - Add memory reporters to GPU process r=jrmuizel
On GPU Process gfxWindowsPlatform() is not created. Then some Windows specific memory reporters are not added in GPU Process.

Differential Revision: https://phabricator.services.mozilla.com/D102252
2021-01-19 14:11:20 +00:00
Brad Werth
f5e4b487c9 Bug 1686834: Increase the specificity of a release assert in NextSurfaceAsFramebuffer. r=jrmuizel
Some callers of NextSurface can tolerate a false return value. This moves the
release assert one level lower (more specific) towards
RenderCompositorNativeOGL::Bind, which can't handle a missing surface.

Differential Revision: https://phabricator.services.mozilla.com/D102344
2021-01-19 21:31:45 +00:00
Glenn Watson
7db4ab6160 Bug 1687409 - Use offscreen surface for backface visibility + non-preserve3d stacking contexts r=nical
Removes another case of pass through pictures, by handling the rare
case of a stacking context with backface-visibility: false that is
_not_ part of a 3d rendering context as an offscreen surface.

Differential Revision: https://phabricator.services.mozilla.com/D102251
2021-01-19 19:58:48 +00:00
Glenn Watson
8b93f9f4c5 Bug 1687394 - Simplify semantics of requested_raster_space. r=nical
Previously, it was possible to request a local/screen raster
space even if the owning stacking context didn't create an
offscreen surface.

This complicates various parts of the code, and also results
in a pass-through picture primitive being created (which we
want to remove as part of the work for #1684781).

With this change, it's only possible to change the raster space
when the enclosing stacking context creates an offscreen surface
for some other reason (e.g. 3d transform, filters etc).

Differential Revision: https://phabricator.services.mozilla.com/D102244
2021-01-19 19:59:14 +00:00
Jamie Nicol
3f25321970 Bug 1687312 - Expose gfx.feature.webrender probe to geckoview_streaming telemetry. r=jrmuizel,aosmond
We have noticed that a sizeable number of Fenix users are not getting
webrender when they should be. On desktop the existing
gfx.feature.webrender telemetry probe is used to determine why
webrender is not enabled. Expose this to geckoview_streaming telemetry
so we can tell the same for Fenix users.

Differential Revision: https://phabricator.services.mozilla.com/D102213
2021-01-18 22:39:24 +00:00
Jamie Nicol
82195ae5c3 Bug 1687312 - Fix typo in webrender feature failure string. r=aosmond
Differential Revision: https://phabricator.services.mozilla.com/D102211
2021-01-18 19:42:17 +00:00
Kartikaya Gupta
40fdf59f83 Bug 1686664 - Migrate helper_zoomed_pan.html to async/await style. r=botond
Depends on D102066

Differential Revision: https://phabricator.services.mozilla.com/D102067
2021-01-19 02:08:49 +00:00
Kartikaya Gupta
856d4196a1 Bug 1686664 - Migrate helper_touch_action_zero_opacity_bug1500864.html to async/await style. r=botond
Depends on D102065

Differential Revision: https://phabricator.services.mozilla.com/D102066
2021-01-19 00:27:32 +00:00
Kartikaya Gupta
fd18067a02 Bug 1686664 - Migrate helper_touch_action_complex.html to async/await style. r=botond
Depends on D102064

Differential Revision: https://phabricator.services.mozilla.com/D102065
2021-01-19 00:26:54 +00:00
Kartikaya Gupta
4b86501d5e Bug 1686664 - Migrate helper_touch_action.html to async/await style. r=botond
Depends on D102063

Differential Revision: https://phabricator.services.mozilla.com/D102064
2021-01-19 00:24:38 +00:00
Kartikaya Gupta
f895ed45a0 Bug 1686664 - Migrate helper_drag_scroll.html to async/await style. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D102063
2021-01-19 02:09:02 +00:00
Kartikaya Gupta
5d28a57bdf Bug 1686664 - Migrate helper_checkerboard_zoomoverflowhidden.html to async/await style. r=botond
Depends on D102061

Differential Revision: https://phabricator.services.mozilla.com/D102062
2021-01-18 23:50:43 +00:00
Kartikaya Gupta
e273549f5b Bug 1686664 - Migrate helper_bug1162771.html to async/await style. r=botond
Depends on D102060

Differential Revision: https://phabricator.services.mozilla.com/D102061
2021-01-18 23:46:36 +00:00
Kartikaya Gupta
8dd6723877 Bug 1666423 - Migrate helper_bug1271432.html to async/await style. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D102060
2021-01-18 23:25:28 +00:00
Sean Feng
708bd702d2 Bug 1682045 - Allow nsPresContext to store and release the last registered OneShotPostRefreshObserver r=smaug
OneShotPostRefreshObserver works as the caller registers it, and
let it deletes itself via the DidRefresh method. The issue is that
DidRefresh is not guaranteed to run, and it'll leak PresShell
if it doesn't run.

This patch allows nsPresContext to store and release the last
registered OneShotPostRefreshObserver, and converted the existing
usage of OneShotPostRefreshObserver to use that. So instead of asking
OneShotPostRefreshObserver to delete itself, we now ask nsPresContext
to release it.

Differential Revision: https://phabricator.services.mozilla.com/D99939
2021-01-18 19:23:10 +00:00
Hiroyuki Ikezoe
2ac3b069ae Bug 1685293 - Wait for a scroll event instead of a wheel event to make sure the wheel scroll position has been reflected on the main-thread. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D101402
2021-01-18 22:15:40 +00:00