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

68 Коммитов

Автор SHA1 Сообщение Дата
Doug Thayer b172543596 Bug 1441308 - Core renderroot splitting changes r=kats,sotaro
This is a large patch that contains all of the core changes for
renderroot splitting.

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

--HG--
extra : moz-landing-system : lando
2019-03-22 18:28:42 +00:00
Ciure Andrei 3de853018a Backed out 7 changesets (bug 1441308)for causing webrender build bustages CLOSED TREE
Backed out changeset 1764701d11d1 (bug 1441308)
Backed out changeset 32f7793dfd1a (bug 1441308)
Backed out changeset d8b4d6ec9b40 (bug 1441308)
Backed out changeset e2f83e4816dd (bug 1441308)
Backed out changeset baee8ada680f (bug 1441308)
Backed out changeset c09a51622e98 (bug 1441308)
Backed out changeset 737807563dd5 (bug 1441308)
2019-03-22 10:52:44 +02:00
Doug Thayer 5b3a0454a4 Bug 1441308 - Core renderroot splitting changes r=kats,sotaro
This is a large patch that contains all of the core changes for
renderroot splitting.

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

--HG--
extra : moz-landing-system : lando
2019-03-22 03:15:14 +00:00
Ryan Hunt 85ff4bdc33 Bug 1523969 part 8 - Move method definition inline comments to new line in 'gfx/'. r=kats
Differential Revision: https://phabricator.services.mozilla.com/D21108

--HG--
extra : rebase_source : 48a4586f507891f3a2f0f970e9b9a0b15f0f3d61
2019-02-25 16:07:19 -06:00
Sylvestre Ledru e0c61dafa5 Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
Summary: # ignore-this-changeset

Reviewers: Ehsan

Reviewed By: Ehsan

Subscribers: emilio, jandem, bbouvier, jya

Bug #: 1519636

Differential Revision: https://phabricator.services.mozilla.com/D20062
2019-02-16 20:20:37 +01:00
Andrew Osmond bc9d7000be Bug 1527085 - Ensure we invalidate when the image request changes. r=jrmuizel
When the underlying image request (imgIRequest) changes for an image, we
need to ensure that we invalidate the cached WebRenderImageData such that
the image container stored therein is updated to be for the correct
image. This gets a little tricky because some display items store both
the current and previous images, and choose to display the latter if the
former is not yet ready. We also don't know what image the image
container belongs to. As such, we now compare the producer ID of the
current frame in the image container, to the expected producer ID of the
current image request. If they don't match, we must regenerate the
display list.

Differential Revision: https://phabricator.services.mozilla.com/D19699
2019-02-15 09:24:21 -05:00
Nicolas Silva 2517b42c0b Bug 1527441 - Separate WebRenderImageData and WebRenderFallbackData. r=jrmuizel
This patch is an attempt to separate the two and avoid accidentally getting into an inconsistent state.
WebRenderImageData manages resources for images that are shared with webrender, while WebRenderFallbackData manages state to render content, in most case in a blob image.
if the fallback data needs to render into a TextureClient, it creates a WebRenderImageData to hold on to the shared texture, but does not inherit from it anymore.

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

--HG--
extra : moz-landing-system : lando
2019-02-13 09:21:11 +00:00
Sylvestre Ledru 755a1a7c2f Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

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

--HG--
extra : moz-landing-system : lando
2019-01-21 14:49:22 +00:00
Andrew Osmond fde57ca333 Bug 1520158 - Avoid scene rebuilding for image frame updates if possible. r=jrmuizel
We already avoid scene rebuilding for animated image frame updates, but
we can easily apply this to still images. If the decoding is happening
slowly and in chunks for some reason (really large image, slow network),
then we may save some work.
2019-01-18 22:21:30 -05:00
Doug Thayer a848222b53 Bug 1441308 - Split out document pieces of WebRenderLayerManager r=jrmuizel
Per our discussion, this patch splits out the state management bits of
WebRenderLayerManager, allowing for them to be maintained per-document.

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

--HG--
extra : moz-landing-system : lando
2019-01-07 21:33:10 +00:00
Sylvestre Ledru 265e672179 Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset

--HG--
extra : amend_source : 4d301d3b0b8711c4692392aa76088ba7fd7d1022
2018-11-30 11:46:48 +01:00
Kartikaya Gupta cd40821489 Bug 1511042 - Back out some commits from bug 1503447 for introducing correctness and perf regressions. r=backout
This backs out hg commits 1e214baf8fc1, 7d4adeee5236, and f5ffebdcc014.
2018-11-29 14:24:25 -05:00
Nicolas Silva 9f96be2f26 bug 1510447 - Fix a blob image key leak. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D13262

--HG--
extra : source : a58f38fb47f3f436584a816ccbbc192ae9684d02
extra : intermediate-source : 6cca1b66a9dd1951abd51f6c3bf588a2ae46934c
2018-11-28 16:55:10 +01:00
Bogdan Tara fd7ba25ff9 Backed out changeset 848f4907fb07 (bug 1510447) for failures on 136/289480.html CLOSED TREE 2018-11-28 23:21:16 +02:00
Nicolas Silva 36ee7b97d0 bug 1510447 - Fix a blob image key leak. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D13262

--HG--
extra : moz-landing-system : lando
2018-11-28 16:16:29 +00:00
Dzmitry Malyshau 54ba2010c1 Bug 1503447 - Always use zero origin for WR reference frames and stacking contexts r=kats
Previously, WebRender was getting a rectangle for reference frames
and stacking contexts, and it had to carefully treat the origin of this rectange:
  - by offseting all the items in a stacking context
  - by negatively compensating the sticky frame scroll port according to the
parent reference frame origin

With this change, we stop providing any non-zero origins. Instead we accomplish
the same behavior using existing API primitives, such as reference frames:
  1. when a stacking context has an origin, we push another reference frame for it
  2. when computing the sticky frame scroll port, we take this origin into account

This slightly simplifies Gecko-WR API, but more importantly it would allow WR to
get rid of this logic (of handling origins), which in turn would allow to switch
the reference frames from push()/pop() model to just define(), like we do for
scroll/sticky frames already.

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

--HG--
extra : moz-landing-system : lando
2018-11-28 15:32:41 +00:00
Nicolas Silva 2fa6078f12 Bug 1494403 - Separate the Blob related apis. r=jrmuizel
This commit contains the Gecko-side changes from WebRender PR#3277:
 - Dedicated DirtyRect type.
 - Separate the blob image APIs from regular image ones.

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

--HG--
extra : moz-landing-system : lando
2018-11-23 23:33:49 +00:00
Hiroyuki Ikezoe 051215da7b Bug 1504884 - Drop AnimationInfo::mLayerManager. r=birtles
It's not used at all.

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

--HG--
extra : moz-landing-system : lando
2018-11-07 03:09:05 +00:00
Andrew Osmond 016a11ff73 Bug 1428558 - Part 7. Suppress display list regeneration for animated image updates. r=nical
This patch allows us to intercept invalidation requests for display
items, and avoid regenerating the display list for animated images which
are using SharedSurfacesAnimation.

Differential Revision: https://phabricator.services.mozilla.com/D7504
2018-11-02 09:09:52 -04:00
sotaro 12703134b4 Bug 1460515 - Reuse more image keys at WebRenderImageData::UpdateImageKey() r=nical 2018-07-11 17:45:28 +09:00
sotaro 3acc79b45a Bug 1472951 - Remove ExternalImageId allocation for ImageClient r=nical 2018-07-06 21:25:33 +09:00
sotaro 58705ea969 Bug 1405465 - Handle WR paint codepath with no frame r=kats 2018-06-29 08:32:26 +09:00
Kartikaya Gupta 8e7e2dbdb4 Bug 1454042 - Allow missing pipeline information for cross-process iframes. r=sotaro
We should always have the pipeline information for in-process things like
async images, but for cross-process iframes we might not have the information
right away if the content process doesn't get around to sending it for a while.

MozReview-Commit-ID: 18F5nqilXoV

--HG--
extra : rebase_source : 610046cbaaefb38b8e11bda857fd64a00722df27
2018-05-18 10:31:18 -04:00
Andrew Osmond 5ee6ae6297 Bug 1453801 - Part 1. Ensure WebRenderUserData objects are freed after a tab switch. r=sotaro 2018-04-23 07:57:13 -04:00
Jeff Muizelaar 7bd5060424 Bug 1450134. Replace ToRelativeLayoutRect() with ToRoundedLayoutRect(). r=kats
This function doesn't use any StackingContextHelper state anymore.
We should make what it does clearer and move it to a better place.

--HG--
extra : rebase_source : 1727be9657169547d842ec9b6887837abedbefdf
2018-03-29 17:57:43 -04:00
Bogdan Tara 4785e99532 Merge inbound to mozilla-central. a=merge 2018-03-17 12:29:57 +02:00
Jeff Muizelaar b0c6c75854 Bug 1439006. Allow multiple kinds of WebRenderUserData on a DisplayItem. r=mstange
Currently we can only have one type of WebRenderUserData on an Item. We already
have a hash table of WebRenderUserData so it's not hard to include type in the
hash to support one per type.

MozReview-Commit-ID: geJ0BeWv8b
2018-03-16 19:15:27 -04:00
Kartikaya Gupta 26139682b6 Bug 1441324 - Introduce an empty APZInputBridge protocol managed by PGPU. r=rhunt
This just adds the boilerplate that goes with the new protocol, without
adding any of the actual messages. The protocol is managed by PGPU, and
there will be one instance per compositor. The parent side lives on the
main thread of the GPU process, and the child side lives on the main
thread of the UI process. The protocol is only instantiated if the GPU
process is active.

MozReview-Commit-ID: J4VzwmEfYTa

--HG--
extra : rebase_source : 397ddda8b0e76e5ed5f63783b1220ed7b4414d99
2018-03-16 16:28:19 -04:00
Jeff Muizelaar c8a1c9f6f0 Bug 1446166. Ensure that WebRenderUserData's are removed when LayerManager is destroyed. r=kats
This lets us avoid having to check whether we have the right one when getting them.

MozReview-Commit-ID: 9YDiSd7AekB

--HG--
extra : rebase_source : 4e9ce48075fa02eba83209f545181a0883e7551e
2018-03-15 13:51:05 -04:00
sotaro 00c8806482 Bug 1430610 - Change nsIFrame::InvalidateLayer() as to check WebRender's async update r=mtseng 2018-01-18 13:28:49 +09:00
sotaro b3925d6d09 Bug 1430700 - Implement WebRenderFallbackData::ClearCachedResources() r=nical 2018-01-18 10:36:56 +09:00
sotaro 4bd6341225 Bug 1429694 - Fix WebRenderLayerManager::ClearCachedResources r=nical 2018-01-15 16:17:40 +09:00
vincentliu b059ffc41f Bug 1418999 - Update PipelineId to associate the latest ImageContainer. r=sotaro 2018-01-11 09:45:02 +08:00
Ethan Lin 87408bd0b0 Bug 1422013 - Invalidate image items for webrender. r=mattwoodrow
MozReview-Commit-ID: 701MZhcrf4l

--HG--
extra : rebase_source : 8bed0e5f812570685cf04f5b371da885294513e0
2017-12-04 11:12:25 +08:00
Andrew Osmond 4b721df4bc Bug 1421733 - Fix how WebRender shared surfaces image key lifetimes were inconsistent. r=jrmuizel 2017-11-29 14:11:19 -05:00
Ethan Lin e5621be884 Bug 1418374 - Discard blob image key when we create another new one. r=kats
MozReview-Commit-ID: FOa25SkYmdK

--HG--
extra : rebase_source : a04e8739df23c325d7026bfff714a9bddaea5b19
2017-11-21 11:49:42 +08:00
Ethan Lin a661b32865 Bug 1418869 - Do not try to share the fallback images. r=aosmond
The flag of force update is only for fallback items. Fallback items can't share the images with other items.
So I replace 'aForceUpdate' with 'aFallback' and remove some unnecessary checks.

MozReview-Commit-ID: Dcu95FZXlUz

--HG--
extra : rebase_source : 1ec96e0b5d39cc5760b4b5490c5ca9ccbc1933c6
2017-11-20 10:36:14 +08:00
Andrew Osmond 6615a08c2c Bug 1401672 - Make display items for the same WebRenderBridgeParent/Child share the ImageKey for shared surfaces. r=jrmuizel 2017-11-15 14:31:13 -05:00
Sebastian Hengst f07fc93141 merge mozilla-inbound to mozilla-central. r=merge a=merge
MozReview-Commit-ID: 4PW6ESqLL73
2017-10-30 23:52:23 +01:00
Andrew Osmond 95ee90ca7f Bug 1331944 - Part 8. Add plumbing to use shared surfaces if available in WebRenderImageData. r=jrmuizel 2017-10-30 13:10:29 -04:00
Daniel Holbert 126bd9e1a4 Bug 1412427 part 8: (automated patch) Switch a bunch of C++ files in gfx to use our standard mode lines. r=jrmuizel
This patch was generated automatically by the "modeline.py" script, available
here: https://github.com/amccreight/moz-source-tools/blob/master/modeline.py

For every file that is modified in this patch, the changes are as follows:
 (1) The patch changes the file to use the exact C++ mode lines from the
     Mozilla coding style guide, available here:
https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Coding_Style#Mode_Line

 (2) The patch deletes any blank lines between the mode line & the MPL
     boilerplate comment.

 (3) If the file previously had the mode lines and MPL boilerplate in a
     single contiguous C++ comment, then the patch splits them into
     separate C++ comments, to match the boilerplate in the coding style.

MozReview-Commit-ID: 77D61xpSmIl

--HG--
extra : rebase_source : c6162fa3cf539a07177a19838324bf368faa162b
2017-10-27 16:10:06 -07:00
Coroiu Cristina dfaf24241e Backed out changeset 7e1da430d9f9::7c56a10468d7 (bug 1331944) for bustage on Android at gfx/layers/ipc/SharedSurfacesParent.cpp r=backout on a CLOSED TREE
Backed out changeset 7c56a10468d7 (bug 1331944)
Backed out changeset b77eb1c48b73 (bug 1331944)
Backed out changeset 50b1fcf13fba (bug 1331944)
Backed out changeset 56e6ab347bae (bug 1331944)
Backed out changeset 5bdfda0b0b3a (bug 1331944)
Backed out changeset 40ec55507394 (bug 1331944)
Backed out changeset 83cc1f67e9f7 (bug 1331944)
Backed out changeset 7e1da430d9f9 (bug 1331944)
2017-10-30 15:52:07 +02:00
Andrew Osmond f676e38e98 Bug 1331944 - Part 8. Add plumbing to use shared surfaces if available in WebRenderImageData. r=jrmuizel 2017-10-30 09:10:45 -04:00
sotaro 23069babc9 Bug 1401609 - Add UpdateWebRenderCanvasData() to handle CanvasRenderer re-creation r=jrmuizel,mstange 2017-10-28 19:07:27 +09:00
Sebastian Hengst bf793df477 merge mozilla-inbound to mozilla-central. r=merge a=merge
MozReview-Commit-ID: HasKw28SN45
2017-10-19 11:26:22 +02:00
sotaro 1bf385dce6 Bug 1404232 - Add WebRenderCommandBuilder::ClearCachedResources() r=jrmuizel 2017-10-19 13:03:08 +09:00
Kartikaya Gupta d8ac050c91 Bug 1409856 - Update all the WebRender code to use LayoutDevice units instead of Layer units. r=jrmuizel
MozReview-Commit-ID: DP3hwlFWyZC
2017-10-18 22:25:11 -04:00
Ethan Lin 0d6bfa48a2 Bug 1391816 - Move layers-free related functions and variables from WebRenderLayerManager to WebRenderCommandsBuilder. r=jrmuizel
We have too many layers-free things in WebRenderLayerManager. I create a new
class WebRenderCommandsBuilder and move some functions and variables from
WebRenderLayerManager to WebRenderCommandsBuilder.

MozReview-Commit-ID: BJi1E51W7ax

--HG--
extra : rebase_source : ddbfb044d467430403a3c480030ef9dec803c9f7
2017-09-25 15:48:29 +08:00
Kartikaya Gupta 6310cd82fb Bug 1402439 - Redo how we discard compositor animation ids. r=pchang
Instead of always discarding the compositor animation id, and then
sometimes un-discarding it (which involves a linear lookup in nsTArray),
this patch now has the WebRenderLayerManager keep a set of active
animation ids, and uses that to avoid discarding the same animation
twice.

In addition, because the display item can be destroyed at any time (e.g.
in the middle of an animation), we were previously "leaking" compositor
animations in that the compositor side never got notified to discard the
IDs. This resulted in infinite composition loops. This patch solves this
problem by having any unused WebRenderAnimationData trigger discard of
the animation id during destruction. This way, even if the nsDisplayItem
is deleted in the middle of the animation we have a fallback mechanism
to discard the id.

MozReview-Commit-ID: 8G3EYHcg9Kl

--HG--
extra : rebase_source : 45e99a0d71a76a15b7fc7a0d498a6149501a722d
2017-09-22 16:39:57 -04:00
Morris Tseng ce9b629335 Bug 1392200 - Add backface-visibility support for layers-free mode. r=kats
For layers-full mode, we set the backface-visibility to visible because
visibility would be handled by FLB and layers.

MozReview-Commit-ID: CUbeUabfC7K
2017-09-21 14:41:38 +08:00