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

24 Коммитов

Автор SHA1 Сообщение Дата
Jamie Nicol 790229886f Bug 1719367 - Hook up default clear color to RenderCompositorLayersSWGL. r=sotaro
Fenix makes use of the default clear color by setting it to a dark
color when the dark theme is enabled to avoid white flashes while
pages are loading. In bug 1663732 we hooked this functionality up to
webrender, however, it was only used by the draw compositor. Now with
software webrender on Android, we sometimes use
RenderCompositorLayersSWGL rather than the draw compositor, and users
are therefore experiencing white flashes during page loads.

This adds a clear_color argument to StartCompositing(), which
RenderCompositorLayersSWGL uses to set the CompositorOGL's clear
color. This patch also makes Renderer::clear_color not an Option
type, as we only ever used it in Some form, and that simplifies the
FFI.

Differential Revision: https://phabricator.services.mozilla.com/D119272
2021-07-08 11:46:37 +00:00
Sandor Molnar 53b20ea46f Backed out changeset b5ad7d43bc54 (bug 1719367) for causing build bustages. CLOSED TREE 2021-07-08 12:28:55 +03:00
Jamie Nicol 8ee6c18a77 Bug 1719367 - Hook up default clear color to RenderCompositorLayersSWGL. r=sotaro
Fenix makes use of the default clear color by setting it to a dark
color when the dark theme is enabled to avoid white flashes while
pages are loading. In bug 1663732 we hooked this functionality up to
webrender, however, it was only used by the draw compositor. Now with
software webrender on Android, we sometimes use
RenderCompositorLayersSWGL rather than the draw compositor, and users
are therefore experiencing white flashes during page loads.

This adds a clear_color argument to StartCompositing(), which
RenderCompositorLayersSWGL uses to set the CompositorOGL's clear
color. This patch also makes Renderer::clear_color not an Option
type, as we only ever used it in Some form, and that simplifies the
FFI.

Differential Revision: https://phabricator.services.mozilla.com/D119272
2021-07-08 09:01:28 +00:00
sotaro 1dbe2952b1 Bug 1718497 - Copy opaque tile instead of premultiplied blending r=lsalzman
Copy tiles data when tiles are opaque instead of blending them.

RenderCompositorLayersSWGL always blends tiles as premultiplied tiles. But it could not handle clear tiles and caused Bug 1718497. The problem does not happen with RenderCompositorSWGL. It copies tile data when tile is opaque. Then, RenderCompositorSWGL handles clear tiles correctly.

Differential Revision: https://phabricator.services.mozilla.com/D118953
2021-07-05 00:08:07 +00:00
Nicolas Silva fd03e01f61 Bug 1711648 - Move all device rects to the Box2D representations. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D116401
2021-06-02 12:47:03 +00:00
Csoregi Natalia 511356a7c1 Backed out 3 changesets (bug 1713544, bug 1711648) for valgrind failures. CLOSED TREE
Backed out changeset 9449ea40b4fd (bug 1713544)
Backed out changeset 3d51bfaa0d8d (bug 1711648)
Backed out changeset c6c83dc97cbb (bug 1711648)
2021-06-02 10:43:16 +03:00
Nicolas Silva 2c30dfddef Bug 1711648 - Move all device rects to the Box2D representations. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D116401

Depends on D116266
2021-06-01 21:25:19 +00:00
Butkovits Atila 34ce52667e Backed out 2 changesets (bug 1711648) for causing wrench bustages. CLOSED TREE
Backed out changeset 7f1ae1fdd305 (bug 1711648)
Backed out changeset 71807d4e6302 (bug 1711648)
2021-06-02 01:28:29 +03:00
Nicolas Silva 7f7de00ea8 Bug 1711648 - Move all device rects to the Box2D representations. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D116401
2021-06-01 21:25:19 +00:00
Butkovits Atila 3af9a07178 Backed out 2 changesets (bug 1711648) for causing failures at grid-max-sizing-flex-002.html. CLOSED TREE
Backed out changeset 9cf4e612dbac (bug 1711648)
Backed out changeset 7d8bba559407 (bug 1711648)
2021-06-01 21:07:34 +03:00
Nicolas Silva 8aa37de340 Bug 1711648 - Move all device rects to the Box2D representations. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D116401
2021-06-01 16:30:36 +00:00
sotaro c28cd636d3 Bug 1709900 - Do not call ScreenshotGrabber::MaybeGrabScreenshot() when RenderCompositorLayersSWGL::mCompositingStarted is false r=mstange,gfx-reviewers
mCompositor->BeginFrameForWindow() needs to be called for  ScreenshotGrabber::MaybeGrabScreenshot() with CompositorD3D11.

Differential Revision: https://phabricator.services.mozilla.com/D114714
2021-05-10 20:48:02 +00:00
Robert Mader 68fa6c04b1 Bug 1707943 - webrender_bindings: Fix warnings and apply suggestions form static analysis, r=gfx-reviewers,lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D113603
2021-04-28 12:33:55 +00:00
sotaro 0a52a8db04 Bug 1704431 - Handle start compositing only when dirty rect exists r=lsalzman,gfx-reviewers
When render_impl is called from update, the device_size is None, and so dirty rect calculation is skipped. Then if RenderCompositorLayersSWGL does not handle start compositing when dirty rect does not exist, we could ignore StartCompositing() from update.

Differential Revision: https://phabricator.services.mozilla.com/D111583
2021-04-13 03:31:03 +00:00
sotaro ce45a5f8b7 Bug 1700538 - Add error log to RenderCompositorLayersSWGL::MapTile() r=nical
Differential Revision: https://phabricator.services.mozilla.com/D109576
2021-03-24 23:49:08 +00:00
Lee Salzman 7d630ccb29 Bug 1678892 - Pass dirty and opaque regions to layers compositor. r=sotaro
The backend CompositorD3D11/CompositorOGL layers compositors can already do
partial clear optimizations for us if applicable. The only thing we need to
do is pass in the actual dirty/opaque regions so that it can utilize it.

Like with RenderCompositorSWGL, we move the actual allocation of the framebuffer
into StartCompositing when this information is known, rather than BeginFrame
which is too early in the frame to have this information yet.

Differential Revision: https://phabricator.services.mozilla.com/D109092
2021-03-23 06:36:39 +00:00
sotaro 5ac25e6b72 Bug 1686800 - Call mCompositor->EndFrame() only when StartCompositing() is called r=lsalzman
This is a short term fix.

Differential Revision: https://phabricator.services.mozilla.com/D107779
2021-03-10 06:51:35 +00:00
sotaro 6386e4b519 Bug 1673342 - Add Support of software WebRender with CompositorOGL on Android and Linux r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D106234
2021-03-01 13:45:38 +00:00
Lee Salzman f2c57b81f4 Bug 1690216 - Report whether to redraw on invalidation to WR. r=mattwoodrow
This requires us to plumb CompositorCapabilities to support the extra field.
This is complicated by the fact that since it is a Rust struct, it has no
default constructor that can pass through to C++ via bindings, so every
one of our RenderCompositors was forced to manually initialize fields. To
get around this brittle footgun, instead the structure is initialized on
the Rust side, and RenderCompositor's are encouraged to only change fields
that actually diverge from the defaults as passed in via pointer.

Finally, we can then do what we need to do, which is just to send the
ForceRedraw message that needs to happen based on what we know about
CompositorCapabilities.

Differential Revision: https://phabricator.services.mozilla.com/D106246
2021-02-24 14:15:02 +00:00
Andreea Pavel 4d15e7e3f1 Backed out changeset 45b36995cfd6 (bug 1690216) for build bustages at rules.mk on a CLOSED TREE 2021-02-24 12:03:14 +02:00
Lee Salzman e746523892 Bug 1690216 - Report whether to redraw on invalidation to WR. r=mattwoodrow
This requires us to plumb CompositorCapabilities to support the extra field.
This is complicated by the fact that since it is a Rust struct, it has no
default constructor that can pass through to C++ via bindings, so every
one of our RenderCompositors was forced to manually initialize fields. To
get around this brittle footgun, instead the structure is initialized on
the Rust side, and RenderCompositor's are encouraged to only change fields
that actually diverge from the defaults as passed in via pointer.

Finally, we can then do what we need to do, which is just to send the
ForceRedraw message that needs to happen based on what we know about
CompositorCapabilities.

Differential Revision: https://phabricator.services.mozilla.com/D106246
2021-02-24 09:18:33 +00:00
sotaro 9d6fd76b93 Bug 1677459 - Split platform independent part to RenderCompositorCompositorSWGL r=mattwoodrow
The change is a preparation of Bug 1673342

Differential Revision: https://phabricator.services.mozilla.com/D99046
2021-02-23 08:57:27 +00:00
Mihai Alexandru Michis 5fff3c0a33 Backed out changeset 8908ec20b487 (bug 1677459) for causing reftest assertion failures in LayersTypes.cpp
CLOSED TREE
2021-02-23 03:11:50 +02:00
sotaro 5758b0e880 Bug 1677459 - Split platform independent part to RenderCompositorCompositorSWGL r=mattwoodrow
The change is a preparation of Bug 1673342

Differential Revision: https://phabricator.services.mozilla.com/D99046
2021-02-22 21:55:50 +00:00