Commit Graph

102 Commits

Author SHA1 Message Date
Andrew Osmond
985dac6203 Bug 1574493 - Part 3. Stop rounding rects/clips during display list building. r=jrmuizel
Rounding in layout pixels is very close to snapping in raster pixels if
there are no transforms involved. This is why it worked most of the time
and fell flat in many edge cases. In future parts of this series, we
will trust scene building and frame building to do the heavy lifting for
snapping purposes.

Differential Revision: https://phabricator.services.mozilla.com/D45058
2019-09-14 16:17:04 +00:00
Ciure Andrei
c5f80130da Backed out 6 changesets (bug 1574493) for causing nested-sticky-2.html to perma fail CLOSED TREE
Backed out changeset 358746636448 (bug 1574493)
Backed out changeset 34aef5498237 (bug 1574493)
Backed out changeset 1f88e2031c76 (bug 1574493)
Backed out changeset 07c588b5ea10 (bug 1574493)
Backed out changeset 0685e8d3510e (bug 1574493)
Backed out changeset 15d4390220c4 (bug 1574493)
2019-09-13 19:26:50 +03:00
Andrew Osmond
56529c6d35 Bug 1574493 - Part 3. Stop rounding rects/clips during display list building. r=jrmuizel
Rounding in layout pixels is very close to snapping in raster pixels if
there are no transforms involved. This is why it worked most of the time
and fell flat in many edge cases. In future parts of this series, we
will trust scene building and frame building to do the heavy lifting for
snapping purposes.

Differential Revision: https://phabricator.services.mozilla.com/D45058
2019-09-13 14:03:23 +00:00
Ciure Andrei
604db60afa Backed out 6 changesets (bug 1574493) for causing nested-sticky-1.html to perma fail CLOSED TREE
Backed out changeset fdc25a90b0ef (bug 1574493)
Backed out changeset 0ce3c48c1f79 (bug 1574493)
Backed out changeset 326b9f96614b (bug 1574493)
Backed out changeset b0817c0aee77 (bug 1574493)
Backed out changeset 70d99c264df9 (bug 1574493)
Backed out changeset e5217ab4b668 (bug 1574493)
2019-09-13 16:17:47 +03:00
Andrew Osmond
b46396996b Bug 1574493 - Part 3. Stop rounding rects/clips during display list building. r=jrmuizel
Rounding in layout pixels is very close to snapping in raster pixels if
there are no transforms involved. This is why it worked most of the time
and fell flat in many edge cases. In future parts of this series, we
will trust scene building and frame building to do the heavy lifting for
snapping purposes.

Differential Revision: https://phabricator.services.mozilla.com/D45058
2019-09-13 10:48:31 +00:00
Gurzau Raul
286937ae26 Backed out 6 changesets (bug 1574493) for wrench failures at stacking-context-clip.yaml on a CLOSED TREE.
Backed out changeset 8a8736ac4e25 (bug 1574493)
Backed out changeset 4a3294e88823 (bug 1574493)
Backed out changeset 0c26ecdc1ddc (bug 1574493)
Backed out changeset 11257f7b3ad3 (bug 1574493)
Backed out changeset dcedc286ad9d (bug 1574493)
Backed out changeset 87f216e0753d (bug 1574493)
2019-09-12 18:34:07 +03:00
Andrew Osmond
407ca7b579 Bug 1574493 - Part 3. Stop rounding rects/clips during display list building. r=jrmuizel
Rounding in layout pixels is very close to snapping in raster pixels if
there are no transforms involved. This is why it worked most of the time
and fell flat in many edge cases. In future parts of this series, we
will trust scene building and frame building to do the heavy lifting for
snapping purposes.

Differential Revision: https://phabricator.services.mozilla.com/D45058
2019-09-12 12:42:41 +00:00
sotaro
c7c230dd3e Bug 1557858 - Add multiple WebRenderBridgeParents support in WebRenderImageHost r=nical
Uses wr::PipelineId to identify user of WebRenderImageHost.

Differential Revision: https://phabricator.services.mozilla.com/D42462
2019-08-22 10:20:02 +00:00
sotaro
0ec675e478 Bug 1570592 - Remove AsyncImagePipelineManager::GetNextExternalImageId() r=nical
Differential Revision: https://phabricator.services.mozilla.com/D40168
2019-08-05 11:51:57 +00:00
sotaro
a2d3f5b62e Bug 1568419 - Handle a case that NumSubTextures() returns 0 in AsyncImagePipelineManager::UpdateImageKeys() r=nical
GPUVideoTextureHost::NumSubTextures() returns 0 when wrapped TextureHost does not exist. In this case, we do not have a content of GPUVideoTextureHost for WR render. And EnsureWrappedTextureHost() calling is added in GPUVideoTextureHost::NumSubTextures(), since GPUVideoTextureHost is not explicit about when a wrapped TextureHost is created.

Differential Revision: https://phabricator.services.mozilla.com/D39137
2019-07-24 13:33:57 +00:00
sotaro
dcb0d482c5 Bug 1567816 - Remove WebRenderTextureHostWrapper r=nical
Differential Revision: https://phabricator.services.mozilla.com/D38837
2019-07-22 08:03:59 +00:00
sotaro
31fdfc5e64 Bug 1559284 - Disable fast path for async native texture updates r=gw
Bug 1558106 changed how picture caching works. With it, WebRenderTextureHostWrapper does not work as before. Then disable it for now.

Differential Revision: https://phabricator.services.mozilla.com/D34991
2019-06-14 07:32:17 +00:00
sotaro
88d6456559 Bug 1544642 - Do not bind SurfaceTexture of video to gl context if it is used by WebGL r=nical
GeckoSurfaceTexture could bind to only one GL context at once. With WebRender, GeckoSurfaceTexture is soon bounded to sharedGL on render thread. It caused the problem if GeckoSurfaceTexture is rendered to WebGL. It could happen only for video's GeckoSurfaceTexture. To avoid the problem, the GeckoSurfaceTexture is bound to gl context when it is actually rendered on WebRender.

Differential Revision: https://phabricator.services.mozilla.com/D27873
2019-04-26 07:48:54 +00:00
sotaro
104e53711d Bug 1543621 - Move Y flip handling to AsyncImagePipelineManager::ApplyAsyncImageForPipeline() r=nical
With webrender, current gecko does not handle SurfaceTexture.getTransformMatrix() yet. SurfaceTexture is used for video decoding and WebGL. On both usages, when getTransformMatrix() is not handled, it actually worked as bottom left origin. Then gecko need to ignore y flip. AsyncImagePipelineManager::ApplyAsyncImageForPipeline() is a good place to handle the situations, since it handles canvas and video frame rendering. Long term solution is going to be handled by Bug 1507076.

Differential Revision: https://phabricator.services.mozilla.com/D28315
2019-04-23 12:29:24 +00:00
Jeff Gilbert
f036fbf0ae No bug - clang-format -p gfx 2019-03-29 23:41:48 -07:00
Kartikaya Gupta
0bcb0477ce Bug 1535029 - Change the viewport size passed to TransactionBuilder::SetDisplayList to a wr::LayoutSize. r=dthayer
The receiver of this parameter treats it as a layout size, so it doesn't
make sense for the argument to be a LayerSize partway through the call
chain. Also the callers originally get this from a LayoutDevice rect;
so there's even less reason for this to be turned into a LayerSize. The
next patch will propagate this cleanup more.

Differential Revision: https://phabricator.services.mozilla.com/D25238
2019-03-28 16:38:01 +00:00
Doug Thayer
78132cddf9 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
2019-03-22 18:28:42 +00:00
Ciure Andrei
be6acddb9e 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
4c535e830a 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
2019-03-22 03:15:14 +00:00
Sylvestre Ledru
b31009da86 Bug 1519636 - Reformat recent changes to the Google coding style r=Ehsan
# ignore-this-changeset

Differential Revision: https://phabricator.services.mozilla.com/D22514
2019-03-13 10:19:06 +01:00
sotaro
7b1baeeef9 Bug 1532457 - Gracefully handle non WebRenderTextureHost case r=nical
Differential Revision: https://phabricator.services.mozilla.com/D22256
2019-03-07 16:15:17 +00:00
sotaro
b06ad97a23 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
2019-02-18 09:33:32 +00:00
Bobby Holley
8c2421bab3 Bug 1522017 - Introduce StackingContextParams to avoid death by a thousand argument. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D17434
2019-01-24 10:44:35 -08:00
Emilio Cobos Álvarez
4a95ef861d Bug 1520664 - Cleanup ReferenceFrame so that each of them has a single matrix. r=kvark
The only thing using both was perspective, but that's not really needed with the current setup.

This more closely matches Gecko, too.

Differential Revision: https://phabricator.services.mozilla.com/D16764
2019-01-17 21:13:07 +01:00
Brindusan Cristian
cd5e06b47d Backed out changeset bbc57e229df6 (bug 1520664) for webrender bustages. CLOSED TREE 2019-01-17 19:20:00 +02:00
Emilio Cobos Álvarez
bbecfdf57d Bug 1520664 - Bug 1498639 - Cleanup ReferenceFrame so that each of them has a single matrix. r=kvark
The only thing using both was perspective, but that's not really needed with the current setup.

This more closely matches Gecko, too.

Differential Revision: https://phabricator.services.mozilla.com/D16764
2019-01-17 16:08:35 +00:00
Emilio Cobos Álvarez
64fbfbfd7c Bug 1514384 - Pass the current clip chain id instead of clipping to the filter bounds. r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D16206
2019-01-11 22:19:19 +01:00
Jeff Muizelaar
eca4405235 Bug 1509182. Switch from using WrFilterOp to using FilterOp directly. r=nical
This avoids code duplication and simplifies push_stacking_context

Differential Revision: https://phabricator.services.mozilla.com/D16050
2019-01-10 19:41:08 +00:00
Cosmin Sabou
199c8bac19 Backed out changeset 10dedfde1015 (bug 1509182) for causing build bustages. 2019-01-10 20:52:49 +02:00
Jeff Muizelaar
d39e0bb1d1 Bug 1509182. Switch from using WrFilterOp to using FilterOp directly. r=nical
This avoids code duplication and simplifies push_stacking_context

Differential Revision: https://phabricator.services.mozilla.com/D16050
2019-01-10 18:40:56 +00:00
Csoregi Natalia
30efca58e6 Backed out changeset 8e078c86db82 (bug 1509182) for bustage on WebRenderTypes.h:789. CLOSED TREE 2019-01-10 18:15:42 +02:00
Jeff Muizelaar
3cebb8d71e Bug 1509182. Switch from using WrFilterOp to using FilterOp directly. r=nical
This avoids code duplication and simplifies push_stacking_context

Differential Revision: https://phabricator.services.mozilla.com/D16050
2019-01-10 14:20:21 +00:00
Dzmitry Malyshau
d07162d4a1 Bug 1518605 - New WebRender ClipId/SpatialId API. r=kats
Port to separate SpatialId from ClipId in Webrender API (WR PR #3251).
Patch was originally written and reviewed on bug 1503447.

Depends on D16005

Differential Revision: https://phabricator.services.mozilla.com/D16006
2019-01-09 03:27:07 +00:00
Sylvestre Ledru
e5a134f73a Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset
2018-11-30 11:46:48 +01:00
Kartikaya Gupta
f8194628cd 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
Dzmitry Malyshau
fd5e285d97 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
2018-11-28 15:32:41 +00:00
sotaro
a41a651406 Bug 1508117 - Fix mAsyncImageManager->AddPipeline() calls in WebRenderBridgeParent::UpdateWebRender() r=mattwoodrow 2018-11-19 12:15:55 +09:00
sotaro
db2b09d9ad Bug 1506767 - Remove redundant iteration in CompositorBridgeParent::NotifyPipelineRendered() r=mattwoodrow 2018-11-17 12:27:54 +09:00
sotaro
1d58f3676d Bug 1506762 - Store wr::WebRenderPipelineInfo directly in AsyncImagePipelineManager::PipelineUpdates r=mattwoodrow 2018-11-16 22:01:01 +09:00
sotaro
cfaf2e5702 Bug 1503498 - Simplify ForwardingExternalImage handling in AsyncImagePipelineManager r=aosmond 2018-11-14 11:40:31 +09:00
sotaro
eaf9a57f34 Bug 1506091 - Wait for GPU after posting NotifyDidRender r=mattwoodrow 2018-11-12 10:36:13 +09:00
sotaro
799e3be994 Bug 1500017 - Use triple buffer with DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL SwapChain r=mattwoodrow 2018-11-05 18:58:37 +09:00
Cosmin Sabou
34c5649f6c Backed out changeset d139f68fd874 (bug 1500017) for build bustages on RenderCompositorANGLE.cpp 2018-11-05 09:36:05 +02:00
sotaro
9b8ec03f62 Bug 1500017 - Use triple buffer with DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL SwapChain r=mattwoodrow 2018-11-05 15:54:10 +09:00
sotaro
3e7ee0e9a3 Bug 1502789 - Fix Texture release timing of AsyncImagePipelineManager::ProcessPipelineUpdates() r=nical 2018-10-31 14:19:41 +09:00
Sotaro Ikeda
841b095dd7 Bug 1461239 - Use InvalidateRenderedFrame() when necessary r=nical 2018-10-09 23:20:23 -04:00
arthur.iakab
55447323d8 Merge inbound to mozilla-central. a=merge 2018-09-26 15:54:41 +03:00
sotaro
826f7bd946 Bug 1493088 - Use non low priority transaction for async pipline with ImageBridge r=nical 2018-09-26 11:45:30 +09:00
Chris Pearce
c6e51d4e51 Bug 1434503 - Round video frame images bounds to device pixel boundaries before passing to WebRender. r=sotaro
When scrolling on Twitter video frames can sometimes be drawn with a flicker
above or below them. This is because the bounds for video frames' images that
we pass to WebRender are not rounded to pixel boundaries, and so they can end
up being rounded off in WebRender unexpectedly when composited.

So round off the bounds of video frame images to device pixel boundaries before
passing to WebRender.

Differential Revision: https://phabricator.services.mozilla.com/D6857
2018-09-26 00:18:21 +00:00
Jeff Muizelaar
b379bdd2ef Bug 1493268. Re-generate FFI header and adjust bindings.
Changes GlyphRasterSpace to RasterSpace.
2018-09-22 21:19:52 -04:00