Commit Graph

172 Commits

Author SHA1 Message Date
Zaggy1024
790b9dbe7b Bug 1764477 - Fix propagation of video bit depth changes to the output. r=aosmond
Previously, AsyncImagePipelineManager::UpdateImageKeys did not check bit depth when updating image keys, and WebRenderTextureHost did not correctly wrap GetColorDepth(). This caused the configuration not to correctly update.

Differential Revision: https://phabricator.services.mozilla.com/D143558
2022-04-14 19:14:17 +00:00
Nicolas Silva
55cceefeb1 Bug 1755747 - Add support for antialiased non-snapped rectangles. r=gfx-reviewers,aosmond
We need them for SVG primitives.

This patch adds a bit of plumbing to disable snapping some of the primitives and forcing the antialiasing shader feature where needed, and uses it for SVG solid rectangles and images.

Differential Revision: https://phabricator.services.mozilla.com/D139024
2022-02-23 13:37:39 +00:00
Andi-Bogdan Postelnicu
13a062f45f Bug 1519636 - First reformat with clang-format 13.0.0. r=firefox-build-system-reviewers,sylvestre,mhentges
Updated with clang-format version 13.0.0 (taskcluster-OgjH5lasS5K_fvefdRcJVg)

Depends on D131114

Differential Revision: https://phabricator.services.mozilla.com/D129119
2021-11-16 08:07:30 +00:00
Glenn Watson
9716dd973c Bug 1727458 - Change display list builder APIs to retain/reuse them r=gfx-reviewers,kvark
This will allow storing state in a display list builder struct
between different display list builds. In time, this will be used
to reduce the size of the serialized display list data, by only
sending delta changes to WR. The extra information made available
by sending deltas will then allow WR to more efficiently cache and
reuse information across different scene/frame builds.

Differential Revision: https://phabricator.services.mozilla.com/D123579
2021-08-30 23:10:10 +00:00
Glenn Watson
df4127960e Bug 1726708 - Add stable key for spatial nodes r=gfx-reviewers,kvark
Add an interface (and update Gecko to provide) a stable unique
identifier for each spatial node that is consistent across
display lists.

Although this patch doesn't _do_ anything useful with this yet,
we'll use this in future to allow interning, persisting and caching
a lot more information related to primitives and clips.

For now, it just asserts that the calling code never supplies a
duplicate unique identifier - which will be useful to have running
in nightly for a couple of weeks before starting to make use of
these identifiers.

Differential Revision: https://phabricator.services.mozilla.com/D123177
2021-08-30 00:33:22 +00:00
Glenn Watson
5c663731ba Bug 1724846 - Split DL spatial tree to separate payload r=gfx-reviewers,nical
This will allow experimenting with different representations of
the spatial tree (such as interning and/or providing stable
indices during display list building). It may also simplify
future changes to the public API to expose the spatial tree
directly.

As part of these changes, refactor how the debug representation
for the capture format is (de)serialized, to make it simpler to
add different payload vector types in future.

Differential Revision: https://phabricator.services.mozilla.com/D122183
2021-08-30 00:33:22 +00:00
Alexandru Michis
51a484e3cf Backed out changeset 1d332a5ff4f9 (bug 1724846) for causing Bug 1727715.
CLOSED TREE
2021-08-26 22:51:05 +03:00
Alexandru Michis
943cb8606e Backed out changeset 9c2d20304eee (bug 1726708) for causing conflicts while backing out Bug 1724846 2021-08-26 22:50:37 +03:00
Glenn Watson
26d453e633 Bug 1726708 - Add stable key for spatial nodes r=gfx-reviewers,kvark
Add an interface (and update Gecko to provide) a stable unique
identifier for each spatial node that is consistent across
display lists.

Although this patch doesn't _do_ anything useful with this yet,
we'll use this in future to allow interning, persisting and caching
a lot more information related to primitives and clips.

For now, it just asserts that the calling code never supplies a
duplicate unique identifier - which will be useful to have running
in nightly for a couple of weeks before starting to make use of
these identifiers.

Differential Revision: https://phabricator.services.mozilla.com/D123177
2021-08-25 21:52:13 +00:00
Glenn Watson
9149dcfec2 Bug 1724846 - Split DL spatial tree to separate payload r=gfx-reviewers,nical
This will allow experimenting with different representations of
the spatial tree (such as interning and/or providing stable
indices during display list building). It may also simplify
future changes to the public API to expose the spatial tree
directly.

As part of these changes, refactor how the debug representation
for the capture format is (de)serialized, to make it simpler to
add different payload vector types in future.

Differential Revision: https://phabricator.services.mozilla.com/D122183
2021-08-24 02:18:51 +00:00
Iulian Moraru
534c6d12b2 Backed out changeset d93e8a61d529 (bug 1724846) for causing reftest failures on downscale-moz-icon-1.html. CLOSED TREE 2021-08-23 07:11:37 +03:00
Glenn Watson
c46752adac Bug 1724846 - Split DL spatial tree to separate payload r=gfx-reviewers,nical
This will allow experimenting with different representations of
the spatial tree (such as interning and/or providing stable
indices during display list building). It may also simplify
future changes to the public API to expose the spatial tree
directly.

As part of these changes, refactor how the debug representation
for the capture format is (de)serialized, to make it simpler to
add different payload vector types in future.

Differential Revision: https://phabricator.services.mozilla.com/D122183
2021-08-22 20:54:07 +00:00
Narcis Beleuzu
4c3fac01fa Backed out 2 changesets (bug 1723665, bug 1724846) as per gw`s request
Backed out changeset 5f2aff372a24 (bug 1724846)
Backed out changeset 0cc8e08b6937 (bug 1723665)
2021-08-18 03:17:33 +03:00
Glenn Watson
8f19dc96b0 Bug 1724846 - Split DL spatial tree to separate payload r=gfx-reviewers,nical
This will allow experimenting with different representations of
the spatial tree (such as interning and/or providing stable
indices during display list building). It may also simplify
future changes to the public API to expose the spatial tree
directly.

As part of these changes, refactor how the debug representation
for the capture format is (de)serialized, to make it simpler to
add different payload vector types in future.

Differential Revision: https://phabricator.services.mozilla.com/D122183
2021-08-15 20:44:03 +00:00
Glenn Watson
2526d2cd07 Bug 1724344 - Split DL cache data into separate payload vec r=gfx-reviewers,kvark
Move the extra_data to be a specific cache_data separate vec in
the display list payload.

This shouldn't change any functionality, but serves as a proof
of concept for future changes which will introduce several other
separated payload vectors.

Differential Revision: https://phabricator.services.mozilla.com/D121937
2021-08-09 21:15:20 +00:00
Glenn Watson
3aaef8fc31 Bug 1706488 - Enable non-opaque compositor surface support r=gfx-reviewers,lsalzman
This removes the code in Gecko that was only allowing opaque
compositor surfaces, now that the underlying work in WR and
SWGL to support these is complete.

Differential Revision: https://phabricator.services.mozilla.com/D112831
2021-04-22 04:19:21 +00:00
Simon Giesecke
86e29e162f Bug 1695162 - Use range-based for instead of custom hashtable iterators. r=xpcom-reviewers,kmag
Differential Revision: https://phabricator.services.mozilla.com/D108585
2021-03-17 15:49:46 +00:00
Simon Giesecke
95c38cc6b8 Bug 1691913 - Rename nsBaseHashtable::Put to InsertOrUpdate. r=xpcom-reviewers,necko-reviewers,jgilbert,dragana,nika
This makes the naming more consistent with other functions called
Insert and/or Update. Also, it removes the ambiguity whether
Put expects that an entry already exists or not, in particular because
it differed from nsTHashtable::PutEntry in that regard.

Differential Revision: https://phabricator.services.mozilla.com/D105473
2021-02-26 09:11:46 +00:00
Andrew Osmond
1d19fa73aa Bug 1688096 - Part 1. Merge SW-WR and WR render texture host paths to allow mixed compositors. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D104854
2021-02-24 19:39:59 +00:00
Cosmin Sabou
9ef271b5ba Backed out 2 changesets (bug 1688096) for win webrender sw_compositor related crashes. CLOSED TREE
Backed out changeset aa0d1698aff8 (bug 1688096)
Backed out changeset 3ad2f4d0c317 (bug 1688096)
2021-02-18 19:52:29 +02:00
Andrew Osmond
cd218bcf63 Bug 1688096 - Part 1. Merge SW-WR and WR render texture host paths to allow mixed compositors. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D104854
2021-02-18 15:37:46 +00:00
smolnar
f7ba61e1f9 Backed out 2 changesets (bug 1688096) for linux debug build bustage in KnowsCompositor. CLOSED TREE
Backed out changeset 6cdfa0af2278 (bug 1688096)
Backed out changeset 6471b0910f45 (bug 1688096)
2021-02-18 14:34:49 +02:00
Andrew Osmond
b76cb0a8b0 Bug 1688096 - Part 1. Merge SW-WR and WR render texture host paths to allow mixed compositors. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D104854
2021-02-18 11:50:05 +00:00
Simon Giesecke
3c36abd9aa Bug 1692880 - Make Put accept DataType instead of wrapping UserDataType. r=xpcom-reviewers,necko-reviewers,nika
Differential Revision: https://phabricator.services.mozilla.com/D104850
2021-02-16 15:53:33 +00:00
Simon Giesecke
8adc4d231c Bug 1691894 - Replace several suboptimal uses of Put after Get by GetOrInsertWith or WithEntryHandle. r=xpcom-reviewers,necko-reviewers,kmag,valentin,geckoview-reviewers,agi
Differential Revision: https://phabricator.services.mozilla.com/D104849
2021-02-15 15:12:17 +00:00
smolnar
03bc7728ba Backed out 5 changesets (bug 1691894) for causing hazard failures in nsXULPrototypeCache. CLOSED TREE
Backed out changeset 22dc870ee609 (bug 1691894)
Backed out changeset 58c31e9d6ae3 (bug 1691894)
Backed out changeset 7483e84149d8 (bug 1691894)
Backed out changeset f977d6cfa973 (bug 1691894)
Backed out changeset db4503476f34 (bug 1691894)
2021-02-15 16:43:23 +02:00
Simon Giesecke
f04f372040 Bug 1691894 - Make Put accept DataType instead of wrapping UserDataType. r=xpcom-reviewers,necko-reviewers,nika
Differential Revision: https://phabricator.services.mozilla.com/D104850
2021-02-15 10:04:46 +00:00
Simon Giesecke
1a0fd1ffb7 Bug 1691894 - Replace several suboptimal uses of Put after Get by GetOrInsertWith or WithEntryHandle. r=xpcom-reviewers,necko-reviewers,kmag,valentin,geckoview-reviewers,agi
Differential Revision: https://phabricator.services.mozilla.com/D104849
2021-02-15 10:04:45 +00:00
sotaro
acd0ec363d Bug 1687427 - Update display list when ExternalCompositing is changed r=mattwoodrow
When when TexutureHost's SupportsExternalCompositing is changed, display list needs to be updated.

Differential Revision: https://phabricator.services.mozilla.com/D102264
2021-01-19 21:42:57 +00:00
Matt Woodrow
c6619a7301 Bug 1666607 - Set initial valuye for mRotation. r=jrmuizel
Depends on D99741

Differential Revision: https://phabricator.services.mozilla.com/D99742
2020-12-15 21:51:49 +00:00
Simon Giesecke
b1b15dcb38 Bug 1676357 - Avoid including Layers.h in header files. r=botond
Differential Revision: https://phabricator.services.mozilla.com/D96538

Depends on D96537
2020-11-23 16:09:05 +00:00
Matt Woodrow
d517b70ca2 Bug 1666055 - Disable buffer textures as external compositor surfaces on MacOS. r=lsalzman
When using the native RenderCompositor+SWGL on MacOS, we don't support passing buffer textures directly to the compositor.

Differential Revision: https://phabricator.services.mozilla.com/D93179
2020-10-14 07:56:47 +00:00
sotaro
9ecd4df2c1 Bug 1670148 - Fix release fence handling at AsyncImagePipelineManager on Android r=jnicol
By Bug 1661189, AndroidHardwareBuffer owning TextureHosts became to be stored in mTextureHostsUntilRenderSubmitted.

AndroidHardwareBuffer usage is not enabled on gecko.

Differential Revision: https://phabricator.services.mozilla.com/D93050
2020-10-09 14:15:52 +00:00
sotaro
a14f794f2c Bug 1665846 - Re-push DisplayItem when video overlay is disabled r=nical
gfxVars::UseWebRenderDCompVideoOverlayWin() could be changed from true to false, when DCompVideoOverlay task is failed. In this case, DisplayItems need to be re-pushed to WebRender for disabling video overlay.

If DisplayItem is not re-pushed, overlay video rendering is not updated.

Differential Revision: https://phabricator.services.mozilla.com/D90656
2020-09-18 08:29:57 +00:00
sotaro
91d0ed03d2 Bug 1658684 - Add android Fence handling to WebRender r=nical
Release fence is delivered from RenderCompositorEGL to WebRenderImageHost via AsyncImagePipelineManager. And the fence is sent to client side by ImageBridgeParent.

Differential Revision: https://phabricator.services.mozilla.com/D88158
2020-09-02 14:21:36 +00:00
sotaro
5bff0a4154 Bug 1658005 - Unify RenderTextureHost async function calls r=nical,jnicol
The following functions are asynchronously called by a bit different ways. It seems not good. It seems better to unify them.
PrepareForUse()
NofityForUse()
NotifyNotUsed()

Differential Revision: https://phabricator.services.mozilla.com/D87709
2020-08-21 07:32:47 +00:00
sotaro
ffe3210631 Bug 1659233 - Remove AsyncImagePipelineManager::mPendingUpdates r=nical
It is not necessary with current gecko.

Differential Revision: https://phabricator.services.mozilla.com/D87158
2020-08-19 09:32:02 +00:00
Matt Woodrow
46ec29c048 Bug 1657523 - Compute the scale from size for async image pipelines in the compositor process, so that we get the size matching the current texture. r=aosmond
Differential Revision: https://phabricator.services.mozilla.com/D86132
2020-08-06 21:09:55 +00:00
Matt Woodrow
bf3bac9774 Bug 1653166 - Add rotation support to computed reference frames and use them for <video>. r=aosmond
Differential Revision: https://phabricator.services.mozilla.com/D85104
2020-08-04 01:15:04 +00:00
Glenn Watson
8978ee55ca Bug 1656820 - Remove content_size from scene pipeline. r=nical
Previously, the content_size was used when defining an iframe
to set the size of the root scrollable area.

However, this was never useful (the root pipeline scroll frame
is not considered a scroll root, it's more of a placeholder).
The scroll frame for content is typically defined within the
iframe display list (which also allows non-scrolled content
within the iframe, such as a background rectangle color).

The existing content_size was causing problems in Gecko because
there are some snapping / rounding inaccuracies with fractional
DPI ratios, resulting in root scroll frames with +/- 1 pixel
scrollable size.

The simplest fix for this is to remove content_size altogether
and rely on the iframe display item to define the content size
of the root scroll frame for a pipeline.

Differential Revision: https://phabricator.services.mozilla.com/D85719
2020-08-03 20:57:30 +00:00
Miko Mynttinen
7cd8140ef5 Bug 1536515 - Part 3: Add RenderExternalTextureHost r=sotaro
Differential Revision: https://phabricator.services.mozilla.com/D80506
2020-07-07 17:57:22 +00:00
Andrew Osmond
5396cc95a3 Bug 1628657 - Make canvas use computed reference frame transforms. r=kvark
When a transform depends on the layout size of an element, one can see
visual distortions caused by the difference between the unsnapped size
used in the transform, and the snapped size calculated during scene
building. Ideally we could compute the transform after we snap, rather
than before. This patch adds support for a computed reference frame
which takes parameters to calculate the ideal transform dynamically.

In a future patch, we should make videos take advantage of this same
mechanism to avoid similar problems. This requires support for mirroring
and rotations.

Differential Revision: https://phabricator.services.mozilla.com/D77956
2020-06-11 20:46:05 +00:00
sotaro
41303dc6db Bug 1636868 - Add RenderTextureHostWrapper for GPUVideoTextureHost r=jrmuizel
By using RenderTextureHostWrapper, we could reduce re-creation of RenderDXGITextureHostOGL and RenderDXGIYCbCrTextureHostOGL.

Differential Revision: https://phabricator.services.mozilla.com/D74838
2020-05-22 19:42:38 +00:00
Kartikaya Gupta
14ef0341a8 Bug 1622360 - Remove unused render root argument to AsyncImagePipelineManager. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D74849
2020-05-12 14:29:33 +00:00
Kartikaya Gupta
5bded3eca9 Bug 1622360 - Stop storing unused render root in AsyncImagePipeline. r=jrmuizel
Depends on D74847

Differential Revision: https://phabricator.services.mozilla.com/D74848
2020-05-12 14:22:09 +00:00
sotaro
a97bbd6e05 Bug 1636352 - Fix RenderThread::HandlePrepareForUse() calling r=jnicol
There could be a case that new RenderThread::PrepareForUse() and new WebRender transaction by WebRenderBridgeParent::MaybeGenerateFrame() achieve during calling UpdateAndRender().

Differential Revision: https://phabricator.services.mozilla.com/D74365
2020-05-11 20:58:51 +00:00
Kartikaya Gupta
8444175710 Bug 1622360 - Remove render roots from the frame scheduling code. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D74182
2020-05-11 20:07:25 +00:00
Jean-Yves Avenard
647b901352 Bug 1634253 - P6. Remove MessageLoop use from gfx. r=kats,mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D73825
2020-05-08 20:20:44 +00:00
Narcis Beleuzu
221d9102fa Backed out 9 changesets (bug 1634253) for bc failures on browser_bug295977_autoscroll_overflow.js . CLOSED TREE
Backed out changeset d41b75c1f7ec (bug 1634253)
Backed out changeset 5f8a1ee17b81 (bug 1634253)
Backed out changeset 43eda078b405 (bug 1634253)
Backed out changeset e98212a74709 (bug 1634253)
Backed out changeset 855e222ceb14 (bug 1634253)
Backed out changeset 9f01acdf4367 (bug 1634253)
Backed out changeset ea62cb1ec472 (bug 1634253)
Backed out changeset fa3e7588e7d6 (bug 1634253)
Backed out changeset 139e7035e736 (bug 1634253)
2020-05-08 23:09:31 +03:00
Jean-Yves Avenard
859532c46d Bug 1634253 - P6. Remove MessageLoop use from gfx. r=kats,mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D73825
2020-05-07 08:04:53 +00:00