searching for reviewer(nical)
a39390791308dfc6533ebf6cea9954088b0bffec: Bug 1654836 - Redo how we expand displayport alignment for webrender. r=nical
Kartikaya Gupta <kgupta@mozilla.com> - Fri, 18 Sep 2020 12:40:08 +0000 - rev 614572
Push 13943 by ffxbld-merge at Mon, 21 Sep 2020 13:41:08 +0000
Bug 1654836 - Redo how we expand displayport alignment for webrender. r=nical The displayport is aligned to screen pixels by an alignment number; there was code to increase that alignment number for the WebRender codepath. This is desirable because it causes the displayport to move less frequently, which provides better performance characteristics with WebRender. However, the way that was implemented, it was possible for the aligned displayport to not completely enclose the unaligned displayport, which could then result in perma-checkerboarding. This patch removes that code and replaces it with a simpler approach to scale up the existing alignment number by a factor based on the size of the scroller's base rect (roughly how much of the scroller is visible to the user). This does make the displayports larger, more so for scrollers with more visible area. This has negative performance implications, so we mitigate that by also scaling down the displayport margin multiplier by the same scaling factor. This isn't perfect, but seems to work well enough in practice. Differential Revision: https://phabricator.services.mozilla.com/D90503
5a2f1cfc33ad240cacf7c81a961261c6615afb13: Bug 1654836 - Initialize gfxVars in all APZ gtests. r=nical
Kartikaya Gupta <kgupta@mozilla.com> - Fri, 18 Sep 2020 08:08:18 +0000 - rev 614571
Push 13943 by ffxbld-merge at Mon, 21 Sep 2020 13:41:08 +0000
Bug 1654836 - Initialize gfxVars in all APZ gtests. r=nical The next patch requires gfxVars::UseWebRender to work in gtests, so we need to make sure gfxPlatform is initialized correctly for all the tester classes. Differential Revision: https://phabricator.services.mozilla.com/D90502
8b4f9898cdce9ccdb83d45424e51d8986708ea3e: Bug 1654836 - Add a test for checkerboarding with zero displayport multipliers. r=nical
Kartikaya Gupta <kgupta@mozilla.com> - Fri, 18 Sep 2020 08:07:29 +0000 - rev 614570
Push 13943 by ffxbld-merge at Mon, 21 Sep 2020 13:41:08 +0000
Bug 1654836 - Add a test for checkerboarding with zero displayport multipliers. r=nical This ensures that even with the displayport margins dropped to zero we don't get any checkerboarding. This currently fails with WR enabled, because the displayport alignment code moves the displayport so it doesn't enclose the unaligned displayport, and that's bad. Differential Revision: https://phabricator.services.mozilla.com/D90501
146ebd1dd27b40c0b07f4cd53c0f1cf2f5eb43d2: Bug 1654836 - Extract helper method for checking for checkerboards. r=nical
Kartikaya Gupta <kgupta@mozilla.com> - Fri, 18 Sep 2020 08:06:49 +0000 - rev 614569
Push 13943 by ffxbld-merge at Mon, 21 Sep 2020 13:41:08 +0000
Bug 1654836 - Extract helper method for checking for checkerboards. r=nical No functional changes here, just refactoring code that is already duplicated in a bunch of tests. Differential Revision: https://phabricator.services.mozilla.com/D90500
e7fa30480419c4ef225d245f009aa051938cea31: Bug 1654836 - Add a bunch of verbose-level displayport logging. r=nical
Kartikaya Gupta <kgupta@mozilla.com> - Fri, 18 Sep 2020 08:05:50 +0000 - rev 614568
Push 13943 by ffxbld-merge at Mon, 21 Sep 2020 13:41:08 +0000
Bug 1654836 - Add a bunch of verbose-level displayport logging. r=nical Differential Revision: https://phabricator.services.mozilla.com/D90499
bfbeb498e04f677a77293f2157f512fafa070322: Bug 1665805 - Fix native compositor accuracy issues due to large clip rect. r=nical
Glenn Watson <git@intuitionlibrary.com> - Fri, 18 Sep 2020 08:27:18 +0000 - rev 614547
Push 13943 by ffxbld-merge at Mon, 21 Sep 2020 13:41:08 +0000
Bug 1665805 - Fix native compositor accuracy issues due to large clip rect. r=nical If a native compositor surface ends up with no effective clip rect, the clip rect supplied via the compositor trait to CoreAnimation may be very large. This large clip rect can cause accuracy issues inside CoreAnimation resulting in layers that are drawn incorrectly. To work around this, clamp the surface clip rect to the current allocated area of the tiles for a given compositor surface. Differential Revision: https://phabricator.services.mozilla.com/D90638
4107acc2e89b5125daee8f41e4ccb811ea8707b4: Bug 1663865 - Fix incorrect assertion check. r=nical
Glenn Watson <git@intuitionlibrary.com> - Wed, 16 Sep 2020 10:55:42 +0000 - rev 614275
Push 13943 by ffxbld-merge at Mon, 21 Sep 2020 13:41:08 +0000
Bug 1663865 - Fix incorrect assertion check. r=nical The debug assertion check here is trying to validate that we don't enter an unexpected path for non-tiled images if the image template has tiling enabled. However, it was not correctly handling the case where an image key has been sent but the image was removed. This case is handled by the `resolve_image` code below, so it's a valid state to encounter in this code path. Differential Revision: https://phabricator.services.mozilla.com/D90343
c8b6513bd9fba68d39eb80b3fcc0fbec158b8748: Bug 1665257 - Add ASSERT to TextureClient::InitIPDLActor() r=nical
sotaro <sotaro.ikeda.g@gmail.com> - Wed, 16 Sep 2020 09:47:42 +0000 - rev 614185
Push 13943 by ffxbld-merge at Mon, 21 Sep 2020 13:41:08 +0000
Bug 1665257 - Add ASSERT to TextureClient::InitIPDLActor() r=nical Differential Revision: https://phabricator.services.mozilla.com/D90347
c4b987da7cfc20a20d8139487a1021e4e889f9c7: Bug 1663732 - Hook up GeckoView's CompositorController.setClearColor() to webrender. r=nical
Jamie Nicol <jnicol@mozilla.com> - Tue, 15 Sep 2020 13:22:24 +0000 - rev 613988
Push 13943 by ffxbld-merge at Mon, 21 Sep 2020 13:41:08 +0000
Bug 1663732 - Hook up GeckoView's CompositorController.setClearColor() to webrender. r=nical Differential Revision: https://phabricator.services.mozilla.com/D90098
0ea4a897ea2ff5bf06ae4eccdfbb004d90a7871a: Bug 1664719 - Pt 2 - Select ancestor clips as shared clips only. r=nical
Glenn Watson <git@intuitionlibrary.com> - Mon, 14 Sep 2020 07:11:28 +0000 - rev 613887
Push 13943 by ffxbld-merge at Mon, 21 Sep 2020 13:41:08 +0000
Bug 1664719 - Pt 2 - Select ancestor clips as shared clips only. r=nical Instead of selecting any rectangle clips as potential shared clips for content in a picture cache slice, only select clips that are positioned by an ancestor spatial node of the picture cache scroll root. This ensures we don't incorrectly select rectangle clips on the primitive as potential shared clips, which will be important in the follow up patches for this bug. Differential Revision: https://phabricator.services.mozilla.com/D90052
f66cec1aee94d090009814ee9818efe204eb9358: Bug 1664719 - Pt 1 - Select outermost scroll root if no real scroll roots found. r=nical
Glenn Watson <git@intuitionlibrary.com> - Mon, 14 Sep 2020 07:04:48 +0000 - rev 613884
Push 13943 by ffxbld-merge at Mon, 21 Sep 2020 13:41:08 +0000
Bug 1664719 - Pt 1 - Select outermost scroll root if no real scroll roots found. r=nical Previously, if we encounter a page where there are no real scroll roots, WR would attach the picture cache slices to the root reference frame. This means that in some cases, no shared clips will be found for the content slices. This is not currently a performance issue, since the content slices are fixed and don't scroll. However, future patches for this bug will only select shared clips that are ancestors of the picture cache scroll root. This patch ensures that in these cases, we still select the outermost defined scroll frame, allowing shared clips to be correctly found for these pages with a single scroll frame that doesn't scroll. Differential Revision: https://phabricator.services.mozilla.com/D90051
22b56541bfa70d341bcdd76acccf9c6e121a1d96: Bug 1664736 - Add error log to AndroidHardwareBuffer::FromFileDescriptor() r=nical
sotaro <sotaro.ikeda.g@gmail.com> - Mon, 14 Sep 2020 11:00:22 +0000 - rev 613807
Push 13943 by ffxbld-merge at Mon, 21 Sep 2020 13:41:08 +0000
Bug 1664736 - Add error log to AndroidHardwareBuffer::FromFileDescriptor() r=nical Differential Revision: https://phabricator.services.mozilla.com/D90057
6ca25e02d89355b5d62c4d137d72cd7a0c7e2373: Bug 1664084 - Improve glyph rasterization worker thread usage. r=nical
Glenn Watson <git@intuitionlibrary.com> - Thu, 10 Sep 2020 13:27:59 +0000 - rev 613526
Push 13943 by ffxbld-merge at Mon, 21 Sep 2020 13:41:08 +0000
Bug 1664084 - Improve glyph rasterization worker thread usage. r=nical Previously, any time a text run was requested where the number of glyphs to rasterize was < 8, WR would rasterize those glyphs on the main backend thread. However, this pattern (along with skipping glyphs in the text run that are already cached) meant that we will often see frames where almost all of the glyph raster work gets done on the main thread, even when there are a large number of glyphs to rasterize. This patch introduces a batching system. Any time a batch of 8 glyphs for a given font instance are queued, they are dispatched to a worker thread. At the end of the glyph request phase, any pending glyphs are also sent to worker threads, if there is a significant amount of work to do, or done on the main thread if there are only a few glyphs left. During profiling of a number of common pages, this appears to drop the mean and median frame building time by a small amount, but drop the worst case frame building times by significant amounts (often several ms). Differential Revision: https://phabricator.services.mozilla.com/D89692
4deade611cef5f3cb02174f6efc77cc58c2e235c: Bug 1663894 - Fix minGW build failure by Bug 1460499 r=nical
sotaro <sotaro.ikeda.g@gmail.com> - Thu, 10 Sep 2020 14:03:15 +0000 - rev 613424
Push 13943 by ffxbld-merge at Mon, 21 Sep 2020 13:41:08 +0000
Bug 1663894 - Fix minGW build failure by Bug 1460499 r=nical Differential Revision: https://phabricator.services.mozilla.com/D89699
b7a8ba0998da61a7d18ad14669b1d1ccacaac21b: Bug 1654271 - Ship WebRender on < OSX 10.16 and Intel Gen 6 GT2 and Gen 7 to release. r=nical
Andrew Osmond <aosmond@mozilla.com> - Wed, 09 Sep 2020 15:54:18 +0000 - rev 613278
Push 13943 by ffxbld-merge at Mon, 21 Sep 2020 13:41:08 +0000
Bug 1654271 - Ship WebRender on < OSX 10.16 and Intel Gen 6 GT2 and Gen 7 to release. r=nical Also ship to release if the Intel driver is 21.20.16.4550 or later. Add Intel Gen 6 GT1 (Sandybridge) and allow it to ride to early beta. Differential Revision: https://phabricator.services.mozilla.com/D89613
9c88255c845cf5fd365a6a04b9c13dae145febc3: Bug 1460499 - Use DirectComposition for hardware decoded video on Windows r=nical
sotaro <sotaro.ikeda.g@gmail.com> - Wed, 09 Sep 2020 01:04:53 +0000 - rev 613234
Push 13943 by ffxbld-merge at Mon, 21 Sep 2020 13:41:08 +0000
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
38f23085fe4d53b56234d10d94d479701d9905eb: Bug 1663362 - Remove extra raster root assignment pass. r=nical
Glenn Watson <git@intuitionlibrary.com> - Tue, 08 Sep 2020 08:45:28 +0000 - rev 613210
Push 13943 by ffxbld-merge at Mon, 21 Sep 2020 13:41:08 +0000
Bug 1663362 - Remove extra raster root assignment pass. r=nical This was left as a debug option when the original change was made, to allow seeing the differences. It's no longer required. Differential Revision: https://phabricator.services.mozilla.com/D89328
aa442b10bdbc6127649de2a029cd60fd314be8ee: Bug 1658684 - Add android Fence handling to WebRender r=nical
sotaro <sotaro.ikeda.g@gmail.com> - Wed, 02 Sep 2020 14:21:36 +0000 - rev 612915
Push 13943 by ffxbld-merge at Mon, 21 Sep 2020 13:41:08 +0000
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
7ceb357e9085c2f3eaa889a29396531c8e57de10: Bug 1662456 - Simplify hitregion accessibility code. r=nical
Emilio Cobos Álvarez <emilio@crisal.io> - Wed, 02 Sep 2020 23:47:17 +0000 - rev 612892
Push 13943 by ffxbld-merge at Mon, 21 Sep 2020 13:41:08 +0000
Bug 1662456 - Simplify hitregion accessibility code. r=nical There's no reason it has to allocate anything. Differential Revision: https://phabricator.services.mozilla.com/D88991
bca1995a3d5cfd3e7838cd068d041a16d9f61c34: Bug 1662456 - Remove HTMLCanvasElement::CountContexts and related code. r=nical
Emilio Cobos Álvarez <emilio@crisal.io> - Wed, 02 Sep 2020 14:20:50 +0000 - rev 612891
Push 13943 by ffxbld-merge at Mon, 21 Sep 2020 13:41:08 +0000
Bug 1662456 - Remove HTMLCanvasElement::CountContexts and related code. r=nical Canvas only has one context, and that assumption is pretty baked into the code, so having an API that pretends otherwise is silly. Differential Revision: https://phabricator.services.mozilla.com/D88990
74f8a3dddeac1392d0d34173bf705f1f8bd44629: Bug 1623792 - Pt 11 - Remove unnecessary cluster flags. r=nical
Glenn Watson <git@intuitionlibrary.com> - Tue, 01 Sep 2020 07:19:11 +0000 - rev 612612
Push 13943 by ffxbld-merge at Mon, 21 Sep 2020 13:41:08 +0000
Bug 1623792 - Pt 11 - Remove unnecessary cluster flags. r=nical Now that picture cache slices are determined during add_prim, we no longer need to create as many clusters to separate them based on the prim flags. Differential Revision: https://phabricator.services.mozilla.com/D88934
3832fac142efd84069cc6ef0a965689171cdea8b: Bug 1623792 - Pt 10 - Remove an unused field and method. r=nical
Glenn Watson <git@intuitionlibrary.com> - Tue, 01 Sep 2020 07:19:49 +0000 - rev 612611
Push 13943 by ffxbld-merge at Mon, 21 Sep 2020 13:41:08 +0000
Bug 1623792 - Pt 10 - Remove an unused field and method. r=nical Differential Revision: https://phabricator.services.mozilla.com/D88931
0ec8df5bd92b7847098a2d5e1c784e7baf381a24: Bug 1654211 - Hold WeakPtr to PresistentBufferProvider in BorrowedSourceSurface. r=gfx-reviewers,nical
Jeff Gilbert <jgilbert@mozilla.com> - Tue, 25 Aug 2020 15:36:11 +0000 - rev 612073
Push 13943 by ffxbld-merge at Mon, 21 Sep 2020 13:41:08 +0000
Bug 1654211 - Hold WeakPtr to PresistentBufferProvider in BorrowedSourceSurface. r=gfx-reviewers,nical Differential Revision: https://phabricator.services.mozilla.com/D88071
819dfdc2c954eb4e62bcdfd6f1a69e1d00e79750: Bug 1640617 - Disable partial present when debug overlays are enabled. r=nical
Glenn Watson <git@intuitionlibrary.com> - Wed, 26 Aug 2020 09:36:50 +0000 - rev 611638
Push 13943 by ffxbld-merge at Mon, 21 Sep 2020 13:41:08 +0000
Bug 1640617 - Disable partial present when debug overlays are enabled. r=nical Differential Revision: https://phabricator.services.mozilla.com/D88087
60bb188712e440b67d1d04b06ee720af94cbbb9b: Bug 1658005 - Unify RenderTextureHost async function calls r=nical,jnicol
sotaro <sotaro.ikeda.g@gmail.com> - Fri, 21 Aug 2020 07:32:47 +0000 - rev 611161
Push 13943 by ffxbld-merge at Mon, 21 Sep 2020 13:41:08 +0000
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
4b90dac4c40b61e2f4c3c2a4a04bbc3000aaef0c: Bug 1654211 - Hold WeakPtr to PresistentBufferProvider in BorrowedSourceSurface. r=nical, a=tjr
Jeff Gilbert <jgilbert@mozilla.com> - Tue, 25 Aug 2020 15:36:11 +0000 - rev 610567
Push 13645 by ryanvm@gmail.com at Fri, 28 Aug 2020 15:19:44 +0000
Bug 1654211 - Hold WeakPtr to PresistentBufferProvider in BorrowedSourceSurface. r=nical, a=tjr Differential Revision: https://phabricator.services.mozilla.com/D88071
54d73028c01ff34173a4cfa83c9ffd46feea07ef: Bug 1640564 - Delete the blob commands when we delete the blob image template. r=nical
Andrew Osmond <aosmond@mozilla.com> - Fri, 21 Aug 2020 13:11:29 +0000 - rev 610289
Push 13553 by ffxbld-merge at Mon, 24 Aug 2020 12:51:36 +0000
Bug 1640564 - Delete the blob commands when we delete the blob image template. r=nical Differential Revision: https://phabricator.services.mozilla.com/D87794
b803fd88181eaf33ed1932e959cbf538f7d95e58: Bug 1659676 - Simplify WR hit-test API. r=kats,kvark,nical
Glenn Watson <git@intuitionlibrary.com> - Wed, 19 Aug 2020 15:05:30 +0000 - rev 610011
Push 13553 by ffxbld-merge at Mon, 24 Aug 2020 12:51:36 +0000
Bug 1659676 - Simplify WR hit-test API. r=kats,kvark,nical Specifically: - Remove hit test tag from common display item properties. - Simplify WR bindings to use hit-test items exclusively. - Remove support for transparent rectangles to be hit-test items. - Remove support for any primitive to be a hit-test item. Differential Revision: https://phabricator.services.mozilla.com/D87421
43c6b884bb740d616ac9e63f37d866ee095defd2: Bug 1659233 - Remove AsyncImagePipelineManager::mPendingUpdates r=nical
sotaro <sotaro.ikeda.g@gmail.com> - Wed, 19 Aug 2020 09:32:02 +0000 - rev 609943
Push 13553 by ffxbld-merge at Mon, 24 Aug 2020 12:51:36 +0000
Bug 1659233 - Remove AsyncImagePipelineManager::mPendingUpdates r=nical It is not necessary with current gecko. Differential Revision: https://phabricator.services.mozilla.com/D87158
0307f6fccc989636738cf72d87819260ebbd9887: Bug 1623792 - Add ClipSet to PrimitiveInstance. r=kvark,nical
Glenn Watson <git@intuitionlibrary.com> - Tue, 04 Aug 2020 21:05:12 +0000 - rev 607915
Push 13553 by ffxbld-merge at Mon, 24 Aug 2020 12:51:36 +0000
Bug 1623792 - Add ClipSet to PrimitiveInstance. r=kvark,nical Much of the work that is currently done during frame building to build clip-chain instances can actually be done during scene building (most clips are in the same local space as the related primitive). This patch adds ClipSet, and does the minimal amount of refactoring to move clip_chain_id and local_clip_rect into this structure. Future work will move much of the current clip chain node information to be stored inline in ClipSet that doesn't need to be recalculated each frame build. Eventually, this functionality can be stored as part of the primitive template, which will avoid doing this work during scene building unless the clips have changed. Differential Revision: https://phabricator.services.mozilla.com/D85807
b5544e33d1438f7d39875cd58b2d00071dbc1484: Bug 1656820 - Remove content_size from scene pipeline. r=nical
Glenn Watson <git@intuitionlibrary.com> - Mon, 03 Aug 2020 20:57:30 +0000 - rev 607799
Push 13553 by ffxbld-merge at Mon, 24 Aug 2020 12:51:36 +0000
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
df688b6d4c8d3aa7378a14b6a380c335cc222ce4: Bug 1656472 - [X11] Drop CopySubBufferMESA and add SwapBuffersWithDamage support, r=nical
Robert Mader <robert.mader@posteo.de> - Fri, 31 Jul 2020 16:13:54 +0000 - rev 607542
Push 13553 by ffxbld-merge at Mon, 24 Aug 2020 12:51:36 +0000
Bug 1656472 - [X11] Drop CopySubBufferMESA and add SwapBuffersWithDamage support, r=nical This largely reverts D81868, only keeping what's needed to make SwapBuffersWithDamage work, and also adds BufferAge support to RenderCompositorOGL. Differential Revision: https://phabricator.services.mozilla.com/D85565
c97e499d4bbfd8dd960c5d76ab29e41ca3fe55e6: Bug 1640195 - Remove using namespace from nsNativeBasicTheme.h. r=nical
Emilio Cobos Álvarez <emilio@crisal.io> - Fri, 31 Jul 2020 12:04:29 +0000 - rev 607488
Push 13553 by ffxbld-merge at Mon, 24 Aug 2020 12:51:36 +0000
Bug 1640195 - Remove using namespace from nsNativeBasicTheme.h. r=nical Sorry, should've caught this during review. Differential Revision: https://phabricator.services.mozilla.com/D85566
2888afda999438cb7fd93f3c1a661dabf5cf0a16: Bug 1654262 - Ship WebRender to Intel gen7.5 gt1-3 laptop users. r=nical
Andrew Osmond <aosmond@mozilla.com> - Thu, 30 Jul 2020 07:50:34 +0000 - rev 607244
Push 13553 by ffxbld-merge at Mon, 24 Aug 2020 12:51:36 +0000
Bug 1654262 - Ship WebRender to Intel gen7.5 gt1-3 laptop users. r=nical Also, lower the minimum driver version from 24.20.100.6286 to 23.20.16.4973. Differential Revision: https://phabricator.services.mozilla.com/D85359
5cd0a2bb1d732bada8db6bbd7a04e9c7ea3cb28b: Bug 1655882 - Disable AsyncDXGISurface of plugin when WebRender does not use ANGLE r=nical
sotaro <sotaro.ikeda.g@gmail.com> - Wed, 29 Jul 2020 12:50:17 +0000 - rev 607167
Push 13553 by ffxbld-merge at Mon, 24 Aug 2020 12:51:36 +0000
Bug 1655882 - Disable AsyncDXGISurface of plugin when WebRender does not use ANGLE r=nical Differential Revision: https://phabricator.services.mozilla.com/D85217
fe04d92f83caf9a17288977b05cb97c7148e4d27: Bug 1654091 - Widen the biasing threshold to 1.5ms. r=nical
Markus Stange <mstange.moz@gmail.com> - Wed, 29 Jul 2020 17:58:02 +0000 - rev 607131
Push 13553 by ffxbld-merge at Mon, 24 Aug 2020 12:51:36 +0000
Bug 1654091 - Widen the biasing threshold to 1.5ms. r=nical We still keep the actual biasing amount (BIAS_TIME_MS) at 1.0ms. This makes it possible to switch from negative bias to positive bias in an instant, at the frame that is repeated. Here's how: While the bias is negative, it means that we're allowed to pick frames up to 1.0ms in the future. But we've drifted far enough that the next frame's timestamp is more than 1.0ms in the future, for example 1.3ms, we cannot pick it, so we're at a composite that repeats a frame. This is the point where we want to switch to positive bias. In order to switch to positive bias, the next frame's timestamp must be within the biasing threshold of the current composition time. But if that threshold is at 1.0ms, then the 1.3ms falls outside of that and we keep the negative bias, which is bad. With the widened threshold of 1.5ms, we successfully switch to the positive bias in that case. There would be no harm in keeping the negative bias if the video frames were going to be *consistently* further than 1.0ms away from the composition time from now on, because then even a negative bias would not make them eligible to be picked. But whenever we have small fluctuations, which is the case when we actually *need* the bias for consistent playback, it means that the next frame might again be within 1.0ms of the composition time, and the negative bias would cause a frame to be skipped. One source of such fluctuations is the fact that WebM video frames only have *integer millisecond* precision on their timestamps. That means they're off by up to 0.5ms from their desired timestamp. So the frame that's 1.3ms in the future could be one that was supposed to be at composition time + 0.9ms, but happened to be off by 0.4ms from its desired timestamp due to the integer millisecond restriction. This frame could then be followed by another frame that also wanted to be at +0.9ms (compared to the next frame's composition time), but ended up being at +0.6ms. So at that point it is important to no longer have the negative bias, because otherwise a frame would be skipped. Profile before: https://share.firefox.dev/3hnOOtk Profile after: https://share.firefox.dev/3fIfEf4 Differential Revision: https://phabricator.services.mozilla.com/D84285
e35fce52004ba31f4e1360b1355e992f104b725d: Bug 1654091 - Add a profiler marker for the current and next video frame timestamp offsets from the composition time. r=nical
Markus Stange <mstange.moz@gmail.com> - Wed, 29 Jul 2020 17:57:50 +0000 - rev 607130
Push 13553 by ffxbld-merge at Mon, 24 Aug 2020 12:51:36 +0000
Bug 1654091 - Add a profiler marker for the current and next video frame timestamp offsets from the composition time. r=nical Differential Revision: https://phabricator.services.mozilla.com/D84284
0ea136f89f8fb0af1ba7234912b4c694efc0c9bc: Bug 1654091 - Update ImageComposite bias even on frames where the video frame doesn't update. r=nical
Markus Stange <mstange.moz@gmail.com> - Wed, 29 Jul 2020 17:57:44 +0000 - rev 607129
Push 13553 by ffxbld-merge at Mon, 24 Aug 2020 12:51:36 +0000
Bug 1654091 - Update ImageComposite bias even on frames where the video frame doesn't update. r=nical However, don't reset the bias to NONE in those cases. Differential Revision: https://phabricator.services.mozilla.com/D84283
6f453aacc2a13e36f542f74e7dfcb509068fba02: Bug 1654091 - Pick the frame in the first call to ChooseImageIndex and then don't look at timestamps again for the remainder of the composition. r=nical
Markus Stange <mstange.moz@gmail.com> - Wed, 29 Jul 2020 17:57:16 +0000 - rev 607128
Push 13553 by ffxbld-merge at Mon, 24 Aug 2020 12:51:36 +0000
Bug 1654091 - Pick the frame in the first call to ChooseImageIndex and then don't look at timestamps again for the remainder of the composition. r=nical Differential Revision: https://phabricator.services.mozilla.com/D84282
ba8c767fb3eba8e6ffe15886fdf087dc314b1972: Bug 1654091 - Make these two fields private rather than protected. r=nical
Markus Stange <mstange.moz@gmail.com> - Wed, 29 Jul 2020 17:57:09 +0000 - rev 607127
Push 13553 by ffxbld-merge at Mon, 24 Aug 2020 12:51:36 +0000
Bug 1654091 - Make these two fields private rather than protected. r=nical Differential Revision: https://phabricator.services.mozilla.com/D84281
c9909687431d447481c0712edd068ba2cda21eac: Bug 1655900 - Fix crash by using Software WebRender on Windows r=nical
sotaro <sotaro.ikeda.g@gmail.com> - Wed, 29 Jul 2020 06:59:52 +0000 - rev 607069
Push 13553 by ffxbld-merge at Mon, 24 Aug 2020 12:51:36 +0000
Bug 1655900 - Fix crash by using Software WebRender on Windows r=nical This is a short term fix just for addressing a crash. Differential Revision: https://phabricator.services.mozilla.com/D85236
c05bf982e469e8d8f84f9de3fee38f2eeda70520: Bug 1653355 - Also use the output time for picking video frames in non-WebRender. r=nical
Markus Stange <mstange.moz@gmail.com> - Mon, 20 Jul 2020 20:12:24 +0000 - rev 607052
Push 13553 by ffxbld-merge at Mon, 24 Aug 2020 12:51:36 +0000
Bug 1653355 - Also use the output time for picking video frames in non-WebRender. r=nical Depends on D83830 Differential Revision: https://phabricator.services.mozilla.com/D84112
8de5ba3d1c6f795c4b0a7fb7ff6c6cf4587c40a3: Bug 1653355 - Pick video frames based on the vsync output time. r=nical
Markus Stange <mstange.moz@gmail.com> - Mon, 20 Jul 2020 20:12:24 +0000 - rev 607051
Push 13553 by ffxbld-merge at Mon, 24 Aug 2020 12:51:36 +0000
Bug 1653355 - Pick video frames based on the vsync output time. r=nical Differential Revision: https://phabricator.services.mozilla.com/D83830
e2420148af8e38b4dd6d0396e48abb21b7f205f1: Bug 1655395 - Remove MOZ_ALWAYS_TRUE from RenderDXGITextureHostOGL r=nical
sotaro <sotaro.ikeda.g@gmail.com> - Tue, 28 Jul 2020 07:21:26 +0000 - rev 606964
Push 13553 by ffxbld-merge at Mon, 24 Aug 2020 12:51:36 +0000
Bug 1655395 - Remove MOZ_ALWAYS_TRUE from RenderDXGITextureHostOGL r=nical MOZ_ALWAYS_TRUE causes process abort on failure. we do not want the process abort with false. The failure could happen when context is lost. It is not necessary to handle the context lost in RenderDXGITextureHostOGL. It is already handled by RendererOGL. Differential Revision: https://phabricator.services.mozilla.com/D85116
9fd576580b720de4920c3f91c4269d3e2ce8110e: Bug 1653612 - Enable WebRender on beta for Linux users on X11 and with recent Intel/AMD drivers. r=nical
Andrew Osmond <aosmond@mozilla.com> - Thu, 23 Jul 2020 11:56:21 +0000 - rev 606135
Push 13434 by ffxbld-merge at Mon, 27 Jul 2020 16:59:11 +0000
Bug 1653612 - Enable WebRender on beta for Linux users on X11 and with recent Intel/AMD drivers. r=nical Differential Revision: https://phabricator.services.mozilla.com/D83973
5df699bb72b1c9f9a18094e8c2e1df42bfd7e39b: Bug 1653443 - Disable the GPU process on Linux even with hardware compositing. r=nical
Andrew Osmond <aosmond@mozilla.com> - Mon, 20 Jul 2020 19:34:40 +0000 - rev 606131
Push 13434 by ffxbld-merge at Mon, 27 Jul 2020 16:59:11 +0000
Bug 1653443 - Disable the GPU process on Linux even with hardware compositing. r=nical This effectively reverts bug 1549965 and disables the GPU process on Linux. We would only turn it on with OpenGL and WebRender compositing, which was for half of nightly users, and 1-2% of release users. See bug 1653444 for a list of bugs blocking re-enabling the GPU process on Linux. Differential Revision: https://phabricator.services.mozilla.com/D83871
fe7075f48cf031d5686b3268a0e738581721b386: Bug 1650748 - Prevent DMABUF usage with GLX. r=nical
Andrew Osmond <aosmond@mozilla.com> - Wed, 22 Jul 2020 18:58:11 +0000 - rev 606078
Push 13434 by ffxbld-merge at Mon, 27 Jul 2020 16:59:11 +0000
Bug 1650748 - Prevent DMABUF usage with GLX. r=nical Differential Revision: https://phabricator.services.mozilla.com/D84256
72f4a4d07192ef6dc64f8d3a8fdfe6124db14ae7: Bug 1654442 - Add primitives to picture cache slices earlier during scene building r=nical
Glenn Watson <git@intuitionlibrary.com> - Wed, 22 Jul 2020 20:51:52 +0000 - rev 606076
Push 13434 by ffxbld-merge at Mon, 27 Jul 2020 16:59:11 +0000
Bug 1654442 - Add primitives to picture cache slices earlier during scene building r=nical Previously, scene building added all primitives to the picture tree, and then sliced the top level picture up into picture cache slices as a post-process. Now, primitives are added to picture cache slices as the main picture tree is built. In the rare case of ending up with too many picture cache slices, they are combined into a single picture cache. This means that the common case (the scene has a reasonable number of slices) is faster, since there is no need to split up an array of primitives into multiple slices. This is an optimization to scene building time, for the above reason as well as avoiding another picture tree traversal. However, the primary benefit is that we can know much earlier what the shared_clips are that make up each picture cache slice. Follow up commits will take advantage of this to remove much of the clip-chain related work that is currently done for every frame build. Differential Revision: https://phabricator.services.mozilla.com/D84461
dc840b9b8b1b1f6223167b9d870f4a15e707d8b4: Bug 1654040 - Add an ImageComposite::SetImages marker that records the supplied frameIDs. r=nical
Markus Stange <mstange.moz@gmail.com> - Tue, 21 Jul 2020 07:46:45 +0000 - rev 605820
Push 13434 by ffxbld-merge at Mon, 27 Jul 2020 16:59:11 +0000
Bug 1654040 - Add an ImageComposite::SetImages marker that records the supplied frameIDs. r=nical Depends on D84212 Differential Revision: https://phabricator.services.mozilla.com/D84213
73e95de6b6fc5af07e56fcf4fad837ad0c7f2d14: Bug 1654040 - Add the number of remaining images in mImages to the UpdateCompositedFrame compositor marker. r=nical
Markus Stange <mstange.moz@gmail.com> - Tue, 21 Jul 2020 07:45:26 +0000 - rev 605819
Push 13434 by ffxbld-merge at Mon, 27 Jul 2020 16:59:11 +0000
Bug 1654040 - Add the number of remaining images in mImages to the UpdateCompositedFrame compositor marker. r=nical Differential Revision: https://phabricator.services.mozilla.com/D84212