Commit Graph

498 Commits

Author SHA1 Message Date
Glenn Watson
fde9185d49 Bug 1530915 - Change external scroll offset to be a vector. r=emilio
Change the external scroll offset to be a vector, rather than a
point. This can also be updated gecko-side in future, but for
now is converted to a vector at the API boundary.

Also plumb through the external scroll offset so that it is stored
inside the ScrollFrameInfo in a spatial node. This will allow
modifying the transforms that the clip-scroll tree creates to
take into account the external scroll offset in future.

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

--HG--
extra : moz-landing-system : lando
2019-02-27 05:26:50 +00:00
shindli
c442603050 Merge mozilla-central to autoland. a=merge CLOSED TREE 2019-02-26 18:58:45 +02:00
shindli
c780ef516c Merge mozilla-central to inbound. a=merge CLOSED TREE 2019-02-26 12:20:22 +02:00
Glenn Watson
1008811aea Bug 1530518 - Refactor the way stacking context coords are converted to reference frame coords. r=emilio
This doesn't introduce any functional changes. However, it refactors
the way that stacking context coords are converted into reference
frame relative coordinates.

Having a single method to retrieve the current offset will make it
easier to take advantage of the newly added API that allows Gecko
to supply initial scroll offsets for scroll nodes. In turn, this
will allow WR to normalize the local coordinates of primitives, which
will allow future improvements and simplifications to the picture
caching implementation.

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

--HG--
extra : moz-landing-system : lando
2019-02-25 22:31:06 +00:00
Glenn Watson
1500229636 Bug 1530242 - Enable some picture caching invalidation tests in wrench. r=emilio
A number of small tweaks to enable the picture caching invalidation
tests. With this in place, we can start adding more test coverage
for various invalidation scenarios.

- Make the reference image render after the test images, so that dirty
  region tracking is more intuitive.
- Instead of replaying the same frame in wrench to ensure frames are
  caching, try to cache tiles every frame when testing mode is enabled.
- Add a basic invalidation test for a rectangle with color that changes
  each frame.
- Make the dirty region index implicit and rename dirty_region to dirty
  in reftest format.
- Fix an underflow error when moving to next frame in wrench.

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

--HG--
extra : moz-landing-system : lando
2019-02-25 22:25:22 +00:00
Noemi Erli
7e23372938 Merge mozilla-central to autoland. a=merge CLOSED TREE
--HG--
extra : rebase_source : de8796d5d7d7079af1b895a2f537371885f8cc6c
2019-02-26 00:09:40 +02:00
Kartikaya Gupta
280260b8d0 Bug 1519718 - Follow-up to bump the fuzz number slightly, so the test passes on AppVeyor too. rs=kvark 2019-02-25 09:04:23 -05:00
Dzmitry Malyshau
0bf19769e6 Bug 1519718 - WR mix-blend rewrite r=gw
This is a new implementation of mix-blend compositing that is meant to be more idiomatic to WR and efficient.

Previously, mix-blend mode was composed in the following way:
  1. parent stacking context was forced to isolate
  2. source picture is also isolated
  3. when rendering the isolated context, the framebuffer is read upon reaching the source. Both the readback and the source are placed in the RT cache.
  4. a mix-blend draw call is issued to read from those cache segments and blend on top of the backdrop

The new implementation works by using the picture cutting (intruduced for preserve-3D contexts earlier) and some bits of magic:
  1. backdrop stacking context is isolated with a special composition mode that prevents it from actually rendeing unless the suorce stacking context is invisible.
  2. source stacking context is isolated with mix-blend composition mode that has a pointer to the backdrop picture
  3. the instance of the backdrop picture is placed as a peer of the source picture (not a child)
  4. if the backdrop is invisible, the source is drawn as a simple blit
  5. otherwise, it's a draw call that reads from the isolated backdrop and source textures

Note the differences:
  - parent stacking context is not isolated, but backdrop is
  - no framebuffer readback is involved
  - the source and backdrop pictures are rendered in parallel in a pass, improving the batching
  - we don't blend onto the backdrop while reading from the backdrop copy at the same time
  - the depth of the render pass tree is reduced: previously the parent and the source were isolated, now the source and the backdrop, which are siblings

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

--HG--
rename : gfx/wr/wrench/reftests/blend/multiply-2-ref.yaml => gfx/wr/wrench/reftests/blend/multiply-3-ref.yaml
rename : gfx/wr/wrench/reftests/blend/multiply-3.yaml => gfx/wr/wrench/reftests/blend/multiply-4.yaml
extra : moz-landing-system : lando
2019-02-25 00:17:22 +00:00
Doug Thayer
9785d8bd59 Bug 1441308 - Ensure lazy init of debug renderer in draw_frame_debug_items r=gw
Document splitting is crashing with early initialization of the debug
renderer. Not sure why, and this is just a temporary workaround, but
one that I think we want anyway, as we don't want to be unnecessarily
lazy-initting the debug renderer.

Depends on D20698

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

--HG--
extra : moz-landing-system : lando
2019-02-26 15:29:15 +00:00
Razvan Maries
98aa3c3fde Backed out 2 changesets (bug 1519718) for causing perma fails on blend-gradient-background-color.html. a=backout
Backed out changeset 4f11ca736067 (bug 1519718)
Backed out changeset 4fefbf627bfc (bug 1519718)

--HG--
rename : gfx/wr/wrench/reftests/blend/multiply-3-ref.yaml => gfx/wr/wrench/reftests/blend/multiply-2-ref.yaml
2019-02-24 16:16:30 +02:00
Dzmitry Malyshau
9ddfc7834c Bug 1519718 - Remove accidental wrench log r=kats
Log was landed my mistake in https://phabricator.services.mozilla.com/D20608

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

--HG--
extra : moz-landing-system : lando
2019-02-23 19:31:15 +00:00
Dzmitry Malyshau
575dd4463b Bug 1519718 - WR mix-blend rewrite r=gw
This is a new implementation of mix-blend compositing that is meant to be more idiomatic to WR and efficient.

Previously, mix-blend mode was composed in the following way:
  1. parent stacking context was forced to isolate
  2. source picture is also isolated
  3. when rendering the isolated context, the framebuffer is read upon reaching the source. Both the readback and the source are placed in the RT cache.
  4. a mix-blend draw call is issued to read from those cache segments and blend on top of the backdrop

The new implementation works by using the picture cutting (intruduced for preserve-3D contexts earlier) and some bits of magic:
  1. backdrop stacking context is isolated with a special composition mode that prevents it from actually rendeing unless the suorce stacking context is invisible.
  2. source stacking context is isolated with mix-blend composition mode that has a pointer to the backdrop picture
  3. the instance of the backdrop picture is placed as a peer of the source picture (not a child)
  4. if the backdrop is invisible, the source is drawn as a simple blit
  5. otherwise, it's a draw call that reads from the isolated backdrop and source textures

Note the differences:
  - parent stacking context is not isolated, but backdrop is
  - no framebuffer readback is involved
  - the source and backdrop pictures are rendered in parallel in a pass, improving the batching
  - we don't blend onto the backdrop while reading from the backdrop copy at the same time
  - the depth of the render pass tree is reduced: previously the parent and the source were isolated, now the source and the backdrop, which are siblings

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

--HG--
rename : gfx/wr/wrench/reftests/blend/multiply-2-ref.yaml => gfx/wr/wrench/reftests/blend/multiply-3-ref.yaml
rename : gfx/wr/wrench/reftests/blend/multiply-3.yaml => gfx/wr/wrench/reftests/blend/multiply-4.yaml
extra : moz-landing-system : lando
2019-02-23 03:34:56 +00:00
Kartikaya Gupta
b8ad25821d Bug 1499113 - Multiply transform scales into the blur radius for blur filters. r=kvark
Without this patch any enclosing scale transform between a blurred
picture and the nearest raster root was being ignored entirely for the
purposes of blur.

Also includes a couple of reftests to exercise this code.

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

--HG--
extra : moz-landing-system : lando
2019-02-25 17:12:17 +00:00
Kartikaya Gupta
3d5d6cd639 Bug 1499113 - Turn the blur stddev value into a tuple with horizontal and vertical components. r=kvark
This patch is just plumbing; no functional changes intended.

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

--HG--
extra : moz-landing-system : lando
2019-02-25 17:33:24 +00:00
Jamie Nicol
8ad32e5644 Bug 1498732 - Ensure PBO texture upload is performed asynchronously on webrender on Adrenos. r=kvark
Currently on Android we upload texture data to the webrender texture
cache using a PBO. On Adreno GPUs, however, this upload is still being
done synchronously, and profiles show a lot of time spent waiting in
glTexSubImage3D.

The problem is that the stride of the data in the PBO is not a
multiple of 256 bytes, so the driver is not able to DMA the upload.

This patch ensures that data is laid out optimally in the PBO, using
glMapBufferRange then copying the data line-by-line if required. This
allows the driver to perform the upload asynchronously as intended.

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

--HG--
extra : moz-landing-system : lando
2019-02-25 15:00:09 +00:00
Jamie Nicol
32ffe0f9b1 Bug 1498732 - Update gleam to 0.6.9. r=kats
This provides the functions glMapBufferRange and glUnmapBuffer.

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

--HG--
extra : moz-landing-system : lando
2019-02-25 14:59:01 +00:00
Coroiu Cristina
6a915c899d Merge mozilla-central to inbound a=merge 2019-02-22 18:41:16 +02:00
Nicolas Silva
b9092ff14c Bug 1528753 - Update euclid dependency. r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D20176

--HG--
extra : moz-landing-system : lando
2019-02-21 14:41:36 +00:00
Nicolas Silva
6ccb0762a3 Bug 1528753 - Compute the layout space tiling origin. r=kvark
The tiling origin is computed withing image::tiles instead of being provided to the function.
In addition, the image rect in device space is exposed as function parameter.
In a followup, callers will have to determine the correct image rect using the blob image's visible area.

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

--HG--
extra : moz-landing-system : lando
2019-02-19 18:16:41 +00:00
Nicolas Silva
fd337e9ded Bug 1476368 - Add VecHelper::take/take_and_preallocate. r=gw
--HG--
extra : source : 8bc9ab1a56f9985c0c8e6c85758a121d577b264f
extra : histedit_source : 3155f5881349ec818032547492e83532a894d32c
2019-02-19 17:53:31 +01:00
Nicolas Silva
f9b5d37783 Bug 1476368 - Avoid moving picture primitives when destroying them. r=gw
--HG--
extra : source : 88f409bc495a135764d75ac22802c2fca94d7be3
extra : histedit_source : fa57c05c5227b676ba5f7c582c00b6d1511d89be
2019-02-19 18:39:06 +01:00
Nicolas Silva
93f732bfcd Bug 1476368 - Avoid moving texture cache entries when evicting them. r=gw
--HG--
extra : source : 03e1b2ae53bb312d91f7251740a9cc575d7ac3cd
extra : histedit_source : 463663b79fd134e72e5130b642d347d0244340cb
2019-02-20 09:16:44 +01:00
Nicolas Silva
859c756fae Bug 1476368 - Pre-allocate primitives vector in setup_picture_caching. r=gw
--HG--
extra : source : 32aa85626f6c484dff616ec9ae78ca53ea38dec5
extra : histedit_source : 109a92a512932d686f31906c37392f5f55db18e8
2019-02-20 10:01:28 +01:00
Nicolas Silva
b6c94f1ece Bug 1476368 - Pre-allocate vectors in HitTester::read_clip_scroll_tree. r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D20507

--HG--
extra : source : 96b0377ea3ce47ef806331cb7ca7881aaafdf2c1
extra : histedit_source : 97034307c821c468828f65a9aeb9436fd7cd7e7b
2019-02-20 10:11:09 +01:00
Nicolas Silva
a9803d039d Bug 1529272 - Reduce the amount of allocations, hashing and moves related to FontInstance. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D20503

--HG--
extra : source : 8c408c32fb6fdd1162938336ab26ece65a249c82
extra : histedit_source : c19032ba76065988f2fb4bc62d207e2437bfb90e
2019-02-22 14:53:37 +01:00
Timothy Nikkel
c85a512b81 Bug 1505871. Add a wrench reftest. 2019-02-26 00:16:37 -06:00
Timothy Nikkel
3bf7ef2abf Bug 1505871. Fix comment to not trigger angle_shader_validation.rs.
angle_shader_validation.rs just checks that the number of "switch" and "default:" are the same number in the source file, even if they occur in comments.
2019-02-26 00:16:37 -06:00
Timothy Nikkel
78f0cf02be Bug 1505871. Work around a suspected shader miscompilation on Windows. r=gw
On Windows the vFuncs array is always 0 in the fragment shader. If we move the computation of the vFuncs array outside of the switch (so that it is computed for every type of shader, even when it is not needed) then it works.
2019-02-26 00:16:37 -06:00
Timothy Nikkel
6919a21fa6 Bug 1505871. Implementation of shaders. r=gw 2019-02-26 00:16:37 -06:00
Timothy Nikkel
487492593e Bug 1505871. Implement putting the required data in the gpu cache for component transfer. r=gw
For table/discrete we just create a lookup table for all 256 possible input values. We should probably switch to just computing the value in the shader, unless the list of value is really long.
2019-02-26 00:16:37 -06:00
Timothy Nikkel
c0ef28ed8e Bug 1505871. Pass DataStores to prepare_for_render. r=gw
We need this to get get filter data from the intern table.
2019-02-26 00:16:37 -06:00
Timothy Nikkel
7a0fe66d40 Bug 1505871. Don't borrow frame_state.surface for the duration of prepare_for_render. r=gw
We need to call update on the filter data handle which needs to use frame_state (in a later patch), so we can't borrow across that call.
2019-02-26 00:16:36 -06:00
Timothy Nikkel
02ac32975f Bug 1505871. Implement the necessary things for interning of filter data. r=gw 2019-02-26 00:16:36 -06:00
Timothy Nikkel
dad4e9d0b7 Bug 1505871. Implement yaml reader/writer for component transfer. r=jrmuizel 2019-02-26 00:16:36 -06:00
Timothy Nikkel
f39f60fa91 Bug 1505871. Write component transfer filter data into the webrender display list bitstream. r=jrmuizel
The format for stacking contexts in the built display list goes from

PushStackingContext item
push_iter of Vec<FilterOp>

to

SetFilterOps item
push_iter of Vec<FilterOp>
1st SetFilterData item
push_iter of array of func types
push_iter funcR values
push_iter funcG values
push_iter funcB values
push_iter funcA values
.
.
.
nth SetFilterData item
push_iter of array of func types
push_iter funcR values
push_iter funcG values
push_iter funcB values
push_iter funcA values
PushStackingContext item

We need separate a SetFilterData item for each filter because we can't push_iter a variable sized thing.

When we iterate over the built display list to flatten it we work similarly to how gradients work with a SetGradientStops item before the actual gradient item. So when we see SetFilterOps or SetFilterData we use them to fill out values on the built display list iterator but don't those items return them to the iterator user and instead continue iterating until we hit the PushStackingContext item, at which point to the iterator consumer it appears as those the FilterOps and FilterDatas were on the PushStackingContext item. (This part is trickier too since we need a TempFilterData type that just holds ItemRange's until we get the actual bytes later.)

Do we need to clear cur_filters and cur_filter_data at some point to prevent them from getting ready by items for which they do not apply?
2019-02-26 00:16:36 -06:00
Timothy Nikkel
213203d8e5 Backed out changeset 90660632d641 2019-02-25 22:48:04 -06:00
Timothy Nikkel
736fc91b3f Backed out changeset def812790f5c 2019-02-25 22:47:54 -06:00
Timothy Nikkel
8238bfd239 Backed out changeset 11c9d5a64a30 2019-02-25 22:47:40 -06:00
Timothy Nikkel
e4b483e186 Backed out changeset 1206e1a32e5f 2019-02-25 22:47:23 -06:00
Timothy Nikkel
aac71db24c Bug 1505871. Don't borrow frame_state.surface for the duration of prepare_for_render. r=gw
We need to call update on the filter data handle which needs to use frame_state (in a later patch), so we can't borrow across that call.
2019-02-25 22:45:16 -06:00
Timothy Nikkel
22cf8be9b7 Bug 1505871. Implement the necessary things for interning of filter data. r=gw 2019-02-25 22:45:16 -06:00
Timothy Nikkel
24dc00068c Bug 1505871. Implement yaml reader/writer for component transfer. r=jrmuizel 2019-02-25 22:45:16 -06:00
Timothy Nikkel
5455bb5b62 Bug 1505871. Write component transfer filter data into the webrender display list bitstream. r=jrmuizel
The format for stacking contexts in the built display list goes from

PushStackingContext item
push_iter of Vec<FilterOp>

to

SetFilterOps item
push_iter of Vec<FilterOp>
1st SetFilterData item
push_iter of array of func types
push_iter funcR values
push_iter funcG values
push_iter funcB values
push_iter funcA values
.
.
.
nth SetFilterData item
push_iter of array of func types
push_iter funcR values
push_iter funcG values
push_iter funcB values
push_iter funcA values
PushStackingContext item

We need separate a SetFilterData item for each filter because we can't push_iter a variable sized thing.

When we iterate over the built display list to flatten it we work similarly to how gradients work with a SetGradientStops item before the actual gradient item. So when we see SetFilterOps or SetFilterData we use them to fill out values on the built display list iterator but don't those items return them to the iterator user and instead continue iterating until we hit the PushStackingContext item, at which point to the iterator consumer it appears as those the FilterOps and FilterDatas were on the PushStackingContext item. (This part is trickier too since we need a TempFilterData type that just holds ItemRange's until we get the actual bytes later.)

Do we need to clear cur_filters and cur_filter_data at some point to prevent them from getting ready by items for which they do not apply?
2019-02-25 22:45:15 -06:00
Kartikaya Gupta
c366cdefb9 Bug 1528987 - Send the gecko scroll offsets for scrollframes to WR. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D20667

--HG--
extra : moz-landing-system : lando
2019-02-21 21:06:25 +00:00
Glenn Watson
9ef53fde87 Bug 1529378 - Corruption on Google Calendar time period selector. r=kvark
This bug occurs under the following conditions:
 - The clip chain instance has multiple clip items.
 - The first item in the clip chain is a clip rectangle, with:
   - ClipMode::Clip
   - Is in the same coordinate system as the primitive.

In this case, the code would skip adding the clip rect to the
mask (due to the same coord system). However, the logic that
determines whether to render subsequent masks with blend disabled
or multiplicative blend was only considering the index of the
clip item in the clip chain. In this case, these masks would
get added to the blend enabled batches, but the first clip mask
which would have written the initial mask values was skipped.

The end result was that the subsequent clip masks would be
blending with uninitialized render target contents from a previous
frame.

This patch changes the logic to track when the first clip mask
has actually been added to the batch, rather than relying on
the index. In this case, it means that the rounded rect mask
will get drawn in the blend disabled path, writing the correct
mask values without blending with the existing render target contents.

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

--HG--
extra : moz-landing-system : lando
2019-02-21 03:05:59 +00:00
Kartikaya Gupta
3797456260 Bug 1523080 - Don't apply the pipeline clip to display items inside a SC with a clip. r=kvark
Without this patch, if we got a display item with the root clip id, we
would always clip that display item with the root clip of the enclosing
pipeline. However, this violates the documented semantics on
ClipId::root() which states that it effectively does no clipping.
Specifically, it could end up doing clipping if the display item was
part of a scrollframe that was scrolled such that the display item
extended beyond the enclosing pipeline.

This patch adds an extra argument to some of the flattening functions -
the flag is true when recursing the DL between a pipeline item and the
first stacking context that has a clip. For these items, the pipeline
clip is applied. Once inside the stacking context, the pipeline clip is
not applied.

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

--HG--
extra : moz-landing-system : lando
2019-02-20 20:40:05 +00:00
Csoregi Natalia
208f1b790a Backed out 2 changesets (bug 1529117) for failures on webdriver/tests/new_session/invalid_capabilities.py. CLOSED TREE
Backed out changeset 27882e7ca2a9 (bug 1529117)
Backed out changeset fcfafe134f70 (bug 1529117)
2019-02-20 18:20:49 +02:00
Kartikaya Gupta
15cd3ce2f6 Bug 1529117 - Bump serde_derive to branch from 1.0.88. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D20460

--HG--
extra : moz-landing-system : lando
2019-02-20 13:58:32 +00:00
Nicolas Silva
a1a6e98c02 Bug 1476368 - Preallocate a few more items in the render task tree. r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D20193

--HG--
extra : moz-landing-system : lando
2019-02-19 19:17:31 +00:00
Nicolas Silva
cb6ed5e452 Bug 1527884 - Make webrender_build publishable. r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D20134

--HG--
extra : moz-landing-system : lando
2019-02-19 16:06:01 +00:00
Glenn Watson
9314a751d7 Bug 1491929 - Text is rasterized at the wrong resolution. r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D20276

--HG--
extra : moz-landing-system : lando
2019-02-19 20:25:40 +00:00
Glenn Watson
702c53489e Bug 1528157 - Optimize GPU time for clip mask generation. r=kvark
On integrated GPUs, we are typically completely bound by memory
bandwidth and the number of pixels that get written / blended.

On real world pages, it's often the case that we end up with
clip tasks that are long in one dimension but not the other, due
to box-shadow edges, clip mask segments etc. When this occurs,
the logic that tries to get a small 'used_rect' to clear targets
to fails, since the union of those ends up being a very large
rect that covers (most of) the surface. This can cost a lot of
GPU time on some integrated chipsets.

Instead, it appears to be much faster to issue multiple clears,
one for each clip mask region, which is typically < 10% of the
surface we were clearing previously.

However, we can also restore an old optimization we used to have
which means we can skip clears altogether in the common case. The
first mask in a clip task will write to all the pixels in the mask,
so we can draw that with blending disabled (also a significant win
on integrated GPUs) and skip the clear in these cases. With this
functionality in place, the multiplicative blend mode is only
enabled for any clips other than the first in a mask (this is
quite a rare case - most clip tasks end up with a single mask).

On low end GPUs driving a 4k screen, I've measured GPU wins of up
to 5 ms/frame on some real world pages with this change.

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

--HG--
extra : moz-landing-system : lando
2019-02-19 20:52:27 +00:00
Glenn Watson
9214b9fd29 Bug 1528866 - Specify device pixel ratio per render task. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D20245

--HG--
extra : moz-landing-system : lando
2019-02-19 09:11:09 +00:00
sotaro
087c420a72 Bug 1526213 - Enable WebRenderTextureHostWrapper for canvas r=nical
By using WebRenderTextureHostWrapper for canvas, we could avoid triggering frame build on WebRender backend if WebRenderTextureHostWrapper is only change.

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

--HG--
extra : moz-landing-system : lando
2019-02-18 09:33:32 +00:00
Nicolas Silva
b92eadafcf Bug 1476368 - Preallocate the render task tree. r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D19916

--HG--
extra : moz-landing-system : lando
2019-02-15 16:57:43 +00:00
Dzmitry Malyshau
78eba476ed Bug 1527325 - Refactor webrender_api includes r=gw,nical
Differential Revision: https://phabricator.services.mozilla.com/D19499

--HG--
extra : moz-landing-system : lando
2019-02-15 18:59:31 +00:00
Noemi Erli
0e4944369a Backed out changeset 541f044e3e7b (bug 1527325) for webrender bustage CLOSED TREE 2019-02-15 20:14:54 +02:00
Dzmitry Malyshau
1a4b75a034 Bug 1527325 - Refactor webrender_api includes r=gw,nical
Differential Revision: https://phabricator.services.mozilla.com/D19499

--HG--
extra : moz-landing-system : lando
2019-02-15 17:39:40 +00:00
Nicolas Silva
faade4c98a Bug 1527884 - Make wr_malloc_size_of publishable. r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D19942

--HG--
extra : moz-landing-system : lando
2019-02-15 15:47:00 +00:00
Nicolas Silva
b32dce70e6 Bug 1527884 - WebRender version 0.60.0. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D19796

--HG--
extra : moz-landing-system : lando
2019-02-15 02:54:40 +00:00
Kartikaya Gupta
ca0bceb4a8 Bug 1516568 - Fuzz a couple of mac reftests. r=gw
For some reason running these via cross-compiled wrench in Mozilla
automation produces a few pixels difference.

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

--HG--
extra : source : f06721b552a819e4d2456f1c31d62c782d9a42cb
2019-02-15 01:32:10 +00:00
Kartikaya Gupta
c5e6c813f1 Bug 1516568 - Update WR mac CI scripts to allow cross-compiling. r=kvark
This introduces some env vars to allow running cross-compiled
binaries instead of running things on the builder. Additionally
the `cargo test --features "ipc"` check is modified to be `check`
instead since there are no actual tests being run by that command.
The only thing we lose is a rustdoc example check but we are
checking that on Linux anyway so doing it for Mac is redundant.

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

--HG--
extra : source : ee403c79877e028c58fa9091dd360fe50a80af37
2019-02-15 01:32:06 +00:00
Kartikaya Gupta
e537a097f1 Bug 1516568 - Update osmesa-src to includes servo/osmesa-src#33 for cross-compiling support. r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D19366

--HG--
extra : source : 8990eef6c31e6071a433f4007c08491dadb2ab5b
2019-02-15 01:32:02 +00:00
Dorel Luca
b73b2c4f67 Backed out 7 changesets (bug 1516568) for Docker and Toolchain failures. CLOSED TREE
Backed out changeset 79120d13e713 (bug 1516568)
Backed out changeset 028c0ed368b8 (bug 1516568)
Backed out changeset f06721b552a8 (bug 1516568)
Backed out changeset ee403c79877e (bug 1516568)
Backed out changeset 8990eef6c31e (bug 1516568)
Backed out changeset f6413e576a21 (bug 1516568)
Backed out changeset e9f887f489e5 (bug 1516568)
2019-02-15 05:16:55 +02:00
Kartikaya Gupta
7fdac6c6fe Bug 1516568 - Fuzz a couple of mac reftests. r=gw
For some reason running these via cross-compiled wrench in Mozilla
automation produces a few pixels difference.

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

--HG--
extra : moz-landing-system : lando
2019-02-15 01:32:10 +00:00
Kartikaya Gupta
a79bc23095 Bug 1516568 - Update WR mac CI scripts to allow cross-compiling. r=kvark
This introduces some env vars to allow running cross-compiled
binaries instead of running things on the builder. Additionally
the `cargo test --features "ipc"` check is modified to be `check`
instead since there are no actual tests being run by that command.
The only thing we lose is a rustdoc example check but we are
checking that on Linux anyway so doing it for Mac is redundant.

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

--HG--
extra : moz-landing-system : lando
2019-02-15 01:32:06 +00:00
Kartikaya Gupta
aab00418a2 Bug 1516568 - Update osmesa-src to includes servo/osmesa-src#33 for cross-compiling support. r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D19366

--HG--
extra : moz-landing-system : lando
2019-02-15 01:32:02 +00:00
Dzmitry Malyshau
bc15820709 Bug 1527498 - Separate picture texture cache r=gw
Manage the texture space for picture tiles separately inside the texture cache.

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

--HG--
extra : moz-landing-system : lando
2019-02-14 14:20:15 +00:00
Bogdan Tara
3ccaa3b9ba Backed out changeset e23608ddeac0 (bug 1527884) for wrench bustages CLOSED TREE 2019-02-14 16:43:24 +02:00
Nicolas Silva
3d93798308 Bug 1527884 - WebRender version 0.60.0. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D19780

--HG--
extra : moz-landing-system : lando
2019-02-14 13:40:51 +00:00
Dzmitry Malyshau
f8d9851e68 Bug 1527498 - WR texture cache code cleanup r=jrmuizel
This is a preparatory change that can be useful by itself:
  - use match on EntryKind to allow safe expansion
  - avoid code duplication in get()
  - fix some comments

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

--HG--
extra : moz-landing-system : lando
2019-02-13 21:49:55 +00:00
Glenn Watson
e44f3a225c Bug 1527522 - Add external hooks to WR to allow integration with the Gecko profiler. r=kvark,emilio
Differential Revision: https://phabricator.services.mozilla.com/D19611

--HG--
extra : moz-landing-system : lando
2019-02-13 21:46:32 +00:00
Cosmin Sabou
01b4b3830e Backed out changeset bc69bea83b66 (bug 1527522) for wrench bustages. CLOSED TREE 2019-02-13 09:03:44 +02:00
Glenn Watson
6bb5798bee Bug 1527522 - Add external hooks to WR to allow integration with the Gecko profiler. r=kvark,emilio
Differential Revision: https://phabricator.services.mozilla.com/D19611

--HG--
extra : moz-landing-system : lando
2019-02-13 04:02:02 +00:00
Coroiu Cristina
92656e7b34 Merge mozilla-central to autoland a=merge on a CLOSED TREE 2019-02-12 18:35:15 +02:00
Coroiu Cristina
f81d1ce91c Merge inbound to mozilla-central a=merge 2019-02-12 18:28:37 +02:00
Oana Pop Rus
c603510fa9 Merge mozilla-central to inbound. a=merge CLOSED TREE 2019-02-12 12:12:06 +02:00
Nicolas Silva
84c6dd61c6 Bug 1509643 - Add a wrench test. r=kats
Differential Revision: https://phabricator.services.mozilla.com/D18948
2019-02-12 10:34:19 +01:00
Glenn Watson
d89bce1d49 Bug 1526856 - Reduce GPU cache uploads a bit. r=kvark,nical
By retaining a global GPU cache handle for a dummy image block, we
can reduce the per-frame GPU cache uploads quite a bit, which
helps with compositor time.

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

--HG--
extra : moz-landing-system : lando
2019-02-12 06:23:01 +00:00
Glenn Watson
1870b572f5 Bug 1526504 - border-style is not drawn with double r=emilio
The WR double style border shader has a condition to check if the
widths of the edges are too small to apply the style, in which case
it draws the border segment as solid. However, the check was
incorrectly skipping when the width of the inner / outer edge
was exactly one pixel.

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

--HG--
extra : moz-landing-system : lando
2019-02-12 01:20:50 +00:00
Dzmitry Malyshau
941e6a2a63 Bug 1526235 - WR draw image tiles as segments r=gw,nical
We are currently drawing tiles as separate primitives. This doesn't work well for
masking out edge AA between tiles, since they aren't aware of each other.

The change switches image tiles to be drawn as segments sharing the same header.

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

--HG--
extra : moz-landing-system : lando
2019-02-12 15:38:12 +00:00
Csoregi Natalia
338f679cf8 Backed out changeset 6e756f4116ee (bug 1526856) for bustage due to gfx/wr/webrender/src/frame_builder.rs. CLOSED TREE 2019-02-11 22:59:46 +02:00
Glenn Watson
56ceb5073a Bug 1526856 - Reduce GPU cache uploads a bit. r=kvark,nical
By retaining a global GPU cache handle for a dummy image block, we
can reduce the per-frame GPU cache uploads quite a bit, which
helps with compositor time.

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

--HG--
extra : moz-landing-system : lando
2019-02-11 20:44:57 +00:00
Dzmitry Malyshau
19e28f4a85 Bug 1526593 - WR capture frame builder state r=gw
Saves a whole lot of useful data to peek in "builder-X-Y.ron"

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

--HG--
extra : moz-landing-system : lando
2019-02-11 19:54:19 +00:00
Dzmitry Malyshau
fa4942c8fe Bug 1524797 - Enable non-screen rasterization of the plane splits r=gw
We used to hard-code the raster spatial node of plane splits to the root.
Now we are using the actual root during batching.

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

--HG--
extra : moz-landing-system : lando
2019-02-11 19:59:47 +00:00
Nicolas Silva
ea955a3c08 Bug 1523495 - Reftests adjustments. r=gw,kats,nical
Differential Revision (1): https://phabricator.services.mozilla.com/D18938
Differential Revision (2): https://phabricator.services.mozilla.com/D18854

--HG--
extra : histedit_source : 6d23aa08b25a7d41bf036c0cfccd2acaf00b24d7
2019-02-07 11:32:53 +01:00
Glenn Watson
51d033a6e2 Bug 1527233 - Remove unused fields from PictureContext and PictureState. r=nical
Differential Revision: https://phabricator.services.mozilla.com/D19462

--HG--
extra : moz-landing-system : lando
2019-02-12 08:56:44 +00:00
Nicolas Silva
0351727ed2 Bug 1523495 - Adjust blur target sizes to avoid down-scaling artifacts. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D18855
2019-02-06 18:13:28 +01:00
Nicolas Silva
f7b60f1a61 Bug 1523495 - Adjust shadow blur target sizes to avoid down-scaling artifacts. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D18856
2019-02-06 16:08:24 +01:00
Sam Rijs
f48b9f973d Bug 1526769 - always initialize local_transform to the identity matrix r=nical
[wrupdater] From https://github.com/servo/webrender/pull/3547

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

--HG--
extra : moz-landing-system : lando
2019-02-11 09:58:50 +00:00
Oana Pop Rus
03ebbdab95 Merge inbound to mozilla-central. a=merge 2019-02-08 11:53:37 +02:00
Razvan Maries
8add624474 Merge mozilla-central to mozilla-inbound. a=merge on a CLOSED TREE 2019-02-08 06:26:00 +02:00
Glenn Watson
14a75ee1b7 Bug 1525741 - Support animating yaml files in wrench. r=kvark
Add support for supplying a keyframe file to animate a wrench
yaml file with.

For now, the keyframe animation file must supply a keyframe for
every frame. In future, we may expand this to allow specifying
interpolation ranges.

For now, this is for development purposes only - however we can
easily extend this to support animated reftests in the future.

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

--HG--
extra : moz-landing-system : lando
2019-02-07 18:03:59 +00:00
Csoregi Natalia
877e193c08 Backed out changeset 3ed3848d7631 (bug 1509643) for webrender tidy bustage. CLOSED TREE 2019-02-07 20:57:27 +02:00
Nicolas Silva
b0949ebd60 Bug 1509643 - Add a wrench test. r=kats
Differential Revision: https://phabricator.services.mozilla.com/D18948

--HG--
extra : moz-landing-system : lando
2019-02-07 13:19:42 +00:00
Glenn Watson
0357f500c0 Bug 1525740 - Visual artifacts in add-on menu with webrender enabled on mac intel. r=jrmuizel
The existing picture caching code in WR assumes that the tiles are being
drawn into the main framebuffer. This is true to the main content frame,
however it's not the case for all popup windows. In the case of popup
windows on mac, they have a rounded rect clip, which results in a surface
being used. This breaks some assumptions in the picture caching code.

The long term fix involves supporting picture caching on surfaces. However,
we don't want picture caching on for non-content windows anyway (due to
wasting texture memory), so for now we will simply disable picture cache
composite modes if they are being drawn on a non-root surface.

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

--HG--
extra : moz-landing-system : lando
2019-02-07 15:42:06 +00:00
Andrew Osmond
6cba1775c3 Bug 1453935 - Ensure that we snap within the visible rect with WebRender. r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D18869
2019-02-07 18:05:43 -05:00
Andreea Pavel
7e3beb59f7 Backed out changeset 87ad4b91e29f (bug 1453935) for reftest failures on a CLOSED TREE 2019-02-08 00:45:29 +02:00
Andrew Osmond
fa36639a3b Bug 1453935 - Ensure that we snap within the visible rect with WebRender. r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D18869
2019-02-07 15:26:54 -05:00
Dzmitry Malyshau
5c7daec3ac Bug 1524797 - WR: rework the relative transform query on a clip-scroll tree r=gw
This change rewords get_relative_transform and assotiated pieces of logic,
so that we flatten the transforms at preserve-3d context boundaries.

It addresses a problem found by 1524797 but doesn't resolve the bug yet (!).
There is another issue likely contributing here, and we can treat this PR
as WIP and not merge until the case is completely resolved.

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

--HG--
extra : moz-landing-system : lando
2019-02-12 15:05:01 +00:00
Dzmitry Malyshau
4d33ea2da4 Bug 1530576 - WR track vao bindings better r=gw
this change makes sure that bindings are always synced.

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

--HG--
extra : moz-landing-system : lando
2019-02-26 06:30:44 +00:00
Dzmitry Malyshau
11ec852e1a Bug 1522015 - WR don't panic on non-mappable clip rect r=gw
Differential Revision: https://phabricator.services.mozilla.com/D18846

--HG--
extra : moz-landing-system : lando
2019-02-06 19:51:30 +00:00
Glenn Watson
d8ff6b6597 Bug 1525500 - Add a zoom debugging widget in webrender. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D18776

--HG--
extra : moz-landing-system : lando
2019-02-06 10:20:39 +00:00
Glenn Watson
136f478349 Bug 1525497 - Fix laggy event handling in wrench. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D18775

--HG--
extra : moz-landing-system : lando
2019-02-06 09:20:03 +00:00
Glenn Watson
43dfba16ac Bug 1524385 - Set the current clip chain on the stacking context item. r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D18527

--HG--
extra : moz-landing-system : lando
2019-02-06 04:35:37 +00:00
Dzmitry Malyshau
bbf4f1218b Bug 1525087 - Plane split dependency update to 0.13.5 r=kats
Update to have https://github.com/servo/plane-split/pull/27 included

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

--HG--
extra : moz-landing-system : lando
2019-02-05 15:28:52 +00:00
Dorel Luca
0890a752bc Backed out changeset 553538a675ec (bug 1525087) for causing Wrench failure. CLOSED TREE 2019-02-05 01:29:13 +02:00
Dzmitry Malyshau
ead2cc5bf9 Bug 1525087 - Plane split dependency update to 0.13.5 r=kats
Update to have https://github.com/servo/plane-split/pull/27 included

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

--HG--
extra : moz-landing-system : lando
2019-02-04 20:00:27 +00:00
Sam Rijs
303477293e Bug 1525032 - use switch statement for text snapping decision r=lsalzman
[wrupdater] From https://github.com/servo/webrender/pull/3540

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

--HG--
extra : moz-landing-system : lando
2019-02-04 16:37:12 +00:00
Emilio Cobos Álvarez
3d4396cce6 Bug 1524822 - Fix warnings with rust 1.34+. r=jrmuizel
There's some new limited const fn support in stable, and this is the recommended
way to initialize atomics now.

If this for some reason doesn't compile in all platforms / versions we support
I'll just sprinkle some #[allow(deprecated)] instead.

Also, cargo changes the output of Cargo.lock, see
https://github.com/rust-lang/cargo/issues/6180. So also update those comments.

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

--HG--
extra : moz-landing-system : lando
2019-02-03 03:20:52 +00:00
Dzmitry Malyshau
8c617a84d2 Bug 1523347 - Plane-split update to 0.13.4 r=kats
new version includes necessary quality fixes for plane-splitting

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

--HG--
extra : moz-landing-system : lando
2019-02-02 04:11:25 +00:00
Glenn Watson
803eadae41 Bug 1523882 - Rework snapping logic in clip mask generate to fix uneven box shadows. r=kvark,nical
Differential Revision: https://phabricator.services.mozilla.com/D18060

--HG--
extra : moz-landing-system : lando
2019-02-01 23:24:53 +00:00
Oana Pop Rus
fa24444292 Merge autoland to mozilla-central. a=merge 2019-02-01 11:32:06 +02:00
Noemi Erli
b74da84051 Backed out changeset e6f1ffb7119f (bug 1523882) per dev's request for causing major perf regression a=backout 2019-02-01 08:56:22 +02:00
Dzmitry Malyshau
63d7fc4dcd Bug 1515932 - WR fix establish_raster_root boolean on a picture r=gw
This is a follow-up to https://phabricator.services.mozilla.com/D18258
which updates establish_raster_root boolean. It affects the perspective interpolation
of brushes.

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

--HG--
extra : moz-landing-system : lando
2019-02-01 02:23:15 +00:00
Dzmitry Malyshau
e43c96e640 Bug 1515932 - WR rasterization root fall-back r=gw
This is a follow-up to https://phabricator.services.mozilla.com/D16560

Previously, we had a conservative estimation of the local size based on the footprint
of the screen onto the potential raster root. This was too conservative in general,
and in some cases it wasn't conservative enough, since with filters we can have areas
needed in local space that don't necessarily project on the screen.

This change is doing an exact check for the surface size after we compute it, and
falls back to the parent raster root accordingly.

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

--HG--
extra : moz-landing-system : lando
2019-01-31 21:30:32 +00:00
Glenn Watson
e23265ad97 Bug 1523882 - Rework snapping logic in clip mask generate to fix uneven box shadows. r=kvark,nical
Differential Revision: https://phabricator.services.mozilla.com/D18060

--HG--
extra : moz-landing-system : lando
2019-01-31 20:18:18 +00:00
shindli
4db94822bd Backed out changeset 86daa5d406b6 (bug 1523882) for wrench bustage in reftests/boxshadow/box-shadow-huge-radius.png CLOSED TREE 2019-01-31 22:02:27 +02:00
Glenn Watson
165f400dbd Bug 1523882 - Rework snapping logic in clip mask generate to fix uneven box shadows. r=kvark,nical
Differential Revision: https://phabricator.services.mozilla.com/D18060

--HG--
extra : moz-landing-system : lando
2019-01-31 19:39:02 +00:00
Jamie Nicol
74e9823383 Bug 1496540 - Handle overlapping border corners in webrender r=gw
When some of a border's corners have a border-radius, and that radius
is larger than the sum of the border width and element size, then it
results in the corners of the border overlapping. Webrender draws
borders by rasterizing each segment individually in to the cache, then
compositing them together. In this overlapping case, this has 2
problems:

a) we composite overlapping segments on top of eachother
b) corner segments are not correctly clipped to the curve of the
   overlapping adjacent corners

This patch allows corner segments to be clipped by their adjacent
corners. We provide the outer corner position and radii of the
adjacent corners to the border shader, which then applies those clips,
if required, along with the segment's own corner clip when rasterizing
the segment.

As the adjacent corners now affect the result of the cached segment,
they are added to the cache key.

We continue to rasterize the entire segment in to the cache as before,
but now modify the local rect and texel rect of the BrushSegment so
that it only composites the subportion of the corner segment which
does not overlap with the opposite edges of the border.

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

--HG--
extra : moz-landing-system : lando
2019-01-31 18:31:47 +00:00
Narcis Beleuzu
8707bfb5f2 Backed out changeset 25ca68e7836e (bug 1523882) for wrench bustages on boxshadow-spread-only-ref.png. CLOSED TREE 2019-01-31 11:49:12 +02:00
Glenn Watson
8844b8b1c8 Bug 1523882 - Rework snapping logic in clip mask generate to fix uneven box shadows. r=kvark,nical
Differential Revision: https://phabricator.services.mozilla.com/D18060

--HG--
extra : moz-landing-system : lando
2019-01-31 09:02:41 +00:00
Narcis Beleuzu
5555771b75 Backed out changeset 869fbaef1042 (bug 1524117) for wrench bustages on canvas.yaml. CLOSED TREE 2019-01-31 10:22:54 +02:00
Matt Woodrow
61569917d1 Bug 1524117 - Skip mix-blend mode operators in WebRender if we're sure they won't have any effect. r=gw
Differential Revision: https://phabricator.services.mozilla.com/D18157

--HG--
extra : moz-landing-system : lando
2019-01-31 06:59:07 +00:00
Glenn Watson
6df4e561ff Bug 1524149 - Fix origin when adding tiled clip masks. r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D18173

--HG--
extra : moz-landing-system : lando
2019-01-31 04:14:24 +00:00
Dzmitry Malyshau
5a351be647 Bug 1521656 - WR switch image UV quad coordinates into homogeneous space r=gw
For screen-space rasterized images, we provide the shader with the
    UV corners of an image. The shaders then interpolate between the corners
    as an intermediate step of finding their UV to assign to a vertex.

    When the transformation is perspective, the corners stop being
    representative in real screen space, and the old code didn't handle the
    case of a corner being out of the positive hemisphere. This change
    doesn't do perspective division on Rust side and defers this to the
    shader, which can do division *after* interpolation between corners.

    This change makes us handle the near plane better and resolves clipping
    problems with perspective-interpolated images that occured due to
    precision issues of perspective divided corners.

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

--HG--
extra : moz-landing-system : lando
2019-01-31 02:50:38 +00:00
Dan Glastonbury
3ae3119574 Bug 1522218 - An assortment of scaled border wrench reftests. r=gw
Depends on D17456

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

--HG--
extra : moz-landing-system : lando
2019-01-30 09:02:16 +00:00
Dan Glastonbury
2a84ee8b7c Bug 1522218 - Incorporate layout to world scaling for borders. r=gw,mattwoodrow
Implement scaling of borders using the same scale extraction and clamping to
nearest power of two that gecko uses in FrameLayerBuilder::ChooseScale.

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

--HG--
extra : moz-landing-system : lando
2019-01-30 04:08:23 +00:00
Bobby Holley
06c9ebf4d3 Bug 1512287 - Support incremental invalidation tests in wrench. r=gw
Note that the dirty rect assertions don't seem to quite work yet, but
Glenn is going to take over that last piece.

Depends on D17995

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

--HG--
extra : moz-landing-system : lando
2019-01-30 17:18:09 +00:00
Bobby Holley
eb9412b5fb Bug 1512287 - Don't recalculate root_clip_rect if in the root pipeline. r=gw
The current code panics with an out-of-bounds access here if picture
caching is used outside an iframe.

Depends on D17994

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

--HG--
extra : moz-landing-system : lando
2019-01-30 08:59:04 +00:00
Bobby Holley
44128c7c85 Bug 1512287 - Enable picture caching after 1 frame of identical content, rather than two, and expose constant. r=gw
Per discussion with gw, the current behavior is an oversight. We also
want to expose this to wrench.

Depends on D17993

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

--HG--
extra : moz-landing-system : lando
2019-01-30 08:58:40 +00:00
Bobby Holley
f12e716db2 Bug 1512287 - Use smaller tiles during testing. r=gw
Depends on D17992

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

--HG--
extra : moz-landing-system : lando
2019-01-30 08:57:52 +00:00
Bobby Holley
d9c60f139c Bug 1512287 - Expose dirty regions to wrench. r=gw
Depends on D17991

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

--HG--
extra : moz-landing-system : lando
2019-01-30 08:57:37 +00:00
Bobby Holley
c7b68459e9 Bug 1512287 - Add a testing mode to WebRender. r=gw
There are various testing-only things we want to do here, specifically
copying around dirty regions, and shrinking the tile size. We could make
each of these specific options and thread them all through to the right
places, but that adds complexity without a use-case. So we just add a
simple testing mode for wrench.

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

--HG--
extra : moz-landing-system : lando
2019-01-30 08:55:25 +00:00
Nicolas Silva
08852a6035 Bug 1494403 - Support arbitrary tiling origins and negative tile offsets in the tile decomposition algorithm. r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D17123

--HG--
extra : moz-landing-system : lando
2019-01-29 16:36:47 +00:00
shindli
f7752f11b1 Merge inbound to mozilla-central. a=merge 2019-01-30 06:07:01 +02:00
Lee Salzman
27349e0008 Bug 1512010 - add wrench test for text snapping in raster spaces. r=gw 2019-01-29 17:24:18 -05:00
Emilio Cobos Álvarez
1b7e29eab8 Bug 1523436 - Remove a FIXME comment that turns out is not valid. 2019-01-29 21:36:34 +01:00
Dzmitry Malyshau
1df57d7ca5 Bug 1431582 - WR support non-locally-rasterized split planes r=gw
Now that we no longer guarantee that a picture with perspective transform is rasterized in local space, we need to ensure that the shaders don't apply perspective correction to the texture coordinates twice.
For that to be the case, we pass an extra flag to the plane splitting shader, and un-do the perspective correction if it's not enabled.

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

--HG--
extra : moz-landing-system : lando
2019-01-29 19:34:55 +00:00
Cosmin Sabou
7c0150b58c Backed out changeset 131a5437e7d3 (bug 1431582) for causing wrench bustages. 2019-01-29 17:59:49 +02:00
Dzmitry Malyshau
a68eff5db8 Bug 1431582 - WR support non-locally-rasterized split planes r=gw
Now that we no longer guarantee that a picture with perspective transform is rasterized in local space, we need to ensure that the shaders don't apply perspective correction to the texture coordinates twice.
For that to be the case, we pass an extra flag to the plane splitting shader, and un-do the perspective correction if it's not enabled.

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

--HG--
extra : moz-landing-system : lando
2019-01-29 15:31:09 +00:00
Cosmin Sabou
599a15d354 Merge mozilla-inbound to mozilla-central. a=merge 2019-01-29 12:01:56 +02:00
Lee Salzman
56444ece80 Bug 1512010 - snap text positions without device transform in local raster space. r=gw 2019-01-28 22:23:00 -05:00
Sebastian Hengst
90f4b6640c Merge mozilla-inbound to mozilla-central. a=merge 2019-01-29 01:33:28 +02:00
Andrew Osmond
b651af0b33 Bug 1431582 - Add reduced test case for 3d transform bugs. r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D17864
2019-01-28 15:50:48 -05:00
Glenn Watson
11edbcda9f Bug 1523228 - Use down scaling more often to avoid blurs on very large blur radii. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D17797

--HG--
extra : moz-landing-system : lando
2019-01-28 09:14:46 +00:00
Glenn Watson
738c89e95d Bug 1523210 - Fix text runs being interned due to scroll offsets. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D17792

--HG--
extra : moz-landing-system : lando
2019-01-28 05:18:19 +00:00
Csoregi Natalia
1a6807b8f2 Backed out changeset 8d47e7f253d8 (bug 1523210) for wrench failures. CLOSED TREE 2019-01-28 06:34:57 +02:00
Glenn Watson
42fff5a810 Bug 1523210 - Fix text runs being interned due to scroll offsets. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D17792

--HG--
extra : moz-landing-system : lando
2019-01-28 02:55:00 +00:00
Glenn Watson
aaa0feb2a4 Bug 1522758 - Optimize drawing axis aligned clip rectangles into clip masks. r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D17606

--HG--
extra : moz-landing-system : lando
2019-01-26 21:11:53 +00:00