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

124 Коммитов

Автор SHA1 Сообщение Дата
sotaro f20d0b5b46 Bug 1686860 - Relax version check for CreateSwapChainForHwnd() in RenderCompositorANGLE::CreateSwapChain() r=jrmuizel
The change is related to  Bug 1686805.

Differential Revision: https://phabricator.services.mozilla.com/D101863
2021-01-15 03:08:27 +00:00
sotaro 6b0b8a1249 Bug 1681756 - Fix return of RenderCompositorANGLE::GetBufferSize() r=nical
I missed to read a review comment of D100220.

Differential Revision: https://phabricator.services.mozilla.com/D100456
2021-01-04 09:47:29 +00:00
sotaro 896fb71c16 Bug 1681756 - Make RenderCompositorANGLE::GetBufferSize() to be positive with native compositor r=mattwoodrow
Differential Revision: https://phabricator.services.mozilla.com/D100220
2020-12-21 23:40:59 +00:00
Andrew Osmond 45b5262f91 Bug 1632698 - Better handle device resets when we don't have a GPU process. r=sotaro,kvark,nical
Aside from on Windows, we do not appear to handle device resets properly
without the GPU process. This patch adds in the necessary plumbing to
handle the device reset properly. It also ensures that whenever we check
for a device reset reason, we handle all of the reasons (e.g. not just
the NV video memory purge reset reason) to ensure they are not lost, and
handles them all consistently in the same manner.

It also tracks the number of device resets for thresholding purposes
with an in process compositor. While it will only disable WebRender on
Linux at this time, it will put a note in the critical log if the
threshold was exceeded on all platforms. This may prove useful in
evaluating whether or not we should do the same everywhere.

Differential Revision: https://phabricator.services.mozilla.com/D98705
2020-12-07 20:36:11 +00:00
Matt Woodrow c347392269 Bug 1676719 - Allow WebRender ANGLE in parent process for Nightly. r=jrmuizel
Depends on D96766

Differential Revision: https://phabricator.services.mozilla.com/D96768
2020-11-12 01:31:19 +00:00
Matt Woodrow d418438c0c Bug 1676719 - Only attempt a partial present when we have DXGI 1.2 available. r=jrmuizel
Differential Revision: https://phabricator.services.mozilla.com/D96766
2020-11-12 01:30:10 +00:00
sotaro 4f1c35bfbd Bug 1669143 - Handle a case that GetDeviceOfEGLDisplay() returned nullptr r=nical
When ANGLE detects device reset, GetDeviceOfEGLDisplay() returns nullptr. It is not handled as device reset in current RenderCompositorANGLE::ShutdownEGLLibraryIfNecessary(). It should be handled as device reset.

Differential Revision: https://phabricator.services.mozilla.com/D92543
2020-10-06 09:31:05 +00:00
Kartikaya Gupta aaef0a4678 Bug 1667176 - Miscellaneous unified build fixes. r=mattwoodrow
Upcoming patches shift around which files get unified and expose these build
failures.

Differential Revision: https://phabricator.services.mozilla.com/D91332
2020-09-25 08:57:23 +00:00
Andrew Osmond 64ae7b6168 Bug 1664703 - Expose yet more (round 2) WebRender initializaiton failure error messages to telemetry.
Differential Revision: https://phabricator.services.mozilla.com/D90045
2020-09-13 17:31:14 +00:00
Andrew Osmond a9c24fabba Bug 1664560 - Expose yet more WebRender initialization failure error messages to telemetry. r=kvark
Differential Revision: https://phabricator.services.mozilla.com/D89966
2020-09-11 22:40:40 +00:00
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