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

114 Коммитов

Автор SHA1 Сообщение Дата
sotaro 54ede5160d Bug 1460499 - Use DirectComposition for hardware decoded video on Windows r=nical
Use ID3D11VideoProcessor for video frame rendering.

WebRenderError::VIDEO_OVERLAY does not cause disabling WebRender. It just change gfxVars::UseWebRenderDCompVideoOverlayWin() to false.

Differential Revision: https://phabricator.services.mozilla.com/D88763
2020-09-09 01:04:53 +00:00
Matt Woodrow a250b4d7a3 Bug 1656818 - Move decision to flip WebRender readback closer to the source, and make it correct for SWGL. r=lsalzman,geckoview-reviewers,snorp
Differential Revision: https://phabricator.services.mozilla.com/D86892
2020-08-14 18:40:09 +00:00
Csoregi Natalia 8896454838 Backed out 4 changesets (bug 1656817, bug 1656818, bug 1658858) for bustage on RendererOGL.cpp. CLOSED TREE
Backed out changeset 9c8e4ec4e47c (bug 1656818)
Backed out changeset 92252cfd26de (bug 1656818)
Backed out changeset 1bebb79150d6 (bug 1656817)
Backed out changeset e1becb3a2fb5 (bug 1658858)
2020-08-14 00:25:44 +03:00
Matt Woodrow 65e227f6dd Bug 1656818 - Move decision to flip WebRender readback closer to the source, and make it correct for SWGL. r=lsalzman
Differential Revision: https://phabricator.services.mozilla.com/D86892
2020-08-13 20:43:35 +00:00
Matt Woodrow 8cc57f6b55 Bug 1657428 - Use correct interpolation mode for native compositing layers. r=mstange
Differential Revision: https://phabricator.services.mozilla.com/D86090
2020-08-06 21:14:45 +00:00
Jeff Gilbert a824ab4d81 Bug 1656034 - Support multiple EglDisplays per GLLibraryEGL. r=lsalzman,sotaro,stransky
Have webrender use its own EGLDisplay, letting WebGL use a different
one.

Differential Revision: https://phabricator.services.mozilla.com/D85496
2020-08-07 07:14:46 +00:00
Mihai Alexandru Michis 639b2bd075 Backed out changeset f1f10f791e99 (bug 1656034) for causing bustages in DMABufSurface.cpp
CLOSED TREE
2020-08-07 02:36:33 +03:00
Jeff Gilbert b5d6906473 Bug 1656034 - Support multiple EglDisplays per GLLibraryEGL. r=lsalzman,sotaro,stransky
Have webrender use its own EGLDisplay, letting WebGL use a different
one.

Differential Revision: https://phabricator.services.mozilla.com/D85496
2020-08-06 22:53:53 +00:00
Mihai Alexandru Michis 4719cf3e7d Backed out changeset 06538f141210 (bug 1656034) for causing bustages in GLContextProviderEGL.cpp
CLOSED TREE
2020-08-07 00:19:32 +03:00
Jeff Gilbert 78c66237bb Bug 1656034 - Support multiple EglDisplays per GLLibraryEGL. r=lsalzman,sotaro,stransky
Have webrender use its own EGLDisplay, letting WebGL use a different
one.

Differential Revision: https://phabricator.services.mozilla.com/D85496
2020-08-06 19:56:43 +00:00
Matt Woodrow 01b5738a5d Bug 1653166 - Add transforms to WebRender Compositor API. r=gw,mstange,sotaro
Differential Revision: https://phabricator.services.mozilla.com/D84328
2020-08-04 01:19:59 +00:00
Dzmitry Malyshau 3d822b4eda Bug 1652972 - Mark EGL context as lost on Shutdown() r=aosmond
This is meant to save us in cases where the message loop in GPU process
receives commands related to resources that point to the old EGL context
that was just shut down. Since the symbols are erased, we'd end up with
trying to execute a nullptr on `MakeCurrent()`. With marking the context
as lost, however, no symbols will be accessed.

Differential Revision: https://phabricator.services.mozilla.com/D84868
2020-07-29 02:33:54 +00:00
sotaro c5381ed0cd Bug 1638819 - Skip SyncObjectD3D11Host::Synchronize() when RenderTextureHosts do not use ID3D11Texture2D r=jrmuizel
Simple implementation of skipping SyncObjectD3D11Host::Synchronize(). More optimization could be done in Bug 1635629.

Differential Revision: https://phabricator.services.mozilla.com/D75781
2020-06-11 07:28:30 +00:00
sotaro 650f64603f Bug 1642839 - Implement WebRenderLayerManager::SendInvalidRegion() r=jrmuizel
When DWM is disabled, each window does not have own back buffer. They would paint directly to a buffer that was to be displayed by the video card. WM_PAINT via SendInvalidRegion() requests necessary re-paint. With it, RenderCompositorANGLE does not need to disable partial present.

Differential Revision: https://phabricator.services.mozilla.com/D77989
2020-06-05 05:03:40 +00:00
sotaro b12a00b03e Bug 1642834 - Add a comment to RenderCompositorANGLE::RequestFullRender() r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D77972
2020-06-03 22:32:10 +00:00
sotaro 33ee2a10f6 Bug 1637497 - Disable partial present dynamically when Dwm is disabled r=jrmuizel
Do full render with WebRender when Dwn is disabled. It could be done by RenderCompositorANGLE::RequestFullRender().

Back out  Bug 1638469. It disables WebRender during starting if Dwm is disabled. But Dwm is enabled/disabled dynamically. And we do not want to disable WebRender in this case.

Differential Revision: https://phabricator.services.mozilla.com/D77221
2020-06-01 18:39:50 +00:00
sotaro 1e3d052869 Bug 1632357 - Use compositor window only when it is necessary r=nical
With current gecko, there are cases that compositor window is used even when it is not necessary. For example, fallback from DirectComposite with WebRender and fallback from double buffering with Compositor. With some gpu drivers, the fallbacks with compositor window causes rendering problem.

Differential Revision: https://phabricator.services.mozilla.com/D76470
2020-05-25 11:57:05 +00:00
Martin Stransky e3d81b0f91 Bug 1474281 - Make EGL-provider support OGL. r=jgilbert
In the past EGL only supported GLES, not OGL. This has not been true
for a very long time, so lets support OGL context creation in the EGL
backend.

This allows e.g. the Wayland backend to use OGL contexts, which brings
it on par with the X11/GLX backend.

Differential Revision: https://phabricator.services.mozilla.com/D48096
2020-04-21 05:43:35 +00:00
sotaro 126d45bceb Bug 1631355 - Remove non virtual surface implementation from DCLayerTree r=gw
Virtual surface implementation is stable now. Removing non virtual surface implementation could simplify DCLayerTree.

Differential Revision: https://phabricator.services.mozilla.com/D71506
2020-04-20 20:01:42 +00:00
sotaro 7552fe3e1e Bug 1626822 - Add a way to enable WebRender without GPU process on Windows r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D69771

--HG--
extra : moz-landing-system : lando
2020-04-14 03:27:12 +00:00
Brindusan Cristian 2ad9b58e73 Backed out changeset d05ac327b65e (bug 1626822) for bustages at gfxPlatform.cpp. CLOSED TREE 2020-04-14 03:12:33 +03:00
sotaro fb4859cf94 Bug 1626822 - Add a way to enable WebRender without GPU process on Windows r=jrmuizel
WebRender could be used when WebRender does not use ANGLE. And there is a case that we want to use WebRender with ANGLE for testing.

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

--HG--
extra : moz-landing-system : lando
2020-04-13 23:55:08 +00:00
sotaro bfdd961bd3 Bug 1593179 - Enable gfx.webrender.max-partial-present-rects by default on Windows r=nical
Differential Revision: https://phabricator.services.mozilla.com/D67082

--HG--
extra : moz-landing-system : lando
2020-03-17 10:26:50 +00:00
Glenn Watson 8efc792cc9 Bug 1620147 - Fix virtual surface coords being outside bounds. r=Bert,sotaro
This adds support for tracking and invalidating tiles based on a
movable virtual offset.

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

--HG--
extra : moz-landing-system : lando
2020-03-10 02:17:35 +00:00
Emilio Cobos Álvarez 5b006d907b Bug 1616395 - Unbust windows build in a CLOSED TREE.
MANUAL PUSH: minor bustage fix.
2020-02-19 20:36:27 +01:00
Emilio Cobos Álvarez d18caaa054 Bug 1616395 - Remove FfiVec. r=jrmuizel
Use ThinVec instead, which is compatible with nsTArray, and makes stuff much
harder to misuse.

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

--HG--
extra : moz-landing-system : lando
2020-02-19 18:34:51 +00:00
sotaro fd1ef47bde Bug 1615946 - Log error when RenderCompositorANGLE::MaybeReadback() takes long time r=nical
Differential Revision: https://phabricator.services.mozilla.com/D63039

--HG--
extra : moz-landing-system : lando
2020-02-17 14:39:31 +00:00
Glenn Watson 31585fc1e6 Bug 1608717 - Support per-tile clip (valid) region for native compositor implementations. r=sotaro,mstange
For Draw (non-native) and CA modes, we include the per-tile
valid rect in the clip rect from the surface.

For DC (non-virtual) mode, a per-tile clip rect is set on the
visual for each tile, separate from the overall clip rect that
is set on the surface visual.

For DC (virtual) mode, the Trim API is used to remove pixels
in the virtual tile area that are outside the valid / clipped
region.

Note: Although the valid rect is now applied in the native
compositors, it's currently only based on the overall picture
cache bounding rect. Thus, with this patch there isn't any
noticeable performance improvement. Once this lands and is
working correctly, the follow up patch to calculate a smaller
valid region per-tile is a small amount of work.

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

--HG--
extra : moz-landing-system : lando
2020-02-12 04:27:15 +00:00
Jeff Muizelaar 3dd8739d15 Bug 1613485. Add a new COMPOSITE_SWAP_TIME metric. r=aosmond
This should help us narrow down the regression in COMPOSITE_TIME

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

--HG--
extra : moz-landing-system : lando
2020-02-06 19:49:25 +00:00
sotaro aa001195aa Bug 1612665 - Backout Bug 1596630 r=nical
SyncObjectD3D11Host::Synchronize() calling in RenderCompositorANGLE::BeginFrame() is still necessary for D3D11DXVA2Manager::CopyToImage(). Then backout Bug 1596630.

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

--HG--
extra : moz-landing-system : lando
2020-02-05 09:39:28 +00:00
sotaro 56b30bd8c4 Bug 1602643 - Disable WebRender compositor dinamically for async screenshot r=gw
Differential Revision: https://phabricator.services.mozilla.com/D59658

--HG--
extra : moz-landing-system : lando
2020-01-23 23:52:05 +00:00
Mihai Alexandru Michis d8a8849254 Backed out changeset f3b490c076d6 (bug 1602643) for causing bustages regarding CompositorKindChanged
CLOSED TREE
2020-01-23 16:27:33 +02:00
sotaro 7afb826ef9 Bug 1602643 - Disable WebRender compositor dinamically for async screenshot r=gw
Differential Revision: https://phabricator.services.mozilla.com/D59658

--HG--
extra : moz-landing-system : lando
2020-01-23 04:37:28 +00:00
sotaro 9226c571f4 Bug 1605963 - Do not create SwapChain when OS compositor is used on Windows r=gw
Differential Revision: https://phabricator.services.mozilla.com/D58232

--HG--
extra : moz-landing-system : lando
2020-01-05 19:10:12 +00:00
Glenn Watson 3aa1137e6f Bug 1604684 - Make opacity a compositor surface property rather than a tile property. r=sotaro
This will allow use of the DirectComposition virtual surface API. If
it turns out that some pages recreate surfaces a lot due to opacity
changing, we can add some extra logic to avoid recreating surfaces
as often, and making use of per-tile opacity in some cases.

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

--HG--
extra : moz-landing-system : lando
2020-01-06 20:11:21 +00:00
Glenn Watson 3aeeba2db2 Bug 1604383 - Refactor the Compositor trait to allow support for DC virtual surface API. r=mstange,sotaro
Differential Revision: https://phabricator.services.mozilla.com/D57415

--HG--
extra : moz-landing-system : lando
2019-12-17 21:44:03 +00:00
sotaro a5ce70d85a Bug 1604380 - Disable partial present when picture caching is disabled r=gw
Partial present does not work when WR picture caching is disabled.

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

--HG--
extra : moz-landing-system : lando
2019-12-17 05:05:30 +00:00
sotaro c61720a7d0 Bug 1603676 - Move picture caching check for WR compositor to Feature::WEBRENDER_COMPOSITOR check r=gw
about:support could have an information that WR compositor is disabled by disabling picture caching.

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

--HG--
extra : moz-landing-system : lando
2019-12-16 03:50:31 +00:00
Glenn Watson 2a3fc4613c Bug 1603207 - Only enable native compositor if picture caching enabled. r=sotaro
Differential Revision: https://phabricator.services.mozilla.com/D56817

--HG--
extra : moz-landing-system : lando
2019-12-12 00:08:38 +00:00
sotaro 111038667c Bug 1602511 - Blacklist webrender compositor on Intel HD 520 r=gw
Differential Revision: https://phabricator.services.mozilla.com/D56535

--HG--
extra : moz-landing-system : lando
2019-12-10 19:16:13 +00:00
sotaro 6c36181d45 Bug 1601862 - Suppress false alarm log r=nical
Differential Revision: https://phabricator.services.mozilla.com/D56150

--HG--
extra : moz-landing-system : lando
2019-12-10 01:10:23 +00:00
Csoregi Natalia e216498233 Backed out changeset 519be451c283 (bug 1601862) for bustage on RenderCompositorANGLE.cpp. CLOSED TREE 2019-12-09 03:43:33 +02:00
sotaro 2213a5357e Bug 1601862 - Suppress false alarm log r=nical
Differential Revision: https://phabricator.services.mozilla.com/D56150

--HG--
extra : moz-landing-system : lando
2019-12-06 13:04:44 +00:00
sotaro d5a300b92b Bug 1599887 - Update frame is when WR rendering is skipped r=nical
wr::WebRenderPipelineInfo needs to be handled even when WR rendering does not happen.

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

--HG--
extra : moz-landing-system : lando
2019-12-06 13:06:21 +00:00
sotaro 9171fb9fcf Bug 1600533 - Rename WaitForPreviousPresentQuery() r=gw
Differential Revision: https://phabricator.services.mozilla.com/D55403

--HG--
extra : moz-landing-system : lando
2019-12-02 10:41:57 +00:00
sotaro 00f9b4efee Bug 1585619 - Add option of using PrintWindow() for taking snapshot of DirectComposition r=gw
Differential Revision: https://phabricator.services.mozilla.com/D47894

--HG--
extra : moz-landing-system : lando
2019-11-30 03:14:58 +00:00
sotaro 6c701a41a3 Bug 1596630 - Remove mSyncObject->Synchronize() in RenderCompositorANGLE::BeginFrame() r=nical
mSyncObject->Synchronize() was necessary to handle a case that D3D Texture was created on main thread of content process and the Texture does not have a keyed mutex. But with WebRender, the situation does not happen often. Further the Synchronize() is sometimes very slow. Therefore it is better to remove it from RenderCompositorANGLE::BeginFrame().

Canvas 2d does not use keyed mutex yet. Then the change adds keyed mutex usage for the canvas 2d.

D3D11DXVA2Manager still uses the Synchronize(). In this case, the Synchronize() is manually called in D3D11DXVA2Manager::CopyToImage(). Then RenderCompositorANGLE still needs to create SyncObjectHost.

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

--HG--
extra : moz-landing-system : lando
2019-11-18 09:49:15 +00:00
sotaro 22a4932c7e Bug 1595703 - Remove DXGI_USAGE_SHADER_INPUT usage r=gw
DXGI_USAGE_SHADER_INPUT is not necessary with current WebRender.

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

--HG--
extra : moz-landing-system : lando
2019-11-12 19:15:39 +00:00
sotaro e3f85dc709 Bug 1595027 - Disable partial present when SwapChain uses alpha r=nical
During high contrast mode, alpha is used by SwapChain. In this case, IDXGISwapChain1::Present1() shows nothing with compositor window. To address the problem, we disable the Present1() usage when alpha is used.

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

--HG--
extra : moz-landing-system : lando
2019-11-12 22:13:41 +00:00
sotaro 127c0ad209 Bug 1592510 - Make partial updates with WebRender OS compositor work on Windows r=gw
Differential Revision: https://phabricator.services.mozilla.com/D51984

--HG--
extra : moz-landing-system : lando
2019-11-07 00:57:23 +00:00