Commit Graph

918 Commits

Author SHA1 Message Date
Glenn Watson
1dff77fb01 Bug 1559979 - Restructure the WR picture caching code into Tile methods. r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D40916

--HG--
extra : moz-landing-system : lando
2019-08-11 23:52:35 +00:00
Noemi Erli
574227704c Backed out 2 changesets (bug 1573039) for wrench bustages CLOSED TREE
Backed out changeset 97601fb2425d (bug 1573039)
Backed out changeset 2b68d7bddbb6 (bug 1573039)

--HG--
rename : third_party/rust/image/src/hdr/decoder.rs => third_party/rust/image/src/hdr/hdr_decoder.rs
rename : third_party/rust/image/src/hdr/encoder.rs => third_party/rust/image/src/hdr/hdr_encoder.rs
2019-08-12 00:47:12 +03:00
Bastien Orivel
e8d58bb4c6 Bug 1573039 - Part 1: Update image to 0.22. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D41488

--HG--
extra : moz-landing-system : lando
2019-08-11 20:41:20 +00:00
Glenn Watson
be3904b49e Bug 1572197 - Fix world clip region for preserve-3d items with picture caching. r=emilio
When adding planes to the plane splitter, we supply a world clip
rect to the polygon clipper. Generally this is used to help with
float accuracy issues, but it also clips polygons to the visible
region.

The previous code supplied the visible world rect, but this is
not always correct. When drawing picture cache tiles, we may
be rendering to a tile that is partially off-screen. In this case
we need to pass the combined world dirty rect, which is inflated
to include the off-screen tile parts that are being drawn. This
ensures that preserve-3d items are correctly clipped to the tile
boundaries rather than the currently visible screen rect.

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

--HG--
extra : moz-landing-system : lando
2019-08-08 04:49:09 +00:00
Dzmitry Malyshau
bfc2204e14 Bug 1572197 - Plane split dependency update
updates for https://github.com/servo/plane-split/pull/33

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

--HG--
extra : moz-landing-system : lando
2019-08-09 14:41:49 +00:00
Nicolas Silva
01481c8d58 Bug 1570543 - Fix incorrect batch index after merging batches. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D41166

--HG--
extra : moz-landing-system : lando
2019-08-09 03:50:47 +00:00
Dzmitry Malyshau
36fe1b9594 Bug 1567577 - Make WR to have multiple array textures for the shared cache r=gw
have texture cache to manage potentially multiple array textures of each type.

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

--HG--
extra : moz-landing-system : lando
2019-08-06 22:48:27 +00:00
sotaro
6abb9c3532 Bug 1570593 - Do not use ResourceCache::is_image_active() with multiple documents r=gw
Differential Revision: https://phabricator.services.mozilla.com/D40169

--HG--
extra : moz-landing-system : lando
2019-08-04 21:40:13 +00:00
Lee Salzman
4f06706e18 Bug 1569950 - only partially clear WR glyph caches if it is not necessary to fully clear. r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D40361

--HG--
extra : moz-landing-system : lando
2019-08-02 15:11:47 +00:00
Dzmitry Malyshau
94761858ca Bug 1564118 - WR don't assume opaque on the lack of a clip task
those unwrap_or are mostly seen during the batching, where we should asssume that
the primitives are not clipped out and just unwrap() accordingly.

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

--HG--
extra : moz-landing-system : lando
2019-08-02 14:48:46 +00:00
Dzmitry Malyshau
d109b775bd Bug 1570816 - Disallow nerest-sampled alpha textures in the shared cache in WR r=gw
Differential Revision: https://phabricator.services.mozilla.com/D40366

--HG--
extra : moz-landing-system : lando
2019-08-02 04:03:55 +00:00
Dzmitry Malyshau
13c8d55d12 Bug 1570401 - WR early out on transformed ClipOut clips r=gw
Refactors get_clip_result_complex to cover ClipOut cases for rectangles as well
as Clip for non-repeated images.

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

--HG--
extra : moz-landing-system : lando
2019-08-01 02:07:21 +00:00
Dzmitry Malyshau
4d7909d785 Bug 1548339 - WR swizzle configuration of texture units r=gw
Allow the swizzle to be configurable with a texture binding. This is still experimental and needs to be tested well on all platforms.
Basic approach is the following:
  - WR device figures out how it can use BGRA and makes the texture cache format configurable at run-time. It tries to make the uploads to the shared texture cache pages to be done without any driver conversions, and without extra memory allocated.
  - it also reports the preferred input format for the images, which may be different from the texture cache format
  - if WR texture cache is asked to allocate a shared texture with a different (swizzled) format from the preferred, it associates the cache entry with a swizzle
  - the swizzle becomes a part of the `SourceTexture`, which affects batch splitting
  - when a texture reaches binding by GL device, it checks whether the current swizzle on this texture doesn't match the given one, and configures the texture sampling accordingly
  - we can't use blits with swizzling, so when that needs to happen we use `cs_copy` path, which is now mostly rewritten

The idea is that Gecko would ask WR for the preferred format and configure its image decoding to produce image data that doesn't require any swizzling.

The PR changes existing texture upload (and batching) paths. On Linux, if texture storage is available, we now use it and provide the data as RGBA, assuming no conversion by the driver. The swizzling kicks in when we sample this data in the shader. On Windows/Angle we use BGRA as an internal format for texture cache and expect Gecko to provide BGRA data, this should be unchanged.

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

--HG--
extra : moz-landing-system : lando
2019-07-26 14:55:50 +00:00
Timothy Nikkel
e4f60aaea0 Bug 1565039. In PicturePrimitive::take_context do calculation in float in case the unclipped rect is too big for int. r=gw
The final clipped result should hopefully not overflow.

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

--HG--
extra : moz-landing-system : lando
2019-07-30 09:06:31 +00:00
Dzmitry Malyshau
3692691268 Bug 1569717 - Fix WR vertex textures to have the width of 1024 r=gw
Differential Revision: https://phabricator.services.mozilla.com/D39785

--HG--
extra : moz-landing-system : lando
2019-07-29 23:07:37 +00:00
Barret Rennie
7629463ab1 Bug 1569443 - Free composition recorder structures when freeing Renderer r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D39752

--HG--
extra : rebase_source : b6e51714655a99fc80ea034c598e44667d1ae1fb
extra : source : e7cba26781e9e2bf66f84d9c9f4aa507be6d25bf
2019-07-29 21:25:04 +00:00
Connor Brewster
44d6e0ec22 Bug 1569101 - Add red zone padding to built display list during deserialization r=kamidphish
Differential Revision: https://phabricator.services.mozilla.com/D39464

--HG--
extra : rebase_source : 40e6b4c96be31c27c0379bf5e458a7b71a3901d6
2019-07-29 00:33:11 +00:00
Cosmin Sabou
4fefee3bd7 Backed out changeset e7cba26781e9 (bug 1569443) for causing webrender bustages. CLOSED TREE 2019-07-30 01:04:49 +03:00
Barret Rennie
bacd83c5c1 Bug 1569443 - Free composition recorder structures when freeing Renderer r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D39752

--HG--
extra : moz-landing-system : lando
2019-07-29 21:25:04 +00:00
shindli
2311ab23b6 Backed out changeset bdb7f8baac7e (bug 1569101) for causing wrench bustages in /builds/worker/workspace/build/tooltool.tt 2019-07-29 04:53:11 +03:00
Connor Brewster
f74585e5e5 Bug 1569101 - Add red zone padding to built display list during deserialization r=kamidphish
Differential Revision: https://phabricator.services.mozilla.com/D39464

--HG--
extra : moz-landing-system : lando
2019-07-29 00:33:11 +00:00
Jean-Yves Avenard
1616a6d914 Bug 1543359 - P14. Fix "Wrench" test r=nical
Differential Revision: https://phabricator.services.mozilla.com/D39475

--HG--
extra : moz-landing-system : lando
2019-07-26 09:32:37 +00:00
Jean-Yves Avenard
de19fb7f7e Bug 1543359 - P6. Add backend for color range information. r=mattwoodrow.
Add code for YCbCr buffer and IOSurface backend.

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

--HG--
extra : moz-landing-system : lando
2019-07-26 08:45:31 +00:00
Narcis Beleuzu
a4274bd868 Backed out changeset 4bf222be42c8 (bug 1543359) wrench bustages. CLOSED TREE 2019-07-26 11:51:00 +03:00
Jean-Yves Avenard
c2672a7a6a Bug 1543359 - P14. Fix "Wrench" test on a CLOSED TREE
Differential Revision: https://phabricator.services.mozilla.com/D39475

--HG--
extra : moz-landing-system : lando
2019-07-26 06:55:11 +00:00
Narcis Beleuzu
e84980d8b1 Backed out 15 changesets (bug 1543359) for wrench bustages on image.rs . CLOSED TREE
Backed out changeset 548006270186 (bug 1543359)
Backed out changeset c9585e9d9f3c (bug 1543359)
Backed out changeset 1c7ca95a2a9b (bug 1543359)
Backed out changeset d742d80b892f (bug 1543359)
Backed out changeset 210eee703fd9 (bug 1543359)
Backed out changeset 4eb933d55d88 (bug 1543359)
Backed out changeset fb9b71ed9f4b (bug 1543359)
Backed out changeset 98b968443458 (bug 1543359)
Backed out changeset a85bd4691bea (bug 1543359)
Backed out changeset b576317853e9 (bug 1543359)
Backed out changeset 095bca5c9b1a (bug 1543359)
Backed out changeset 48eb0ebf9f2e (bug 1543359)
Backed out changeset b22b0eb708b8 (bug 1543359)
Backed out changeset 52187d9320b1 (bug 1543359)
Backed out changeset fa6792c1c2e8 (bug 1543359)
2019-07-26 11:40:33 +03:00
Jean-Yves Avenard
88ca735e1d Bug 1543359 - P14. Fix "Wrench" test. a=wrench-fix CLOSED TREE 2019-07-26 10:24:47 +03:00
Jean-Yves Avenard
37515d5cc9 Bug 1543359 - P6. Add backend for color range information. r=mattwoodrow.
Add code for YCbCr buffer and IOSurface backend.

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

--HG--
extra : moz-landing-system : lando
2019-07-26 06:13:37 +00:00
Cosmin Sabou
ae7e8fbf55 Backed out 14 changesets (bug 1543359) for causing build bustages. CLOSED TREE
Backed out changeset 87c99ef85813 (bug 1543359)
Backed out changeset cd0afc5758ba (bug 1543359)
Backed out changeset 101ac87ff017 (bug 1543359)
Backed out changeset 348e748e3451 (bug 1543359)
Backed out changeset d9e937f5caf4 (bug 1543359)
Backed out changeset 2f4eb6501552 (bug 1543359)
Backed out changeset 0d316ef8c668 (bug 1543359)
Backed out changeset bf238b58c694 (bug 1543359)
Backed out changeset 496f206d03d6 (bug 1543359)
Backed out changeset 7c3a1f23baa8 (bug 1543359)
Backed out changeset 90fff717198b (bug 1543359)
Backed out changeset b2ce591ca398 (bug 1543359)
Backed out changeset a63968f077e3 (bug 1543359)
Backed out changeset ca660ab1e0c1 (bug 1543359)
2019-07-26 07:39:11 +03:00
Jean-Yves Avenard
63be56621d Bug 1543359 - P6. Add backend for color range information. r=mattwoodrow.
Add code for YCbCr buffer and IOSurface backend.

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

--HG--
extra : moz-landing-system : lando
2019-07-22 08:24:30 +00:00
Jamie Nicol
bdf491aa7e Bug 1565827 - Ensure glReadPixels for profiler screenshots happens asynchronously. r=kvark
The glReadPixels call for capturing profiler screenshots is very slow
on Adreno devices. Similarly to bug 1498732, this is because the
stride of the data being transferred is not a multiple of 256, so the
driver is taking the synchronous path instead of reading in to a PBO
asynchronously.

This solves this problem by increasing the width of the area we read
so that we hit the fast path. To do this we must ensure that the PBO
and the final scale-down texture are large enough to include the extra
pixels in each row. As the required size of the PBO or texture may now
change, for example after a screen rotation, we now handle deleting
and recreating them when necessary.

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

--HG--
extra : moz-landing-system : lando
2019-07-25 15:44:36 +00:00
Alexis Beingessner
e64ad7178d Bug 1568395 - Add more useful error messages to webrender_api. r=kamidphish
Differential Revision: https://phabricator.services.mozilla.com/D39236

--HG--
extra : moz-landing-system : lando
2019-07-24 22:55:51 +00:00
Lee Salzman
5169a21347 Bug 1553818 - use GDI ClearType contrast for GDI font gamma. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D39101

--HG--
extra : moz-landing-system : lando
2019-07-24 18:51:28 +00:00
Nicolas Silva
c6f3b2b7d7 Bug 1568158 - Show the maximum time over the averaging window in WebRender's builtin profiler. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D38986

--HG--
extra : moz-landing-system : lando
2019-07-23 23:14:52 +00:00
Dzmitry Malyshau
632e984f71 Bug 1548339 - Fix WR saved alpha task sampling r=gw
looks like a typo that got unnoticed? I wonder how our alpha saved tasks work today :)

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

--HG--
extra : moz-landing-system : lando
2019-07-23 23:14:35 +00:00
Glenn Watson
0129dacbea Bug 1566901 - Make picture caching more robust to float issues. r=kvark,nical
This patch fixes a couple of picture caching issues that could
cause more invalidations than required. Specifically:

* Ensure the viewport rect is included in child surfaces, so
  that redundant clips are filtered out correctly.
* Use epsilon comparisons where appropriate for tile descriptor
  comparisons, to avoid invalidations due to float inaccuracies.

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

--HG--
extra : moz-landing-system : lando
2019-07-22 20:35:37 +00:00
Glenn Watson
be4cf10770 Bug 1567472 - Fix bug in preserve-3d batching code in WebRender. r=nical
The code to batch preserve-3d elements was incorrectly using the
bounds and visibility mask from the parent element. This could
result in batching bugs in some cases, which were showing up as
draw order issues.

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

--HG--
extra : moz-landing-system : lando
2019-07-22 13:30:55 +00:00
Csoregi Natalia
b11f89739a Merge mozilla-central to mozilla-inbound. CLOSED TREE 2019-07-19 12:50:23 +03:00
Lee Salzman
e4e9e844a0 Bug 1565158 - allow forcing DWrite symmetric rendering mode. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D38569

--HG--
extra : moz-landing-system : lando
2019-07-19 03:56:50 +00:00
Glenn Watson
210d499332 Bug 1566712 - Fix quality issues with picture caching when the transform has a fractional offset. r=kvark
This patch reverts the previous attempted fix for snapping issues
with picture caching, and implements a better solution.

This fixes the main visual issue by ensuring that any fractional
offset in the root transform is accounted for by:

 * Offsetting the tile rects by this amount, so that the content
   origin is a whole device pixel.
 * Invalidating all tiles if the fractional part of the root
   transform changes. This is required since it can affect the
   snapping logic that WR applies. Fortunately, this occurs
   very rarely - Gecko typically has a constant fractional part
   for each page.

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

--HG--
extra : moz-landing-system : lando
2019-07-19 04:29:21 +00:00
Nicolas Silva
a58ba90d31 Bug 1567241 - Update to euclid 0.20. r=kvark, emilio.
Differential Revision: https://phabricator.services.mozilla.com/D38530

--HG--
extra : source : d65512e23a13164f540430ff0c85a1f2a147d8a0
2019-07-18 22:54:16 +02:00
Dzmitry Malyshau
54f5b4cbf0 Bug 1567173 - WR Rawtest comparisons r=gw
Differential Revision: https://phabricator.services.mozilla.com/D38499

--HG--
extra : moz-landing-system : lando
2019-07-18 20:30:00 +00:00
Mihai Alexandru Michis
eb5c88a05d Merge mozilla-central to mozilla-inbound. a=merge 2019-07-18 18:46:47 +03:00
Kartikaya Gupta
a42a893678 Bug 1523321 - Followup to fix typo. r=me 2019-07-18 11:28:01 -04:00
Nicolas Silva
1f245ea240 Bug 1565569 - Remove the old pathfinder integration. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D37862

--HG--
extra : rebase_source : 93849386dacff73f73481e652e7e5a00f9d019fa
extra : source : 12d70adf7d1c28d0a4f7328c4b4659d4f33db107
2019-07-18 15:07:31 +02:00
Mihai Alexandru Michis
6975564f1a Backed out changeset a2fdbfed0d71 (bug 1566712) for causing Bug 1567089 2019-07-18 15:04:25 +03:00
Glenn Watson
0bb61d0846 Bug 1566712 - Fix quality issues with picture caching when the transform has a fractional offset. r=kvark
This patch reverts the previous attempted fix for snapping issues
with picture caching, and implements a better solution.

This fixes the main visual issue by ensuring that any fractional
offset in the root transform is accounted for by:

 * Offsetting the tile rects by this amount, so that the content
   origin is a whole device pixel.
 * Invalidating all tiles if the fractional part of the root
   transform changes. This is required since it can affect the
   snapping logic that WR applies. Fortunately, this occurs
   very rarely - Gecko typically has a constant fractional part
   for each page.

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

--HG--
extra : moz-landing-system : lando
2019-07-17 21:09:01 +00:00
Lee Salzman
ee4cc890cb Bug 1560520 - limit the size of WebRender's glyph cache. r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D37982

--HG--
extra : moz-landing-system : lando
2019-07-17 17:52:44 +00:00
Sebastian Hengst
8333f6cdcc Backed out changeset b2f7f31d6781 (bug 1560520) for wrench bustage. CLOSED TREE
--HG--
extra : amend_source : 03592799955175a7930d8f4ab40ac27768395923
2019-07-17 19:42:25 +02:00
Lee Salzman
3ff0a02c54 Bug 1560520 - limit the size of WebRender's glyph cache. r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D37982

--HG--
extra : moz-landing-system : lando
2019-07-17 17:09:06 +00:00
Coroiu Cristina
ee2f303e53 Backed out changeset ca1ff794e472 (bug 1560520) for build bustage and wrench on a CLOSED TREE 2019-07-17 19:58:09 +03:00
Lee Salzman
22066b4763 Bug 1560520 - limit the size of WebRender's glyph cache. r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D37982

--HG--
extra : moz-landing-system : lando
2019-07-17 15:44:38 +00:00
A
93b676940c Bug 1566481 - Added version widget r=nical
[import_pr] From https://github.com/servo/webrender/pull/3707

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

--HG--
extra : moz-landing-system : lando
2019-07-17 14:08:51 +00:00
Nicolas Silva
bd39067d69 Bug 1566206 - Avoid overflow when limitting the number of rasterized blobs. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D38292

--HG--
extra : moz-landing-system : lando
2019-07-17 14:35:01 +00:00
sotaro
fb8a03fa7c Bug 1564646 - Don't trigger composites on out-of-viewport external image updates r=gw
Differential Revision: https://phabricator.services.mozilla.com/D37512

--HG--
extra : moz-landing-system : lando
2019-07-17 04:12:00 +00:00
Jamie Nicol
7bd2ec1585 Bug 1564185 - Rasterize glyphs as large as possible to avoid blurriness at high zoom levels. r=lsalzman
When rendering text in webrender we rasterize glyphs either in local
space at a chosen raster scale, or in device space taking in to
account to text's transform.

We are not able to rasterize glyphs larger than a certain size,
however. So if the device-space font size exceeds this limit, then
currently we force the glyph to be rasterized in local space, at the
untransformed font size. This must then be scaled by the shader when
rendering text, and at high zoom levels this will result in blurry
text.

This change makes it so that rather than rasterizing at the
untransformed font size we rasterize at the font size limit. This will
mean the glyphs are rasterized at a larger size and will therefore
require less scaling, meaning they will appear less blurry.

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

--HG--
extra : moz-landing-system : lando
2019-07-16 14:09:30 +00:00
Kartikaya Gupta
2d73759624 Bug 1523321 - Run the wrupdater on m-c pushes that touch gfx/wr. r=tomprince,jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D33548

--HG--
extra : moz-landing-system : lando
2019-07-16 15:38:39 +00:00
Kartikaya Gupta
656a70fb90 Bug 1523321 - Add the wrupdater code to sync m-c's copy of WR to github. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D33547

--HG--
extra : moz-landing-system : lando
2019-07-16 15:36:57 +00:00
Narcis Beleuzu
ab956a715f Backed out 2 changesets (bug 1523321) for webrender bustages. CLOSED TREE
Backed out changeset d86e7c8f1e14 (bug 1523321)
Backed out changeset 18414da977c3 (bug 1523321)
2019-07-16 18:23:45 +03:00
Kartikaya Gupta
b3bebb6eca Bug 1523321 - Run the wrupdater on m-c pushes that touch gfx/wr. r=tomprince,jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D33548

--HG--
extra : moz-landing-system : lando
2019-07-16 14:09:47 +00:00
Kartikaya Gupta
3a1a9aedd8 Bug 1523321 - Add the wrupdater code to sync m-c's copy of WR to github. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D33547

--HG--
extra : moz-landing-system : lando
2019-07-16 14:06:50 +00:00
Brindusan Cristian
3de8b088e1 Backed out 2 changesets (bug 1523321) for breaking Gecko Decision Task. CLOSED TREE
Backed out changeset c032bed595dc (bug 1523321)
Backed out changeset 0a4f53b896b1 (bug 1523321)
2019-07-16 17:00:24 +03:00
Kartikaya Gupta
c6cc78e85f Bug 1523321 - Run the wrupdater on m-c pushes that touch gfx/wr. r=tomprince,jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D33548

--HG--
extra : moz-landing-system : lando
2019-07-16 13:49:54 +00:00
Kartikaya Gupta
4be1661f49 Bug 1523321 - Add the wrupdater code to sync m-c's copy of WR to github. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D33547

--HG--
extra : moz-landing-system : lando
2019-07-15 21:31:46 +00:00
Emilio Cobos Álvarez
6e0169a2cf Bug 1566150 - Simplify the border may_need_repetition code. r=nical
Just spotted this while going through the regressing patch in bug 1565910.

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

--HG--
extra : moz-landing-system : lando
2019-07-15 22:41:39 +00:00
Nicolas Silva
1e2404a275 Bug 1565910 - Preserve batch features when merging batches. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D38080

--HG--
extra : moz-landing-system : lando
2019-07-15 21:46:22 +00:00
sotaro
6112475e13 Bug 1565463 - Add ImageBorder image key to Tile r=gw
Differential Revision: https://phabricator.services.mozilla.com/D37834

--HG--
extra : moz-landing-system : lando
2019-07-14 21:54:54 +00:00
Jeff Muizelaar
81aac9064d Bug 1563770. Always include a visible rect with blob images. r=nical
I suspect we may change things more in the future as we blob's size
just be the visible rect but this is an incremental step in the right
direction.

It also includes some changes to make sure that we always update our
tiles appropriately.

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

--HG--
extra : moz-landing-system : lando
2019-07-13 19:07:05 +00:00
Jeff Muizelaar
65dccbec8c Bug 1565620. Preserve initial batching debug state across debug state changes. r=kvark
This lets us run wrench with -no-batch and turn on the profiler.

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

--HG--
extra : moz-landing-system : lando
2019-07-12 18:04:45 +00:00
Nicolas Silva
db54fa27c5 Bug 1559688 - Clip tile dirty rects to the tile's total rect. r=aosmond
Differential Revision: https://phabricator.services.mozilla.com/D37841

--HG--
extra : moz-landing-system : lando
2019-07-12 12:04:57 +00:00
Dan Glastonbury
be87d8ce17 Bug 1550640 - P4: Remove bincode. r=Gankro
Differential Revision: https://phabricator.services.mozilla.com/D32783

--HG--
extra : moz-landing-system : lando
2019-07-12 06:12:33 +00:00
Dan Glastonbury
866dcdad61 Bug 1550640 - P3: Replace bincode with peek-poke. r=Gankro
Replace `serde`-derived `bincode` with custom binary
serialization/deserialization that generates more efficient code at rustc
`opt-level = 2`.

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

--HG--
extra : moz-landing-system : lando
2019-07-12 06:12:31 +00:00
Bogdan Tara
4b7c4bf220 Backed out 2 changesets (bug 1550640) for webrender bustages CLOSED TREE
Backed out changeset 00e5a40ee249 (bug 1550640)
Backed out changeset 46c850f36c6f (bug 1550640)
2019-07-12 06:26:05 +03:00
Dan Glastonbury
be054e6278 Bug 1550640 - P4: Remove bincode. r=Gankro
Differential Revision: https://phabricator.services.mozilla.com/D32783

--HG--
extra : moz-landing-system : lando
2019-07-12 02:47:25 +00:00
Dan Glastonbury
c7d8e015b8 Bug 1550640 - P3: Replace bincode with peek-poke. r=Gankro
Replace `serde`-derived `bincode` with custom binary
serialization/deserialization that generates more efficient code at rustc
`opt-level = 2`.

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

--HG--
extra : moz-landing-system : lando
2019-07-12 02:47:23 +00:00
Gurzau Raul
3697df8022 Backed out 2 changesets (bug 1550640) for webrenderer bustages on a CLOSED TREE.
Backed out changeset 2dcbe1372a05 (bug 1550640)
Backed out changeset 84db3a9838a5 (bug 1550640)
2019-07-12 04:56:07 +03:00
Dan Glastonbury
3401662ae8 Bug 1550640 - P4: Remove bincode. r=Gankro
Differential Revision: https://phabricator.services.mozilla.com/D32783

--HG--
extra : moz-landing-system : lando
2019-07-12 01:28:29 +00:00
Dan Glastonbury
f020cdec9b Bug 1550640 - P3: Replace bincode with peek-poke. r=Gankro
Replace `serde`-derived `bincode` with custom binary
serialization/deserialization that generates more efficient code at rustc
`opt-level = 2`.

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

--HG--
extra : moz-landing-system : lando
2019-07-12 01:28:22 +00:00
Csoregi Natalia
d7d499fe52 Merge inbound to mozilla-central. a=merge 2019-07-12 02:00:51 +03:00
Csoregi Natalia
20e91a0890 Backed out changeset 5c88b35cc6f5 (bug 1563770) for causing bug 1565231. a=backout 2019-07-11 23:14:01 +03:00
Jeff Muizelaar
3e4eb446aa Bug 1563770. Always include a visible rect with blob images. r=nical
I suspect we may change things more in the future as we blob's size
just be the visible rect but this is an incremental step in the right
direction.

It also includes some changes to make sure that we always update our
tiles appropriately.

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

--HG--
extra : moz-landing-system : lando
2019-07-11 02:32:35 +00:00
Connor Brewster
3f078809f7 Bug 1555483 - Part 5: Add wrench reftests for SVG filters and update test expectations r=gw
Differential Revision: https://phabricator.services.mozilla.com/D35742

--HG--
rename : gfx/wr/wrench/reftests/filters/filter-flood-ref.yaml => gfx/wr/wrench/reftests/filters/svg-filter-flood-ref.yaml
rename : gfx/wr/wrench/reftests/filters/filter-flood.yaml => gfx/wr/wrench/reftests/filters/svg-filter-flood.yaml
extra : moz-landing-system : lando
2019-07-10 22:37:48 +00:00
Connor Brewster
65b65c54ba Bug 1555483 - Part 4: Sanitize filter primitives r=gw
Differential Revision: https://phabricator.services.mozilla.com/D35741

--HG--
extra : moz-landing-system : lando
2019-07-10 22:37:44 +00:00
Connor Brewster
76b9b0a883 Bug 1555483 - Part 3: Add SVG render task and shader r=gw
The SVG task supports the pre-existing SVG filters along with Blend.

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

--HG--
extra : moz-landing-system : lando
2019-07-10 22:37:30 +00:00
Connor Brewster
532a3f2aa6 Bug 1555483 - Part 2: Add SVG filter picture composite mode r=gw
Differential Revision: https://phabricator.services.mozilla.com/D34088

--HG--
extra : moz-landing-system : lando
2019-07-10 22:36:32 +00:00
Connor Brewster
3efce98819 Bug 1555483 - Part 1: Add SVG filter primitive display item. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D34087

--HG--
extra : moz-landing-system : lando
2019-07-10 22:36:25 +00:00
Noemi Erli
7ac279ac4a Backed out 5 changesets (bug 1555483) for causing wrench bustages CLOSED TREE
Backed out changeset 8149efc1f813 (bug 1555483)
Backed out changeset 917f800e4e43 (bug 1555483)
Backed out changeset 418839320ab5 (bug 1555483)
Backed out changeset 134a51a0e034 (bug 1555483)
Backed out changeset 7c43dc769da7 (bug 1555483)

--HG--
rename : gfx/wr/wrench/reftests/filters/svg-filter-flood-ref.yaml => gfx/wr/wrench/reftests/filters/filter-flood-ref.yaml
rename : gfx/wr/wrench/reftests/filters/svg-filter-flood.yaml => gfx/wr/wrench/reftests/filters/filter-flood.yaml
2019-07-10 23:27:36 +03:00
Connor Brewster
2b84406608 Bug 1555483 - Part 5: Add wrench reftests for SVG filters and update test expectations r=gw
Differential Revision: https://phabricator.services.mozilla.com/D35742

--HG--
rename : gfx/wr/wrench/reftests/filters/filter-flood-ref.yaml => gfx/wr/wrench/reftests/filters/svg-filter-flood-ref.yaml
rename : gfx/wr/wrench/reftests/filters/filter-flood.yaml => gfx/wr/wrench/reftests/filters/svg-filter-flood.yaml
extra : moz-landing-system : lando
2019-07-10 02:17:17 +00:00
Connor Brewster
8e86f00687 Bug 1555483 - Part 4: Sanitize filter primitives r=gw
Differential Revision: https://phabricator.services.mozilla.com/D35741

--HG--
extra : moz-landing-system : lando
2019-07-10 02:17:19 +00:00
Connor Brewster
31021a43ce Bug 1555483 - Part 3: Add SVG render task and shader r=gw
The SVG task supports the pre-existing SVG filters along with Blend.

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

--HG--
extra : moz-landing-system : lando
2019-07-10 02:17:21 +00:00
Connor Brewster
2a21b2e853 Bug 1555483 - Part 2: Add SVG filter picture composite mode r=gw
Differential Revision: https://phabricator.services.mozilla.com/D34088

--HG--
extra : moz-landing-system : lando
2019-07-10 02:17:23 +00:00
Connor Brewster
4f98a810a8 Bug 1555483 - Part 1: Add SVG filter primitive display item. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D34087

--HG--
extra : moz-landing-system : lando
2019-07-10 02:17:25 +00:00
Josh Matthews
c95bb0f221 Bug 1564448 - Workaround bugs in old ANGLE versions. r=jrmuizel
[import_pr] From https://github.com/servo/webrender/pull/3696

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

--HG--
extra : moz-landing-system : lando
2019-07-10 14:20:40 +00:00
Andreea Pavel
0f343bbb5a Backed out changeset 29b1742d1d3b (bug 1563770) WR bustages on a CLOSED TREE 2019-07-10 17:17:01 +03:00
Jeff Muizelaar
ea2bfdae47 Bug 1563770. Always include a visible rect with blob images. r=nical
I suspect we may change things more in the future as we blob's size
just be the visible rect but this is an incremental step in the right
direction.

It also includes some changes to make sure that we always update our
tiles appropriately.

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

--HG--
extra : moz-landing-system : lando
2019-07-10 13:55:09 +00:00
Jonas Platte
c26d1cfea9 Bug 1563588 - Update glutin to 0.19, winit to 0.18 r=nical
From https://github.com/servo/webrender/pull/3690

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

--HG--
extra : moz-landing-system : lando
2019-07-10 11:12:08 +00:00
Jamie Nicol
191dd4f438 Bug 1535146 - Attempt to load non-startup shaders from disk cache when required. r=bholley
On startup some program binaries are loaded from disk into an
in-memory cache. When we call create_program() we check if the
required program is present in this cache, and if so we call
glProgramBinary(). This is done early on so that the driver can
perform any necessary work in the background.

There may however be binaries in the disk cache that have not yet been
loaded in to memory, in order not to slow down startup. This change
makes it so that we attempt to load missing binaries from disk during
link_program(). The reason we do not do this in create_program() is
because that would result in loading all shaders from disk during
startup, which we want to avoid. Loading these shaders may therefore
take slightly longer than if they'd been loaded at startup, but will
still be much faster than recompiling them from scratch, and startup
will remain quick.

If loading the shaders on startup had previously timed out, then we do
not attempt to load shaders on demand as the disk is probably too slow
for that to be useful.

Depends on D33954

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

--HG--
extra : moz-landing-system : lando
2019-07-09 16:09:15 +00:00
Connor Brewster
205d3b8e05 Bug 1564677 - Disable border/no-aa.yaml on Android emulator
Differential Revision: https://phabricator.services.mozilla.com/D37518

--HG--
extra : moz-landing-system : lando
2019-07-10 03:49:30 +00:00
Dorel Luca
9dcd722ccc Backed out 5 changesets (bug 1555483) for Wrench failure in sdcard/wrench/reftests/border/no-aa.yaml
Backed out changeset 244b23c635c5 (bug 1555483)
Backed out changeset 4d4f45f7f1d1 (bug 1555483)
Backed out changeset 5618213e2196 (bug 1555483)
Backed out changeset d6169482c913 (bug 1555483)
Backed out changeset 3a1e5a56759b (bug 1555483)

--HG--
rename : gfx/wr/wrench/reftests/filters/svg-filter-flood-ref.yaml => gfx/wr/wrench/reftests/filters/filter-flood-ref.yaml
rename : gfx/wr/wrench/reftests/filters/svg-filter-flood.yaml => gfx/wr/wrench/reftests/filters/filter-flood.yaml
2019-07-10 05:12:26 +03:00
Connor Brewster
24bb8d2a5c Bug 1555483 - Part 5: Add wrench reftests for SVG filters and update test expectations r=gw
Differential Revision: https://phabricator.services.mozilla.com/D35742

--HG--
rename : gfx/wr/wrench/reftests/filters/filter-flood-ref.yaml => gfx/wr/wrench/reftests/filters/svg-filter-flood-ref.yaml
rename : gfx/wr/wrench/reftests/filters/filter-flood.yaml => gfx/wr/wrench/reftests/filters/svg-filter-flood.yaml
extra : moz-landing-system : lando
2019-07-08 23:46:39 +00:00
Connor Brewster
cc92cb66fa Bug 1555483 - Part 4: Sanitize filter primitives r=gw
Differential Revision: https://phabricator.services.mozilla.com/D35741

--HG--
extra : moz-landing-system : lando
2019-07-08 22:33:25 +00:00
Connor Brewster
94b32299f8 Bug 1555483 - Part 3: Add SVG render task and shader r=gw
The SVG task supports the pre-existing SVG filters along with Blend.

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

--HG--
extra : moz-landing-system : lando
2019-07-08 22:33:18 +00:00
Connor Brewster
cc5163e0bb Bug 1555483 - Part 2: Add SVG filter picture composite mode r=gw
Differential Revision: https://phabricator.services.mozilla.com/D34088

--HG--
extra : moz-landing-system : lando
2019-07-08 22:32:59 +00:00
Connor Brewster
f48188d4e6 Bug 1555483 - Part 1: Add SVG filter primitive display item. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D34087

--HG--
extra : moz-landing-system : lando
2019-07-08 22:32:52 +00:00
Oana Pop Rus
1a5e831b42 Merge mozilla-central to inbound. a=merge CLOSED TREE 2019-07-11 13:00:34 +03:00
Nicolas Silva
e3c0e8bbd0 Bug 1557208 - Eagerly clear remaining documents during shutdown. r=sotaro
Differential Revision: https://phabricator.services.mozilla.com/D36576

--HG--
extra : rebase_source : 96d80421358242d86d6194389de32b927b6234fe
extra : source : d4421f90b64b1398e4a095d7476d03283c44ec97
2019-07-01 20:31:59 +02:00
Nicolas Silva
a8b0d6f029 Bug 1557208 - Block the caller during RenderBackend shutdown. r=sotaro
--HG--
extra : rebase_source : 4f7177b6732c0ba7192a70896b7e0f8bf4586474
extra : source : 0a8860887ee53b1ef6d9f0ea8f03f246f913395d
2019-07-11 09:50:50 +02:00
sotaro
45350055b1 Bug 1531898 - Don't trigger composites on out-of-viewport native texture image updates r=gw
Differential Revision: https://phabricator.services.mozilla.com/D34314

--HG--
extra : moz-landing-system : lando
2019-07-09 02:34:37 +00:00
Dzmitry Malyshau
e7e86f1bd8 Bug 1563993 - WR chase into clips r=jrmuizel
it's very helpful to see the list of clips and the way they affect a chased primitive
Example:
```
    building clip chain instance with local rect TypedRect(1561.0×1968.0 at (-300.0,-300.0))
        clip Rectangle(3840.0×1874.0, Clip) at (0.0,0.0) in space SpatialNodeIndex(1)
        flags (empty), resulted in Partial
        clip Rectangle(3840.0×1874.0, Clip) at (0.0,0.0) in space SpatialNodeIndex(2)
        flags (empty), resulted in Partial
```

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

--HG--
extra : moz-landing-system : lando
2019-07-08 13:09:38 +00:00
Andreea Pavel
a0eedef06a Backed out changeset f1b593ede263 (bug 1563993) for wrench bustages on a CLOSED TREE 2019-07-08 05:11:23 +03:00
Dzmitry Malyshau
ffc66bad70 Bug 1563993 - WR chase into clips r=jrmuizel
it's very helpful to see the list of clips and the way they affect a chased primitive
Example:
```
    building clip chain instance with local rect TypedRect(1561.0×1968.0 at (-300.0,-300.0))
        clip Rectangle(3840.0×1874.0, Clip) at (0.0,0.0) in space SpatialNodeIndex(1)
        flags (empty), resulted in Partial
        clip Rectangle(3840.0×1874.0, Clip) at (0.0,0.0) in space SpatialNodeIndex(2)
        flags (empty), resulted in Partial
```

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

--HG--
extra : moz-landing-system : lando
2019-07-08 01:48:54 +00:00
Dzmitry Malyshau
6104350440 Bug 1548339 - WR: Remove the color/alpha feature in cs_scale shader r=jrmuizel
this makes the shader simpler at no cost

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

--HG--
extra : moz-landing-system : lando
2019-07-05 21:11:44 +00:00
Chris AtLee
a0d3d64841 Bug 1559975: Fix python2/3 compat in gfx/ r=ahal
Differential Revision: https://phabricator.services.mozilla.com/D35337

--HG--
extra : moz-landing-system : lando
2019-07-05 14:28:55 +00:00
Kartikaya Gupta
e997669828 Bug 1525314 - Disable tile markers on Android as they seem to crash a lot. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D36794

--HG--
extra : moz-landing-system : lando
2019-07-04 21:35:06 +00:00
Coroiu Cristina
3983fddf6d Backed out 6 changesets (bug 1525314) for reftest failures at reftests/svg/filters/css-filters/saturate-zero.html om a CLOSED TREE
Backed out changeset 0ed2509b7191 (bug 1525314)
Backed out changeset af72d1c4c107 (bug 1525314)
Backed out changeset ab21a3ff4ae4 (bug 1525314)
Backed out changeset 02399933ac4b (bug 1525314)
Backed out changeset 95790a07a93c (bug 1525314)
Backed out changeset 28f52fd3934e (bug 1525314)
2019-07-05 00:29:12 +03:00
Kartikaya Gupta
4b784c8f1a Bug 1525314 - Disable tile markers on Android as they seem to crash a lot. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D36794

--HG--
extra : moz-landing-system : lando
2019-07-03 21:53:59 +00:00
Dzmitry Malyshau
f3630e279f Bug 1546818 - Change WR text transform to be relative to the surface raster node r=gw
a follow-up to D36603 that switches the base space from the surface node to the raster node.

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

--HG--
extra : moz-landing-system : lando
2019-07-04 14:54:36 +00:00
Dzmitry Malyshau
a29869406b Bug 1546818 - WR text local transform fix r=gw
Change the glyph transform computation to be relative to the surface node.

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

--HG--
extra : moz-landing-system : lando
2019-07-03 18:59:42 +00:00
Dzmitry Malyshau
8f5b101ef6 Bug 1562989 - Fix WR frameID checks to not trigger on replay r=gw
Differential Revision: https://phabricator.services.mozilla.com/D36650

--HG--
extra : moz-landing-system : lando
2019-07-03 01:35:39 +00:00
Glenn Watson
6b55adc20e Bug 1562788 - Add support for benchmarking llvmpipe and swiftshader in wrench. r=nical
* Add a script for running wrench under various software rasterizers.
* Add support to wrench for non-blocking event loop.
* Add support to wrench for selecting GL/ES rendering API.
* Update x11 bindings for wrench, to fix a release only crash.

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

--HG--
extra : moz-landing-system : lando
2019-07-02 21:52:16 +00:00
Andreea Pavel
468f91f972 Backed out changeset 9c6775d713e8 (bug 1562788) for webrender lint tidy bustage on a CLOSED TREE 2019-07-03 00:43:26 +03:00
Glenn Watson
861fa49918 Bug 1562788 - Add support for benchmarking llvmpipe and swiftshader in wrench. r=nical
* Add a script for running wrench under various software rasterizers.
* Add support to wrench for non-blocking event loop.
* Add support to wrench for selecting GL/ES rendering API.
* Update x11 bindings for wrench, to fix a release only crash.

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

--HG--
extra : moz-landing-system : lando
2019-07-02 17:15:18 +00:00
Dzmitry Malyshau
3ad5ab9386 Bug 1562892 - WR capture native fonts as raw r=lsalzman
we save the native fonts by their full path now. On macOS, there is no
such thing as a full filesystem path for a CGFont (or at least we don't track it),
so loading a capture falls back to the old logic of using the dummy font.

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

--HG--
extra : moz-landing-system : lando
2019-07-02 15:50:28 +00:00
Jeff Muizelaar
3fada47065 Bug 1561305. Eliminate unused viewport_tiles field. r=nical
Differential Revision: https://phabricator.services.mozilla.com/D35807

--HG--
extra : moz-landing-system : lando
2019-07-01 07:28:41 +00:00
Jeff Muizelaar
d14beb98f4 Bug 1561303. Add some asserts for the surface size. r=nical
This is the first piece of the blob-recoord series. Adding
some checks to ensure things stay sane.

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

--HG--
extra : moz-landing-system : lando
2019-07-01 07:28:03 +00:00
Glenn Watson
632715284a Bug 1560853 - Fix picture cache tiles with fractional origins. r=kvark
Gecko layouts typically produce a picture cache where the origin
of the picture rect is an integer. However, it can occasionally
be a fractional origin.

In these cases, we need to ensure the content origin is floored,
to maintain consistent snapping. When this case occurs, the UV
rect for the tile also needs adjusting, to ensure the exact
1:1 texel:pixel mapping when drawing the tile.

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

--HG--
extra : moz-landing-system : lando
2019-06-25 20:28:16 +00:00
Dzmitry Malyshau
12edec92c3 Bug 1561021 - Cleanup WR picture caching setup a bit r=gw
Follow-up to D35139 that removes a hundred LOC

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

--HG--
extra : moz-landing-system : lando
2019-06-25 05:30:06 +00:00
Glenn Watson
0e34c42163 Bug 1560499 - Fix subpixel detection for transparent tile caches. r=kvark
Some pages from Gecko produce a display list for the main content
tile cache that has a transparent background. Detect these cases
and disable subpixel text rendering to ensure correct blending.

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

--HG--
extra : moz-landing-system : lando
2019-06-24 17:32:36 +00:00
Nicolas Silva
d1d43baacc Bug 1558135 - Use a faster image shader when we don't need repetitions and anti-aliasing. r=gw
--HG--
extra : rebase_source : 5b6a332ba781ef9673fe9866872c3fe2977049f6
2019-06-20 10:14:48 -07:00
Glenn Watson
0689b50e52 Bug 1559295 - Support multiple picture cache tile sizes in WR texture cache. r=kvark
In future, picture cache tiles will support different sizes, depending
on the size of the content slice being cached, and how frequently
parts of the slice are changing.

Although currently unused, this patch adds support for specifying
multiple different tile sizes for the picture cache texture array.

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

--HG--
extra : moz-landing-system : lando
2019-06-19 15:46:18 +00:00
Csoregi Natalia
9420c9eccf Backed out changeset be881e8aa8d9 (bug 1559295) for webrender bustage on webrender/src/texture_cache.rs. CLOSED TREE
--HG--
extra : histedit_source : 56889f6c35d9135a2c3f9177d344ba55121db2f7
2019-06-19 17:34:44 +03:00
Glenn Watson
ae6e0cf4a3 Bug 1559295 - Support multiple picture cache tile sizes in WR texture cache. r=kvark
In future, picture cache tiles will support different sizes, depending
on the size of the content slice being cached, and how frequently
parts of the slice are changing.

Although currently unused, this patch adds support for specifying
multiple different tile sizes for the picture cache texture array.

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

--HG--
extra : moz-landing-system : lando
2019-06-14 19:38:34 +00:00
Glenn Watson
77363f0e08 Bug 1559535 - Fix crash related to mismatched clips with picture caching. r=kvark
Fixes an edge case where splitting the top level primitive list
for picture caching may result in a mismatched push/pop clip
pair.

This is not a particularly efficient fix, but it's a rare enough
edge case for now that this fix will be good enough until we work
out the long term solution for the push/pop clip chain instances.

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

--HG--
extra : moz-landing-system : lando
2019-06-19 08:40:27 +00:00
Glenn Watson
ee02d52111 Bug 1559354 - SVG graphs broken with Webrender enabled. r=nical
This patch fixes two issues with blob images + new picture caching.

1) The logic that determines a conservative set of visible tiles
   for tiled / blob images was no longer correct. It was relying
   on the bounds of a single tile to build the conservative rect.
   Instead, take the overall primitive world bounds and derive a
   conservative set of visible tiles from this.

2) The logic to detect if an image was dirty was incorrect, and
   somewhat error prone. It now maintains a set of dirty images
   that have been requested. The image key dependencies are then
   checked during the tile cache post_update step.

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

--HG--
extra : moz-landing-system : lando
2019-06-18 16:08:21 +00:00
Jamie Nicol
34dc1a1c4a Bug 1556763 - Enable wrench blend reftests on android devices. r=kats
These now work on actual devices now, but must remain disabled on the
emulator until bug 1555002 is fixed.

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

--HG--
extra : moz-landing-system : lando
2019-06-15 11:56:33 +00:00
Jamie Nicol
ee505d0bfd Bug 1556763 - Disable blend_equation_advanced on adreno devices. r=gw
There appears to be a driver bug on android 8 and older where it does
not render correctly.

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

--HG--
extra : moz-landing-system : lando
2019-06-15 11:56:24 +00:00
Jamie Nicol
ce7a78895a Bug 1556763 - Add layout qualifier to fragment shader output for advanced blend. r=kvark
When using an advanced blend equation, fragment shader output must be
marked with a matching layout qualifier. Not doing so was causing
subsequent glDraw* operations to fail.

This patch adds a new shader feature, WR_FEATURE_ADVANCED_BLEND, which
requires the necessary extension and adds the qualifier. Variants of
the brush_image shaders are created with this feature, and are used
whenever a brush_image shader is requested for BlendMode::Advanced.

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

--HG--
extra : moz-landing-system : lando
2019-06-15 11:56:14 +00:00
Glenn Watson
e22f19cf52 Bug 1558106 - Support picture caching for multiple scroll roots. r=kvark
This patch implements the majority of the planned picture caching
improvements. It supports most of the functionality required to
(as a follow up) support OS compositor integration. It also improves
on the robustness and functionality of the previous picture caching
implementation.

There are some expected temporary performance regressions in
some cases (such as content that is constantly invalidating) and
during initial page render when many render targets must be drawn
to. These performance regressions will be resolved in follow up
commits by supporting multi-resolution tiles.

The scene is split into a number of slices, determined by the scroll
root of each primitive, which can be found by the primitive's
spatial node indices. If a scene contains too many slices, then
picture caching is disabled on the page, to avoid excessive texture
memory usage, and rendering falls back to rasterizing each frame.

The specific changes in this patch are:
    * Support tile caches for multiple scroll roots, allowing the
      entire page (including fixed divs and the main UI bar) to be
      cached in most cases, in addition to the main content.
    * Remove requirement to read tiles back from the framebuffer.
      Instead, they are drawn into the picture cache target tiles,
      and blitted to the screen. This is slightly slower than the
      existing picture caching when content is constantly changing,
      however this cost will disappear / become irrelevant when
      the OS compositor integration work is complete.
    * Switch picture cache render targets to be nearest sampled (they
      are always rendered 1:1) and support depth buffer targets.
    * Make use of the external scroll offset support to allow removal
      of the primitive correlation hacks in the previous picture
      caching implementation. Also allows storing of primitive
      dependencies in picture space rather than world space, which
      reduces floating point inaccuracies.
    * Determine if each tile and picture cache can be considered
      opaque. This is used to determine whether subpixel AA text
      rendering is available on a slice, and for rendering optimizations
      related to disabling blending and/or tile clears.
    * Use the clip chain instance results from the recent visibility pass
      work to determine clip chain dependencies. This results in fewer
      clip item dependencies in tiles, which is faster to check validity
      and reduces redundant invalidations.
    * Remove extra overhead during batching related to batch lists,
      and region iteration, as they are no longer required.
    * Support PrimitiveVisibilityMask during batching. This allows a
      single traversal of a picture (surface) root during batching to
      efficiently construct multiple alpha batcher objects (typically
      one per invalida tile).
    * Picture caching is now handled implicitly by WR, depending on
      the content of the scene. There is no requirement for client
      code to manually select which stacking context should be cached.
    * Simplify how clip chain / transform dependencies are tracked by
      picture cache tiles.
    * Support pushing / popping enclosing clip chain roots without
      the need for a stacking context / picture in some cases. This
      simplifies the logic to split the scene into multiple slices.

The main remaining work in this area is (a) extend the code to
optionally provide each slice as an input to the OS compositor
rather than drawing the tiles in WR, and (b) support multi-resolution
tiles so that we reduce the draw call, batching and render target
overhead in cases where much of the page content is changing.

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

--HG--
extra : moz-landing-system : lando
2019-06-13 04:43:56 +00:00
Nicolas Silva
250c484e01 Bug 1555655 - Box the TileCache in PicturePrimitive. r=gw
The tile cache is 352 bytes large and in the majority of cases picture primitives don't have one, so this saves a few KB of ram in typical pages reduces the likely hood of hitting OOM crashes while growing the primitives vector.

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

--HG--
extra : moz-landing-system : lando
2019-06-10 19:54:13 +00:00
Dzmitry Malyshau
f43371a2ff Bug 1474294 - Enable WR perspective box shadow reftest r=Gankro
a follow-up to the actual fix and the reftest

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

--HG--
extra : moz-landing-system : lando
2019-06-10 20:05:00 +00:00
Kartikaya Gupta
a001de8d97 Bug 1555479 - Update wrench mozharness script to support running on a device as well. r=gbrown
The presence or absence of the DEVICE_SERIAL environment variable
is sufficient to control this.

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

--HG--
extra : moz-landing-system : lando
2019-06-08 08:59:06 +00:00
Kartikaya Gupta
6d682927cb Bug 1555479 - Rename android_emulator_wrench to android_wrench.py. r=gbrown
This is in preparation for having the same script be used for emulator
and device runs. No functional change in this patch; it just renames
the file and class.

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

--HG--
rename : testing/mozharness/scripts/android_emulator_wrench.py => testing/mozharness/scripts/android_wrench.py
extra : moz-landing-system : lando
2019-06-08 08:59:02 +00:00
Kartikaya Gupta
3e5be83a11 Bug 1555479 - Update android skip annotations for Pixel2 results. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D33405

--HG--
extra : moz-landing-system : lando
2019-06-08 08:58:48 +00:00
Kartikaya Gupta
f2fe061b71 Bug 1555479 - Allow wrench to know when it is running in the emulator. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D33404

--HG--
extra : moz-landing-system : lando
2019-06-08 08:58:41 +00:00
Dzmitry Malyshau
9c48545798 Bug 1474294 - Perspective clip interpolation fix r=gw
Force perspective interpolation of UV coordinates in clip shaders.
In addition to fixing the interpolation curve, also adds checks for the homogeneous coordinates to be outside of the meaningful hemisphere, forcing the clip shaders to output zeroes in those areas.

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

--HG--
extra : moz-landing-system : lando
2019-06-08 02:53:37 +00:00
Bruce Mitchener
48c8560298 Bug 1557721 - Use unwrap_or_default where possible. r=kvark
[wrupdater] From https://github.com/servo/webrender/pull/3667

Depends on D34166

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

--HG--
extra : moz-landing-system : lando
2019-06-07 16:19:22 +00:00
Bruce Mitchener
a0f2c26bd2 Bug 1557721 - Remove redundant closure. r=kvark
[wrupdater] From https://github.com/servo/webrender/pull/3667

Depends on D34165

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

--HG--
extra : moz-landing-system : lando
2019-06-07 16:19:14 +00:00
Bruce Mitchener
bba33e0309 Bug 1557721 - Simplify boolean expression. r=kvark
[wrupdater] From https://github.com/servo/webrender/pull/3667

Depends on D34164

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

--HG--
extra : moz-landing-system : lando
2019-06-07 16:18:25 +00:00
Bruce Mitchener
c41980d970 Bug 1557721 - Use or_insert_with where possible. r=kvark
[wrupdater] From https://github.com/servo/webrender/pull/3667

Depends on D34162

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

--HG--
extra : moz-landing-system : lando
2019-06-07 16:17:52 +00:00
Bruce Mitchener
8449544a47 Bug 1557721 - Remove redundant field names. r=kvark
[wrupdater] From https://github.com/servo/webrender/pull/3667

Depends on D34161

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

--HG--
extra : moz-landing-system : lando
2019-06-07 16:17:29 +00:00