Commit Graph

35175 Commits

Author SHA1 Message Date
Glenn Watson
3300072e99 Bug 1591529 - Reduce OS compositor tiles sizes to save GPU memory. r=kvark
(1) Reduce size of content tiles from 2048 x 512 to 1024 x 512.

  This reduces the large extra overhead of tiles on screens that
  are not 4k resolution.

(2) Remove small 128 x 128 tiles.

  These typically create a lot of OS compositor surfaces, which
  adds significant overhead on some platforms. Having them be
  normal content tiles also means no resizing of the picture
  cache for the UI when the awesome bar and/or status bar is on.

(3) Add support for very narrow cache surfaces.

  This is a special use case for scrollbar caches. It's worth
  supporting this special case for the significant memory and
  performance savings for these surfaces.

Differential Revision: https://phabricator.services.mozilla.com/D51541

--HG--
extra : moz-landing-system : lando
2019-11-04 05:53:31 +00:00
Andreea Pavel
0d0fd1b7e8 Backed out changeset 3a6ca30f318e (bug 1593094) for wrench bustages on a CLOSED TREE 2019-11-04 05:51:33 +02:00
Dan Glastonbury
7acec510f1 Bug 1561179 - P6: Handle shutdown of the GPU process and reconnect PVideoBridge. r=mattwoodrow
Add an observer to restart the PVideoBridge connection when GPU process
restarts.

Differential Revision: https://phabricator.services.mozilla.com/D50403

--HG--
extra : moz-landing-system : lando
2019-11-04 03:42:01 +00:00
Dan Glastonbury
b1baf91ae9 Bug 1561179 - P5: Remove separate VideoBridgeChild Singletons. r=mattwoodrow
Combine sVideoBridgeToParentProcess and sVideoBridgeToGPUProcess into one
sVideoBridge. Each producing process, GPU or RDD, is only ever started with one
VideoBridgeChild endpoint. This is enough to get RemoteVideoDecoders in RDD
process to start using GPU memory to send video to compositor over PVideoBridge.

Differential Revision: https://phabricator.services.mozilla.com/D50402

--HG--
extra : moz-landing-system : lando
2019-11-04 03:41:59 +00:00
Dan Glastonbury
3332a9ad27 Bug 1561179 - P4: Create PVideoBridge between RDDProcess and GPUProcess. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D50401

--HG--
extra : moz-landing-system : lando
2019-11-04 03:41:57 +00:00
Dan Glastonbury
35da282560 Bug 1561179 - P2: Rename VideoBridge methods and members. r=mattwoodrow
To bring the naming more inline with ImageBridge.

Differential Revision: https://phabricator.services.mozilla.com/D50399

--HG--
extra : moz-landing-system : lando
2019-11-04 03:41:47 +00:00
Dan Glastonbury
45381819c6 Bug 1561179 - P1: Enable the creation of multiple VideoBridgeParent actors. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D50398

--HG--
extra : moz-landing-system : lando
2019-11-04 03:41:45 +00:00
Jeff Muizelaar
42e881bed5 Bug 1593094. Add glyph flashing pref. r=kvark
This makes it easier to debug glyph rasterization issues

Differential Revision: https://phabricator.services.mozilla.com/D51310

--HG--
extra : moz-landing-system : lando
2019-11-01 15:41:49 +00:00
sotaro
34a65d16bb Bug 1575159 - Implement partial invalidation on Windows r=gw
Partial present for WR is off by default.

Differential Revision: https://phabricator.services.mozilla.com/D51358

--HG--
extra : moz-landing-system : lando
2019-11-03 10:57:03 +00:00
Glenn Watson
3de743de9b Bug 1592417 - Reduce work done when picture cache tiles are inside the display port but not currently visible. r=nical
Previously, WR needed to update and track dependencies for all
allocated picture cache tiles in the virtual display port. This
means doing extra CPU work (dependency updates) and in some cases,
extra GPU work (larger off-screen child surfaces) than are strictly
required.

With this patch, each tile determines if it is currently visible in
pre_update. If the tile isn't visible, we skip doing dependency
updates until it is on screen again. More importantly, this is
used to reduce the world culling rect for primitive preparation,
which also means large child surfaces only require allocations
large enough to enclose the visible tiles, rather than the
display port.

Differential Revision: https://phabricator.services.mozilla.com/D51006

--HG--
extra : moz-landing-system : lando
2019-11-03 03:38:57 +00:00
Botond Ballo
e8e4a8641f Bug 1586496 - Add a gtest. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D51480

--HG--
extra : moz-landing-system : lando
2019-11-01 23:00:42 +00:00
Botond Ballo
d1c15f9836 Bug 1586496 - If two taps are close in time but far in distance, still allow the second one to start a gesture. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D51479

--HG--
extra : moz-landing-system : lando
2019-11-01 23:00:33 +00:00
Botond Ballo
65d96709fd Bug 1592902 - Extend gtest to cover this scenario. r=tnikkel
Depends on D51448

Differential Revision: https://phabricator.services.mozilla.com/D51449

--HG--
extra : moz-landing-system : lando
2019-11-01 21:48:09 +00:00
Botond Ballo
298f088ed3 Bug 1592902 - Include the TOUCHING state in CanHandleScrollOffsetUpdate(). r=tnikkel
Otherwise, a main-thread update can interrupt a touch drag near its very
start, when we're still in the TOUCHING state while we're overcoming the
touch start tolerance threshold.

Depends on D51447

Differential Revision: https://phabricator.services.mozilla.com/D51448

--HG--
extra : moz-landing-system : lando
2019-11-01 21:48:07 +00:00
Botond Ballo
09b6ec344e Bug 1592902 - Use ShouldCancelAnimationForScrollUpdate() for visual scroll updates as well. r=tnikkel
Depends on D51446

Differential Revision: https://phabricator.services.mozilla.com/D51447

--HG--
extra : moz-landing-system : lando
2019-11-01 21:36:23 +00:00
Botond Ballo
e147a7700d Bug 1592902 - Factor out a ShouldCancelAnimationForScrollUpdate() helper. r=tnikkel
Depends on D51445

Differential Revision: https://phabricator.services.mozilla.com/D51446

--HG--
extra : moz-landing-system : lando
2019-11-01 21:26:51 +00:00
Botond Ballo
f389ad5cf6 Bug 1592902 - Add some logging. r=tnikkel
Differential Revision: https://phabricator.services.mozilla.com/D51445

--HG--
extra : moz-landing-system : lando
2019-11-01 20:55:09 +00:00
sotaro
253cc9eb1e Bug 1573710 - Trigger composite after SetParent() r=Gankro
The patch permits to resize compositor window's size after ::SetParent() call to prevent a conflict between ::SetParent() and ::SetWindowPos(). Then it triggers a composite after SetParent() call to resize compositor window correctly.

Differential Revision: https://phabricator.services.mozilla.com/D49884

--HG--
extra : moz-landing-system : lando
2019-11-01 11:01:34 +00:00
Jamie Nicol
b35d194fe6 Bug 1591945 - Ensure strings passed to glShaderSource are null-terminated on android emulator. r=gw
The emulator's implementation of glShaderSource can crash if the source string
are not null-terminated, even though we correctly pass the lengths of the
strings. Work around this by adding a null terminator when running on the
emulator.

Depends on D51293

Differential Revision: https://phabricator.services.mozilla.com/D51294

--HG--
extra : moz-landing-system : lando
2019-10-31 19:09:23 +00:00
Jamie Nicol
0fa5e56eb1 Bug 1591436 - Avoid using glTexImage3D on android emulator. r=gw
A bug in the android emulator means that glTexImage3D thinks the maximum texture
size is the value of GL_MAX_TEXTURE_SIZE, rather than the value returned by
glGetIntegerv(GL_MAX_TEXTURE_SIZE). This means that calls to glTexImage3D fail
when width, height, or depth > 3379.

This forces us to use glTexStorage3D instead of glTexImage3D, avoiding
this bug. This relies upon swizzling, which is indeed supported on the
android emulator.

Differential Revision: https://phabricator.services.mozilla.com/D51293

--HG--
extra : moz-landing-system : lando
2019-10-31 19:08:37 +00:00
Jonathan Kew
4114aeff1a Bug 1587385 - Give a better info (not error) message if a webfont is not used because of font-display timeout. r=heycam
This is not an error in the same way as a download failure, and should not be reported as one.
An Info message is sufficient.

Also suppress "unknown" location in messages about @font-face rules, as it is not useful,
pending a proper fix (bug 1450903).

Differential Revision: https://phabricator.services.mozilla.com/D50346

--HG--
extra : moz-landing-system : lando
2019-11-01 08:54:05 +00:00
Glenn Watson
9e558efb0a Bug 1593154 - Fix semantics of partial present API for webrender. r=sotaro
- When partial present is not valid, ensure that a single dirty
   rect the entire size of the framebuffer is returned.
 - Ensure that we never return an empty dirty rect. If nothing is
   dirty, the returned dirty rects array is empty, which can be
   used by the client to completely skip calling Present.
 - Remove partial present Multi mode (for now). This mode has
   some issues with overlapping tiles which can be resolved as
   a follow up.

This should allow enabling partial present for a single dirty rect,
which covers most common cases. We can re-implement the more
complicated Multi partial present mode if / when we find pages
where supporting multiple partial present rects is a good win.

Differential Revision: https://phabricator.services.mozilla.com/D51332

--HG--
extra : moz-landing-system : lando
2019-11-01 02:03:41 +00:00
Boris Chiou
29378ebb46 Bug 1429305 - Cache gfx path. r=hiro
We cache the path in AnimationInfo for layers, and in
CompsoitorAnimationStorage for web-renderer.

Differential Revision: https://phabricator.services.mozilla.com/D50013

--HG--
extra : moz-landing-system : lando
2019-10-31 21:36:39 +00:00
Boris Chiou
d546797708 Bug 1429305 - Add new layer messages for passing motion path info. r=hiro,mattwoodrow
This also includes the implementation of SetAnimatable, FromAnimatable,
and merge the final matrix with motion path.

Besides, we always use PathBuilderSkia for calculating the gfx::Path for
web-renderer.

Differential Revision: https://phabricator.services.mozilla.com/D50011

--HG--
extra : moz-landing-system : lando
2019-10-31 20:07:41 +00:00
Boris Chiou
58ba6b888a Bug 1429305 - Use serde to serialize LengthPercentage and StyleRayFunction. r=emilio
We need to pass these two types into the compositor, so we need a better
way to serialize these rust types. We use serde and bincode to
serialize/deserialize them, and use ByteBuf to pass the &[u8] data
through IPC. We define StyleVecU8 for FFI usage only.

Differential Revision: https://phabricator.services.mozilla.com/D50688

--HG--
extra : moz-landing-system : lando
2019-10-31 21:35:05 +00:00
Jonathan Kew
97acebe64f Bug 1588993 - Don't send InitOtherFamilyNames IPC message from a stylo thread; post a runnable to the main thread instead. r=jwatt
Differential Revision: https://phabricator.services.mozilla.com/D50745

--HG--
extra : moz-landing-system : lando
2019-10-31 14:41:15 +00:00
Botond Ballo
69b505220a Bug 1592435 - Add a gtest. r=tnikkel
Depends on D51202

Differential Revision: https://phabricator.services.mozilla.com/D51203

--HG--
extra : moz-landing-system : lando
2019-10-31 01:07:11 +00:00
Botond Ballo
d9fa524033 Bug 1592435 - Don't allow a main thread scroll update to interrupt a touch-drag gesture. r=tnikkel
This makes the behaviour for touch-drags match the behaviour we already have
for pan gesture events.

Depends on D51201

Differential Revision: https://phabricator.services.mozilla.com/D51202

--HG--
extra : moz-landing-system : lando
2019-10-31 01:06:14 +00:00
Botond Ballo
4525952bde Bug 1592435 - Avoid a shutdown-crash during gtests. r=tnikkel
This is unrelated to this bug, I just ran into it while running the tests.

Differential Revision: https://phabricator.services.mozilla.com/D51201

--HG--
extra : moz-landing-system : lando
2019-10-31 01:02:08 +00:00
Jonathan Kew
c4066adb6d Bug 1592762 - Update clamped range of font-weight in the gfxFontStyle constructor to match new range allowed in CSS Fonts 4. r=jwatt
Differential Revision: https://phabricator.services.mozilla.com/D51196

--HG--
extra : moz-landing-system : lando
2019-10-31 10:51:44 +00:00
Glenn Watson
acad28be56 Bug 1592891 - Disable picture caching when picture caches have complex transforms. r=kvark,nical
With the recent changes to compositing in WR, the scene must either
only produce produce cache tiles, or disable picture caching and
rasterize directly.

This patch removes the (currently broken) path where WR would attempt
to disable only the picture cache slice(s) that have a complex
transform.

In future, we should disable creating picture cache slices with
complex transforms at the API level, and remove this path completely.

Differential Revision: https://phabricator.services.mozilla.com/D51228

--HG--
extra : moz-landing-system : lando
2019-10-31 19:53:44 +00:00
Glenn Watson
58f5afc93f Bug 1592840 - Fix panic in wrench when replaying the display list. r=ktaeleman,kvark
Differential Revision: https://phabricator.services.mozilla.com/D51206

--HG--
extra : moz-landing-system : lando
2019-10-31 17:47:00 +00:00
Lee Salzman
837795afbf Bug 1592293 - add gfx.text.subpixel-position.force-enabled and force-disabled prefs. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D50996

--HG--
extra : moz-landing-system : lando
2019-10-31 13:39:12 +00:00
Bob Owen
7f134b8750 Bug 1585073: In CanvasEventRingBuffer, check stream is good before waiting for space or data. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D51116

--HG--
extra : moz-landing-system : lando
2019-10-31 13:44:32 +00:00
sotaro
4404c0826a Bug 1591004 - First pass of OS compositor implementation on Windows r=gw
This implementation is off by default (behind gfx.webrender.compositor) until various bugs and inefficiencies are fixed.

Differential Revision: https://phabricator.services.mozilla.com/D51034

--HG--
extra : moz-landing-system : lando
2019-10-31 11:59:17 +00:00
Glenn Watson
5ee706e95f Bug 1592810 - Add support for dynamically disabling picture caching, for pinch zoom cases. r=nical
This patch allows WR to dynamically choose whether picture caching
is enabled per-frame, rather than only during initialization.

This will allow mobile devices to disable picture caching during
pinch zoom events, where tiles will be constantly invalidated.

This can also be controlled via a debug flag, which allows dynamic
toggling of picture caching in both Gecko and Wrench. This is
useful for profiling, to compare direct rasterization to picture
caching performance.

The native compositor interface relies on picture caching. So, if
a native compositor is enabled, picture caching is force enabled.

Differential Revision: https://phabricator.services.mozilla.com/D51211

--HG--
extra : moz-landing-system : lando
2019-10-31 08:38:01 +00:00
Jonathan Kew
0ba1edfcec Bug 1581822 - Try Chinese font prefs before Japanese when no locale hint is found, to reduce chance of ransom-note font mixtures. r=m_kato,masayuki,emk
Differential Revision: https://phabricator.services.mozilla.com/D50947

--HG--
extra : moz-landing-system : lando
2019-10-31 08:50:12 +00:00
Razvan Maries
cdb80ead85 Backed out 6 changesets (bug 1561179) for perma fails on browser_timeout_throttling_with_audio_playback.js. CLOSED TREE
Backed out changeset 5d8059472045 (bug 1561179)
Backed out changeset 90c207dd2cc2 (bug 1561179)
Backed out changeset e90af73ef3c4 (bug 1561179)
Backed out changeset 4678da971197 (bug 1561179)
Backed out changeset 55340b999a4e (bug 1561179)
Backed out changeset 4037cce56491 (bug 1561179)
2019-10-31 03:21:24 +02:00
Matt Woodrow
3e416cba64 Bug 1592849 - Add MOZ_LOG support to CrossProcessPaint. r=jya
Differential Revision: https://phabricator.services.mozilla.com/D51036

--HG--
extra : moz-landing-system : lando
2019-10-31 00:08:47 +00:00
Dan Glastonbury
1d885fe71e Bug 1561179 - P6: Handle shutdown of the GPU process and reconnect PVideoBridge. r=mattwoodrow
Add an observer to restart the PVideoBridge connection when GPU process
restarts.

Differential Revision: https://phabricator.services.mozilla.com/D50403

--HG--
extra : moz-landing-system : lando
2019-10-30 23:48:54 +00:00
Dan Glastonbury
c1e3f71ce3 Bug 1561179 - P5: Remove separate VideoBridgeChild Singletons. r=mattwoodrow
Combine sVideoBridgeToParentProcess and sVideoBridgeToGPUProcess into one
sVideoBridge. Each producing process, GPU or RDD, is only ever started with one
VideoBridgeChild endpoint. This is enough to get RemoteVideoDecoders in RDD
process to start using GPU memory to send video to compositor over PVideoBridge.

Differential Revision: https://phabricator.services.mozilla.com/D50402

--HG--
extra : moz-landing-system : lando
2019-10-30 23:48:33 +00:00
Dan Glastonbury
23be69d49c Bug 1561179 - P4: Create PVideoBridge between RDDProcess and GPUProcess. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D50401

--HG--
extra : moz-landing-system : lando
2019-10-30 23:48:31 +00:00
Dan Glastonbury
86ccdef1b0 Bug 1561179 - P2: Rename VideoBridge methods and members. r=mattwoodrow
To bring the naming more inline with ImageBridge.

Differential Revision: https://phabricator.services.mozilla.com/D50399

--HG--
extra : moz-landing-system : lando
2019-10-30 23:48:27 +00:00
Dan Glastonbury
a98be7dd62 Bug 1561179 - P1: Enable the creation of multiple VideoBridgeParent actors. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D50398

--HG--
extra : moz-landing-system : lando
2019-10-30 23:48:25 +00:00
Glenn Watson
0c98790154 Bug 1591627 - Add support for specifying surface opacity to OS compositor interface. r=mstange,kvark
Differential Revision: https://phabricator.services.mozilla.com/D51033

--HG--
extra : moz-landing-system : lando
2019-10-30 20:49:44 +00:00
Razvan Maries
ee9116f875 Backed out changeset 598b2d26c136 (bug 1591627) as per Glenn's request. CLOSED TREE 2019-10-30 22:05:32 +02:00
Glenn Watson
207356d08d Bug 1591627 - Add support for specifying surface opacity to OS compositor interface. r=mstange,kvark
Differential Revision: https://phabricator.services.mozilla.com/D51033

--HG--
extra : moz-landing-system : lando
2019-10-30 18:05:49 +00:00
Lee Salzman
655f204d2f Bug 1591996 - update Skia to m79. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D50860

--HG--
rename : gfx/skia/skia/include/private/SkArenaAlloc.h => gfx/skia/skia/src/core/SkArenaAlloc.h
rename : gfx/skia/skia/include/private/SkLeanWindows.h => gfx/skia/skia/src/core/SkLeanWindows.h
rename : gfx/skia/skia/include/core/SkTLazy.h => gfx/skia/skia/src/core/SkTLazy.h
rename : gfx/skia/skia/include/private/SkTSearch.h => gfx/skia/skia/src/core/SkTSearch.h
rename : gfx/skia/skia/include/gpu/GrBlend.h => gfx/skia/skia/src/gpu/GrBlend.h
rename : gfx/skia/skia/include/private/GrColor.h => gfx/skia/skia/src/gpu/GrColor.h
rename : gfx/skia/skia/include/private/GrSkSLFPFactoryCache.h => gfx/skia/skia/src/gpu/GrSkSLFPFactoryCache.h
rename : gfx/skia/skia/src/gpu/GrPathUtils.cpp => gfx/skia/skia/src/gpu/geometry/GrPathUtils.cpp
rename : gfx/skia/skia/src/gpu/GrPathUtils.h => gfx/skia/skia/src/gpu/geometry/GrPathUtils.h
rename : gfx/skia/skia/src/gpu/GrShape.cpp => gfx/skia/skia/src/gpu/geometry/GrShape.cpp
rename : gfx/skia/skia/src/gpu/GrShape.h => gfx/skia/skia/src/gpu/geometry/GrShape.h
extra : moz-landing-system : lando
2019-10-28 22:06:48 +00:00
Lee Salzman
de81af2605 Bug 1591996 - remove unused Skia Vulkan compute API. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D50859

--HG--
extra : moz-landing-system : lando
2019-10-28 21:36:18 +00:00
Lee Salzman
f11e330118 Bug 1591996 - remove unused Skia OpenCL compute API. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D50858

--HG--
extra : moz-landing-system : lando
2019-10-28 21:36:52 +00:00