searching for reviewer(kvark)
a8385068f5dda365a5ccb1def57a60abbf378764: Bug 1657791 - Remove GPU cache usage from clip mask instances. r=kvark,jnicol
Glenn Watson <git@intuitionlibrary.com> - Mon, 10 Aug 2020 20:58:25 +0000 - rev 544187
Push 123875 by gwatson@mozilla.com at Mon, 10 Aug 2020 21:58:31 +0000
Bug 1657791 - Remove GPU cache usage from clip mask instances. r=kvark,jnicol The patch removes use of the GPU cache when rendering clip mask instances. Instead, each clip mask type now has a specific vertex format and passes the information for the clip mask via vertex attributes. As part of future clip-chain optimization work, the `ClipNode` type will be removed entirely (instead, clip chains will be optimized during scene building into a clip set per primitive). Removing GPU cache usage here simplifies some of that work, and using GPU cache handles here provides no major benefit over vertex attributes. Differential Revision: https://phabricator.services.mozilla.com/D86289
3522dfed46ee3d059bf4c7e0eb4cde26388e0f94: Bug 1657690 - Fix an edge case backface visibility regression. r=kvark
Glenn Watson <git@intuitionlibrary.com> - Mon, 10 Aug 2020 18:19:22 +0000 - rev 544173
Push 123864 by gwatson@mozilla.com at Mon, 10 Aug 2020 20:34:32 +0000
Bug 1657690 - Fix an edge case backface visibility regression. r=kvark Ensure the current ancestor spatial node for backface visibility calculations is tracked, even when an otherwise redundant stacking context is removed. The code handling flattened stacking contexts is overcomplicated, due to limitations in the current public API. For now, this seems like a reasonable fix, although long term we should adapt the public API so that the internals are not so complex (specifically, the current stacking context API serves many related purposes, and should be split up into more explicit APIs for defining a 3d context, filter list etc). Differential Revision: https://phabricator.services.mozilla.com/D86499
9b153212cc512b10207a7388d537d5ef98d73447: Bug 1558374 - Avoid using scissored glClear() on Mali-Gxx. r=kvark,geckoview-reviewers,snorp
Jamie Nicol <jnicol@mozilla.com> - Wed, 05 Aug 2020 18:50:12 +0000 - rev 543476
Push 123477 by jnicol@mozilla.com at Wed, 05 Aug 2020 19:27:37 +0000
Bug 1558374 - Avoid using scissored glClear() on Mali-Gxx. r=kvark,geckoview-reviewers,snorp On Mali-G71 and G72 we see artifacts when scrolling around pages, in the form of black squares or bits of content appearing in the wrong location. This appears to be due to a driver bug when calling glClear() to clear a picture cache tile texture with a scissor rect set. We encountered a similar issue on some Intel hardware in bug 1638672, and worked around it by using a custom shader to clear the texture rather than glClear. This change applies this work around to Mali-Gxx devices too. Differential Revision: https://phabricator.services.mozilla.com/D85867
c5189b274b9146b71db8a50b803d69455c8c9b66: Bug 1656236 - Update to euclid 0.22. r=kvark
Nicolas Silva <nsilva@mozilla.com> - Wed, 05 Aug 2020 14:43:44 +0000 - rev 543411
Push 123443 by nsilva@mozilla.com at Wed, 05 Aug 2020 14:48:17 +0000
Bug 1656236 - Update to euclid 0.22. r=kvark Differential Revision: https://phabricator.services.mozilla.com/D85549
9464c1dcb0c95383344ed976f49861965ead2687: Bug 1656236 - Update to euclid 0.22. r=kvark
Nicolas Silva <nsilva@mozilla.com> - Wed, 05 Aug 2020 08:35:29 +0000 - rev 543363
Push 123411 by nsilva@mozilla.com at Wed, 05 Aug 2020 08:42:32 +0000
Bug 1656236 - Update to euclid 0.22. r=kvark Differential Revision: https://phabricator.services.mozilla.com/D85549
0307f6fccc989636738cf72d87819260ebbd9887: Bug 1623792 - Add ClipSet to PrimitiveInstance. r=kvark,nical
Glenn Watson <git@intuitionlibrary.com> - Tue, 04 Aug 2020 21:05:12 +0000 - rev 543283
Push 123368 by gwatson@mozilla.com at Tue, 04 Aug 2020 21:07:44 +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
d79a45fa9d678e243867afa384516f79556451d9: Bug 1656071 - Record profiler stats into captures to assist with debugging talos regressions. r=kvark
Kartikaya Gupta <kgupta@mozilla.com> - Fri, 31 Jul 2020 18:53:56 +0000 - rev 542949
Push 123131 by kgupta@mozilla.com at Fri, 31 Jul 2020 18:59:41 +0000
Bug 1656071 - Record profiler stats into captures to assist with debugging talos regressions. r=kvark This adds a profiler-stats.txt file to captures that dumps the profiler stats, if those are being recorded. They get recorded if the profiler is visible, or if the (newly added) PROFILER_CAPTURE debug option is enabled. Differential Revision: https://phabricator.services.mozilla.com/D85592
0d50962a0bb9410b1351dc7bf1453618391eae30: Bug 1656071 - Record profiler stats into captures to assist with debugging talos regressions. r=kvark
Kartikaya Gupta <kgupta@mozilla.com> - Fri, 31 Jul 2020 16:48:34 +0000 - rev 542920
Push 123112 by kgupta@mozilla.com at Fri, 31 Jul 2020 16:57:26 +0000
Bug 1656071 - Record profiler stats into captures to assist with debugging talos regressions. r=kvark This adds a profiler-stats.txt file to captures that dumps the profiler stats, if those are being recorded. They get recorded if the profiler is visible, or if the (newly added) PROFILER_CAPTURE debug option is enabled. Differential Revision: https://phabricator.services.mozilla.com/D85592
6dcd35ac33c3a3ef7cf12aea58307918bca5610a: Bug 1623792 - Only push pass-through picture clips onto clip stack. r=kvark
Glenn Watson <git@intuitionlibrary.com> - Thu, 23 Jul 2020 23:48:10 +0000 - rev 542409
Push 122844 by gwatson@mozilla.com at Tue, 28 Jul 2020 21:43:36 +0000
Bug 1623792 - Only push pass-through picture clips onto clip stack. r=kvark If the picture isn't a pass-through, any clips attached to it are handled when compositing that picture into its parent. Thus, we don't need to push those clips onto the clip stack for child primitives. This is probably not a noticeable performance win, but it's worth doing to ensure it doesn't regress anything. A follow up commit will remove the push_clip in this path completely, which will unblock some other clip-chain optimization work. Differential Revision: https://phabricator.services.mozilla.com/D84763
3d57a18caafb08e17ae093d2c2f94faeacc23230: Bug 1654699. Update core-foundation/core-graphics. r=kvark,keeler,jcj,chunmin
Jeff Muizelaar <jmuizelaar@mozilla.com> - Fri, 24 Jul 2020 22:35:25 +0000 - rev 542130
Push 122658 by jmuizelaar@mozilla.com at Fri, 24 Jul 2020 22:53:21 +0000
Bug 1654699. Update core-foundation/core-graphics. r=kvark,keeler,jcj,chunmin This includes updates to authenticator, cubeb-coreaudio, metal, gfx-backend-vulkan, gfx-backend-metal, freetype libloading is duplicated because of ash Differential Revision: https://phabricator.services.mozilla.com/D84688
9702b4a4f53cebd57091f33837c596706e71f069: Bug 1654699. Update core-foundation/core-graphics. r=kvark,keeler,jcj,chunmin
Jeff Muizelaar <jmuizelaar@mozilla.com> - Fri, 24 Jul 2020 15:59:54 +0000 - rev 542071
Push 122612 by jmuizelaar@mozilla.com at Fri, 24 Jul 2020 16:21:45 +0000
Bug 1654699. Update core-foundation/core-graphics. r=kvark,keeler,jcj,chunmin This includes updates to authenticator, cubeb-coreaudio, metal, gfx-backend-vulkan, gfx-backend-metal, freetype libloading is duplicated because of ash Differential Revision: https://phabricator.services.mozilla.com/D84688
45fc4a780b2b4a9e047eceba73b39b988f719c58: Bug 1654699. Update core-foundation/core-graphics. r=kvark,keeler,chunmin
Jeff Muizelaar <jmuizelaar@mozilla.com> - Thu, 23 Jul 2020 17:01:14 +0000 - rev 541797
Push 122501 by jmuizelaar@mozilla.com at Thu, 23 Jul 2020 17:03:15 +0000
Bug 1654699. Update core-foundation/core-graphics. r=kvark,keeler,chunmin This includes updates to authenticator, cubeb-coreaudio, metal, gfx-backend-vulkan, gfx-backend-metal, freetype libloading is duplicated because of ash Differential Revision: https://phabricator.services.mozilla.com/D84688
be4b0f6e68c9d46ecb15aac5ad87a3a7b8731e57: Bug 1653011 - Simplify and make WeakPtr<Derived> usable and compact. r=froydnj,sg,geckoview-reviewers,jgilbert,kvark,snorp
Emilio Cobos Álvarez <emilio@crisal.io> - Thu, 23 Jul 2020 14:51:46 +0000 - rev 541781
Push 122487 by ealvarez@mozilla.com at Thu, 23 Jul 2020 14:52:42 +0000
Bug 1653011 - Simplify and make WeakPtr<Derived> usable and compact. r=froydnj,sg,geckoview-reviewers,jgilbert,kvark,snorp Having two classes in the inheritance chain inherit from SupportsWeakPtr now won't compile, but you can use WeakPtr<Derived> when any base class inherits from SupportsWeakPtr. Differential Revision: https://phabricator.services.mozilla.com/D83674
a568f7d72e52d6751003be8559342af0fb928df7: Bug 1654373 - Save captures to MOZ_UPLOAD_PATH if that is set. r=kvark
Kartikaya Gupta <kgupta@mozilla.com> - Wed, 22 Jul 2020 15:52:04 +0000 - rev 541660
Push 122395 by kgupta@mozilla.com at Wed, 22 Jul 2020 18:58:50 +0000
Bug 1654373 - Save captures to MOZ_UPLOAD_PATH if that is set. r=kvark This makes it possible to download the capture from the artifacts of the CI job. It would be nicer if the capture were written to a tarball/zipfile, but having to download the files individually is better than nothing. Depends on D84422 Differential Revision: https://phabricator.services.mozilla.com/D84423
d72fa7f1c347320deb74b2aefd6342f53c615b1b: Bug 1653649 - Add window size sanity check at the API level. r=kvark
Nicolas Silva <nsilva@mozilla.com> - Tue, 21 Jul 2020 04:12:57 +0000 - rev 541403
Push 122219 by nsilva@mozilla.com at Tue, 21 Jul 2020 06:49:11 +0000
Bug 1653649 - Add window size sanity check at the API level. r=kvark Better to catch these in the API than later on some other thread. Differential Revision: https://phabricator.services.mozilla.com/D84192
5698ddfe5e51cc48683c9964051f2d1a457c9214: Bug 1649250 - Add experimental features that were introduced in Firefox Nightly 70 and higher. r=jbauman,kvark,jwatt,mayhemer,emilio,masayuki,baku,gl,preferences-reviewers,jdescottes,Pike
Jared Wein <jwein@mozilla.com> - Mon, 20 Jul 2020 10:05:58 +0000 - rev 541219
Push 122117 by gijskruitbosch@gmail.com at Mon, 20 Jul 2020 10:10:53 +0000
Bug 1649250 - Add experimental features that were introduced in Firefox Nightly 70 and higher. r=jbauman,kvark,jwatt,mayhemer,emilio,masayuki,baku,gl,preferences-reviewers,jdescottes,Pike Differential Revision: https://phabricator.services.mozilla.com/D81623
48fd0d4340232b8e176653226fd69b3ce8dc8fb3: Bug 1649250 - Add experimental features that were introduced in Firefox Nightly 70 and higher. r=jbauman,kvark,jwatt,mayhemer,emilio,masayuki,baku,gl,preferences-reviewers,jdescottes,Pike
Jared Wein <jwein@mozilla.com> - Sun, 19 Jul 2020 17:10:46 +0000 - rev 541168
Push 122085 by gijskruitbosch@gmail.com at Sun, 19 Jul 2020 17:16:33 +0000
Bug 1649250 - Add experimental features that were introduced in Firefox Nightly 70 and higher. r=jbauman,kvark,jwatt,mayhemer,emilio,masayuki,baku,gl,preferences-reviewers,jdescottes,Pike Differential Revision: https://phabricator.services.mozilla.com/D81623
723425f86866db4890fb503b5707f4cf879a680a: Bug 1650990 - Use Euclid 0.20.14. r=kvark
Nicolas Silva <nsilva@mozilla.com> - Thu, 16 Jul 2020 13:24:19 +0000 - rev 540753
Push 121892 by nsilva@mozilla.com at Thu, 16 Jul 2020 15:51:01 +0000
Bug 1650990 - Use Euclid 0.20.14. r=kvark It contains a fix for some of the rect operations interacting poorly with NaNs. Differential Revision: https://phabricator.services.mozilla.com/D83774
b850773b54e129888b8fb2f1e3bc68f528aeccbf: Bug 1651889. Update to gleam 0.12.1. r=kvark
Jeff Muizelaar <jmuizelaar@mozilla.com> - Sat, 11 Jul 2020 02:21:13 +0000 - rev 540040
Push 121442 by jmuizelaar@mozilla.com at Sat, 11 Jul 2020 02:22:00 +0000
Bug 1651889. Update to gleam 0.12.1. r=kvark This should fix a crash caused by an unexpected pixel type. Differential Revision: https://phabricator.services.mozilla.com/D83167
1a8c020ebbda30108e22c89da8973f40f8971ae1: Bug 1651889. Update to gleam 0.12.1. r=kvark
Jeff Muizelaar <jmuizelaar@mozilla.com> - Fri, 10 Jul 2020 20:52:49 +0000 - rev 539995
Push 121415 by jmuizelaar@mozilla.com at Fri, 10 Jul 2020 20:55:48 +0000
Bug 1651889. Update to gleam 0.12.1. r=kvark This should fix a crash caused by an unexpected pixel type. Differential Revision: https://phabricator.services.mozilla.com/D83167
a8b05894377919237c20e33dfe61bd9b103d500f: Bug 1650475. Enable GPU switching on Mac. r=kvark
Jeff Muizelaar <jmuizelaar@mozilla.com> - Wed, 08 Jul 2020 01:56:55 +0000 - rev 539265
Push 121021 by jmuizelaar@mozilla.com at Wed, 08 Jul 2020 03:38:25 +0000
Bug 1650475. Enable GPU switching on Mac. r=kvark The goal here is to make it so that we don't special case the device on Mac so that we can switch GPUs without needing to reset any state. There a couple of parts to this: 1. Disable texture storage so that we can use BGRA textures and don't need swizzling. 2. Use the recommended GL_UNSIGNED_INT_8_8_8_8_REV for BGRA on desktop GL. 3. Disable swizzling. 4. Always do the PBO workaround. Differential Revision: https://phabricator.services.mozilla.com/D82223
a16036b4b36cfa4dc083fa5a6fbc3db0adbc978f: Bug 1642629 - Reserve GpuBlockData vector before pushing in a loop. r=kvark
Nicolas Silva <nsilva@mozilla.com> - Wed, 24 Jun 2020 12:49:13 +0000 - rev 537129
Push 119822 by nsilva@mozilla.com at Wed, 24 Jun 2020 13:01:38 +0000
Bug 1642629 - Reserve GpuBlockData vector before pushing in a loop. r=kvark Differential Revision: https://phabricator.services.mozilla.com/D80203
1e531a6c2590fc38bc1c0393f036b393e26f2118: Bug 1642629 - Preallocate CompositeStateDescriptor vectors. r=kvark
Nicolas Silva <nsilva@mozilla.com> - Wed, 24 Jun 2020 12:48:22 +0000 - rev 537128
Push 119822 by nsilva@mozilla.com at Wed, 24 Jun 2020 13:01:38 +0000
Bug 1642629 - Preallocate CompositeStateDescriptor vectors. r=kvark Vector reallocations in CompositeState::push_surface are taking about 2% of total frame building time before this patch. There was an effort at preallocating some with constant values but I suspect these constants haven't been updated along with picture cachign heuristics. Differential Revision: https://phabricator.services.mozilla.com/D80195
ac1dec27b771d02de0d729b6c458924fcddf28ae: Bug 1642629 - Preallocate the primitive headers vector. r=kvark
Nicolas Silva <nsilva@mozilla.com> - Wed, 24 Jun 2020 12:42:26 +0000 - rev 537127
Push 119822 by nsilva@mozilla.com at Wed, 24 Jun 2020 13:01:38 +0000
Bug 1642629 - Preallocate the primitive headers vector. r=kvark This patch a simple utility to help with pre-allocating vectors that we can't recycle and use it with the primitive headers. Differential Revision: https://phabricator.services.mozilla.com/D80194
f26158a3994c694e89d8bdde15beb9cbe5aafa63: Bug 1642629 - Recycle FrameVisibilityState's clip_chain_stack and surface_stack. r=kvark
Nicolas Silva <nsilva@mozilla.com> - Wed, 24 Jun 2020 12:42:03 +0000 - rev 537126
Push 119822 by nsilva@mozilla.com at Wed, 24 Jun 2020 13:01:38 +0000
Bug 1642629 - Recycle FrameVisibilityState's clip_chain_stack and surface_stack. r=kvark Differential Revision: https://phabricator.services.mozilla.com/D80193
7cbc9b5f00f1b83e25c19be1d76e6a404415180d: Bug 1642629 - Reserve items in SegmentBuilder before simple loops. r=kvark
Nicolas Silva <nsilva@mozilla.com> - Wed, 24 Jun 2020 12:41:50 +0000 - rev 537125
Push 119822 by nsilva@mozilla.com at Wed, 24 Jun 2020 13:01:38 +0000
Bug 1642629 - Reserve items in SegmentBuilder before simple loops. r=kvark Differential Revision: https://phabricator.services.mozilla.com/D80192
d7ddc0cdffa285f9e6b19239651c214ae8cb68e9: Bug 1642629 - Recycle shared clips allocation in picture.rs. r=kvark
Nicolas Silva <nsilva@mozilla.com> - Wed, 24 Jun 2020 12:41:37 +0000 - rev 537124
Push 119822 by nsilva@mozilla.com at Wed, 24 Jun 2020 13:01:38 +0000
Bug 1642629 - Recycle shared clips allocation in picture.rs. r=kvark Differential Revision: https://phabricator.services.mozilla.com/D80178
325a298e5e119ecb71223516e6c9b538c6057c9c: Bug 1642629 - Recycle FrameVisibilityState's clip_chain_stack and surface_stack. r=kvark
Nicolas Silva <nsilva@mozilla.com> - Mon, 22 Jun 2020 08:51:10 +0000 - rev 536540
Push 119515 by nsilva@mozilla.com at Mon, 22 Jun 2020 08:58:43 +0000
Bug 1642629 - Recycle FrameVisibilityState's clip_chain_stack and surface_stack. r=kvark Differential Revision: https://phabricator.services.mozilla.com/D80193
2195069a75c9c105c2d2ae33ed967994bc0cd4bd: Bug 1642629 - Reserve items in SegmentBuilder before simple loops. r=kvark
Nicolas Silva <nsilva@mozilla.com> - Mon, 22 Jun 2020 08:50:50 +0000 - rev 536539
Push 119515 by nsilva@mozilla.com at Mon, 22 Jun 2020 08:58:43 +0000
Bug 1642629 - Reserve items in SegmentBuilder before simple loops. r=kvark Differential Revision: https://phabricator.services.mozilla.com/D80192
a076f17ed2da9fbb6341c3f143ab9236d5a5b60a: Bug 1642629 - Recycle shared clips allocation in picture.rs. r=kvark
Nicolas Silva <nsilva@mozilla.com> - Mon, 22 Jun 2020 08:50:38 +0000 - rev 536538
Push 119515 by nsilva@mozilla.com at Mon, 22 Jun 2020 08:58:43 +0000
Bug 1642629 - Recycle shared clips allocation in picture.rs. r=kvark Differential Revision: https://phabricator.services.mozilla.com/D80178
ef8485a16d099e24f4832178664c5a93a28396ec: Bug 1646741 - Update gleam to 0.12. r=kvark
Jeff Muizelaar <jmuizelaar@mozilla.com> - Thu, 18 Jun 2020 18:11:13 +0000 - rev 536379
Push 119421 by jmuizelaar@mozilla.com at Thu, 18 Jun 2020 18:18:43 +0000
Bug 1646741 - Update gleam to 0.12. r=kvark For stride calculation and SSBOs Differential Revision: https://phabricator.services.mozilla.com/D80191
9367aa4b97e2fdc4673d9a147b2dd99929e244b6: Bug 1646741 - Update gleam to 0.12. r=kvark
Jeff Muizelaar <jmuizelaar@mozilla.com> - Thu, 18 Jun 2020 15:02:08 +0000 - rev 536349
Push 119411 by jmuizelaar@mozilla.com at Thu, 18 Jun 2020 17:34:17 +0000
Bug 1646741 - Update gleam to 0.12. r=kvark For stride calculation and SSBOs Differential Revision: https://phabricator.services.mozilla.com/D80191
6f725707d4e3d142352f5aef76ad71c982da3017: Bug 1644625 - Populate Features.toml with an intial set of Experimental Features. r=Gijs,heycam,kvark,jbauman
Jared Wein <jwein@mozilla.com> - Thu, 18 Jun 2020 01:19:52 +0000 - rev 536260
Push 119333 by jwein@mozilla.com at Thu, 18 Jun 2020 03:37:47 +0000
Bug 1644625 - Populate Features.toml with an intial set of Experimental Features. r=Gijs,heycam,kvark,jbauman Differential Revision: https://phabricator.services.mozilla.com/D79026
64a2fe7408b917c1c22589020ed1378a8c1ce45a: Bug 1646279 - Remove primitive opacity collapse support. r=Bert,kvark
Glenn Watson <git@intuitionlibrary.com> - Thu, 18 Jun 2020 00:01:44 +0000 - rev 536253
Push 119328 by gwatson@mozilla.com at Thu, 18 Jun 2020 01:24:52 +0000
Bug 1646279 - Remove primitive opacity collapse support. r=Bert,kvark The code to support collapsing a picture with a single primitive and an opacity filter into a primitive + opacity binding is no longer an important optimization, due to picture caching. Removing this old optimization also reduces complexity during scene building, and slightly simplifies batching and picture cache dependency tracking. Differential Revision: https://phabricator.services.mozilla.com/D79975
b8ad0fa3519db2b169c38312f78244a89d583960: Bug 1646162 - gfx/wgpu/player/ can be removed from the clippy exclude list r=kvark
Sylvestre Ledru <sledru@mozilla.com> - Tue, 16 Jun 2020 21:50:11 +0000 - rev 535977
Push 119188 by sledru@mozilla.com at Tue, 16 Jun 2020 23:01:27 +0000
Bug 1646162 - gfx/wgpu/player/ can be removed from the clippy exclude list r=kvark Differential Revision: https://phabricator.services.mozilla.com/D79887
149ca53d3549df2e8e6ad1a3b8985d549095b5f3: Bug 1642629 - Remove the lookback limit for alpha batches. r=kvark
Nicolas Silva <nsilva@mozilla.com> - Tue, 16 Jun 2020 14:44:24 +0000 - rev 535975
Push 119186 by nsilva@mozilla.com at Tue, 16 Jun 2020 22:58:57 +0000
Bug 1642629 - Remove the lookback limit for alpha batches. r=kvark An alternative patch to take only if we don't land https://phabricator.services.mozilla.com/D79545 The main observations here are: - In the vast majority of times we find a compatible bacth or intersect an incompatible one within 3 iterations when looking for batch candidates. - In addition, most of the time we don't need to iterate per-item rects thanks to a fast path kleveraging per-batch bounding rects, making it reasonably cheap to iterate over more batches. This gives us room to allow ourselves to visit a lot more batches without a large impact on CPU time (under the assumption that removing a handful of draw calls will more than make up for the extra iterations). Depends on D79479 Differential Revision: https://phabricator.services.mozilla.com/D79794
853d601fe2e18ff4a60a10c03255a9907a2bc56b: Bug 1642629 - Only track per-item rects in batches if a per-batch approximation isn't good enough. r=kvark
Nicolas Silva <nsilva@mozilla.com> - Tue, 16 Jun 2020 09:30:45 +0000 - rev 535872
Push 119117 by nsilva@mozilla.com at Tue, 16 Jun 2020 13:21:41 +0000
Bug 1642629 - Only track per-item rects in batches if a per-batch approximation isn't good enough. r=kvark Tested this on a few pages and it lets us avoid allocating per-item rects for roughly a quarter to a third of the batches. For batches that end up allocating per item rects we get to allocate fewer of them. It also further reduces the amount of times we need to test all item rects against intersections. Differential Revision: https://phabricator.services.mozilla.com/D79479
d90ad820b1f09139c5bc20a7f690aeb3df104173: Bug 1642629 - Avoid iterating over all batch item rects in some cases. r=kvark
Nicolas Silva <nsilva@mozilla.com> - Mon, 15 Jun 2020 13:28:13 +0000 - rev 535679
Push 119011 by nsilva@mozilla.com at Mon, 15 Jun 2020 13:34:08 +0000
Bug 1642629 - Avoid iterating over all batch item rects in some cases. r=kvark Differential Revision: https://phabricator.services.mozilla.com/D79480
da69b8391ceb0f7bd95ae543b98a41d39eab6881: Bug 1628657 - Make canvas use computed reference frame transforms. r=kvark
Andrew Osmond <aosmond@mozilla.com> - Thu, 11 Jun 2020 20:46:05 +0000 - rev 535459
Push 118865 by aosmond@mozilla.com at Fri, 12 Jun 2020 12:57:47 +0000
Bug 1628657 - Make canvas use computed reference frame transforms. r=kvark When a transform depends on the layout size of an element, one can see visual distortions caused by the difference between the unsnapped size used in the transform, and the snapped size calculated during scene building. Ideally we could compute the transform after we snap, rather than before. This patch adds support for a computed reference frame which takes parameters to calculate the ideal transform dynamically. In a future patch, we should make videos take advantage of this same mechanism to avoid similar problems. This requires support for mirroring and rotations. Differential Revision: https://phabricator.services.mozilla.com/D77956
01ccbe217e03b2942a35a07a5cadeb02213bc73d: Bug 1641751 - Part 4 - Introduce an LRU eviction policy for the texture cache r=Bert,kvark
Glenn Watson <git@intuitionlibrary.com> - Tue, 09 Jun 2020 20:43:44 +0000 - rev 534796
Push 118534 by gwatson@mozilla.com at Tue, 09 Jun 2020 23:00:20 +0000
Bug 1641751 - Part 4 - Introduce an LRU eviction policy for the texture cache r=Bert,kvark Previously, when we decided to evict elements from the texture cache, a very simple scheme was used. All elements would be scanned, and any element that was older than a given threshold would be freed. This is not ideal for a number of reasons: - When an eviction takes place, a large number of elements must be scanned. - When we do evict elements, we often evict a large number of elements in a single frame, causing CPU spikes. - We often evict more items than necessary, resulting in redundant uploads of the same elements again on subsequent frames. This patch introduces a new LRU cache collection, which is used to manage the lifetime of most texture cache entries [1]. With this change, we can now: - Efficiently evict items from oldest to newest, without scanning the entire list. - Efficiently evict only a small number of items per frame, reducing the chance of CPU frame spikes. - Evict only enough elements to reduce memory under a specific threshold, which reduces the number of redundant evictions / re-uploads required. [1] Picture cache tiles and manual eviction elements are stored inside the new cache for efficiency, but the lifetime of them is managed separately by the texture cache. Differential Revision: https://phabricator.services.mozilla.com/D78216
4e89164de2d6bbefbbabcce580658a69d12b149b: Bug 1643706 - Make spatial_tree.print() work on Android too. r=kvark
Kartikaya Gupta <kgupta@mozilla.com> - Fri, 05 Jun 2020 17:33:07 +0000 - rev 534227
Push 118225 by kgupta@mozilla.com at Fri, 05 Jun 2020 20:47:34 +0000
Bug 1643706 - Make spatial_tree.print() work on Android too. r=kvark Instead of using the default TreePrinter implementation which sends output to stdout, collect it into a Vec<u8> and use the debug! macro to log it, which sends it to a more useful destination (logcat) on Android. Depends on D78536 Differential Revision: https://phabricator.services.mozilla.com/D78537
41191094ff58232189fa23459130a070def08045: Bug 1641751 - Part 3 - Refactor some texture cache code for future eviction changes. r=Bert,kvark
Glenn Watson <git@intuitionlibrary.com> - Fri, 05 Jun 2020 00:53:17 +0000 - rev 534071
Push 118122 by gwatson@mozilla.com at Fri, 05 Jun 2020 01:39:19 +0000
Bug 1641751 - Part 3 - Refactor some texture cache code for future eviction changes. r=Bert,kvark * Maintain a running total of bytes allocated in both standalone and shared cache regions. This is used as a threshold to know when to force a mid-frame eviction. Previously, as soon as the currently allocated set of shared textures were full, we'd force an eviction. This means that in typical use cases, we were forcing an eviction as soon as the texture cache is > 16 MB, which is inefficient. * Separate out picture cache eviction from the normal cache eviction path. This will be important in the next patch which will change the eviction algorithm for all shared / standalone entries. * Remove Eviction::Eager as a policy option for shared and standalone textures. As part of this, switch render task cache entries to use Eviction::Auto. This is a better option anyway, there is no real benefit to evicting render tasks as soon as possible - they should be expired based on usage, just as for normal cache entries. Differential Revision: https://phabricator.services.mozilla.com/D77983
a900282391e15be8a8f9ed9782a550ff6be11cc7: Bug 1641751 - Part 3 - Refactor some texture cache code for future eviction changes. r=kvark
Glenn Watson <git@intuitionlibrary.com> - Thu, 04 Jun 2020 03:17:57 +0000 - rev 533850
Push 118001 by gwatson@mozilla.com at Thu, 04 Jun 2020 03:19:16 +0000
Bug 1641751 - Part 3 - Refactor some texture cache code for future eviction changes. r=kvark * Maintain a running total of bytes allocated in both standalone and shared cache regions. This is used as a threshold to know when to force a mid-frame eviction. Previously, as soon as the currently allocated set of shared textures were full, we'd force an eviction. This means that in typical use cases, we were forcing an eviction as soon as the texture cache is > 16 MB, which is inefficient. * Separate out picture cache eviction from the normal cache eviction path. This will be important in the next patch which will change the eviction algorithm for all shared / standalone entries. * Remove Eviction::Eager as a policy option for shared and standalone textures. As part of this, switch render task cache entries to use Eviction::Auto. This is a better option anyway, there is no real benefit to evicting render tasks as soon as possible - they should be expired based on usage, just as for normal cache entries. Differential Revision: https://phabricator.services.mozilla.com/D77983
5cc77ea38625158138620dea6d8ba0bfa6ed64b7: Bug 1641751 - Part 1 - Remove some texture cache eviction paths r=Bert,kvark
Glenn Watson <git@intuitionlibrary.com> - Sun, 31 May 2020 21:07:44 +0000 - rev 533398
Push 117714 by gwatson@mozilla.com at Mon, 01 Jun 2020 21:30:29 +0000
Bug 1641751 - Part 1 - Remove some texture cache eviction paths r=Bert,kvark This patch removes two of the existing paths for evicting textures. One is no longer useful, and the other is over-zealous, and causes frame stalls. When the shared texture cache made use of variable layer counts, the `maybe_reclaim_shared_memory` method would look at the space in free layers, and if large enough, would clear the entire cache and rely on it being rebuilt implicitly as new requests occur. However, since we no longer resize the number of slices, this doesn't serve a useful purpose (the texture cache already frees any empty texture cache units at the end of each frame). The other method applies a conservative, periodic GC that occurs if no other GCs have run for five seconds. However, this is a very aggressive eviction that often evicts most of the shared cache, and was being run whenever the size of the texture cache was > 16 MB. The effect of this is that if you pause scrolling for a few seconds, and then scroll again, most of the cache gets evicted. Instead, completely remove this concept, relying on empty texture cache pages being freed and memory pressure events, and general cache eviction during frames. Differential Revision: https://phabricator.services.mozilla.com/D77402
0719df9e7a26927c95c2030c45d1f07c92f7b76b: Bug 1541511 - Removed unused Image::sub_rect field. r=kvark
Daniel Lu <dlu@mozilla.com> - Thu, 14 May 2020 18:28:01 +0000 - rev 532509
Push 117194 by jmuizelaar@mozilla.com at Wed, 27 May 2020 14:08:24 +0000
Bug 1541511 - Removed unused Image::sub_rect field. r=kvark Differential Revision: https://phabricator.services.mozilla.com/D75109
a6b4c9b2af50602a273bdecca6f0944dd2c07c09: Bug 1637426 - Submit WR work more often than once per frame r=kvark
Bert Peers <bpeers@mozilla.com> - Fri, 15 May 2020 14:27:44 +0000 - rev 530361
Push 116128 by bpeers@mozilla.com at Fri, 15 May 2020 17:55:38 +0000
Bug 1637426 - Submit WR work more often than once per frame r=kvark Differential Revision: https://phabricator.services.mozilla.com/D75392
5b6a16bd94feb25ac39102798942b19650d5ec5a: Bug 1617369 - Reformat recent rust changes with rustfmt r=kvark DONTBUILD
Sylvestre Ledru <sledru@mozilla.com> - Thu, 14 May 2020 14:19:32 +0000 - rev 529889
Push 115966 by sledru@mozilla.com at Thu, 14 May 2020 14:20:09 +0000
Bug 1617369 - Reformat recent rust changes with rustfmt r=kvark DONTBUILD Differential Revision: https://phabricator.services.mozilla.com/D75254
55c506cc980116b11b7b61deccd844a3424639b4: Bug 1541511 - Removed unused Image::sub_rect field. r=kvark
Daniel Lu <dlu@mozilla.com> - Wed, 13 May 2020 22:16:55 +0000 - rev 529758
Push 115887 by dmalyshau@mozilla.com at Wed, 13 May 2020 23:25:56 +0000
Bug 1541511 - Removed unused Image::sub_rect field. r=kvark Differential Revision: https://phabricator.services.mozilla.com/D75109
ca7d50f9d8f7292ba05b2bf2afcf556704cb944b: Bug 1635142 - Update github-sync to use Authorization header instead of deprecated HTTP auth mechanism. r=kvark
Kartikaya Gupta <kgupta@mozilla.com> - Wed, 06 May 2020 16:09:40 +0000 - rev 528501
Push 115135 by kgupta@mozilla.com at Wed, 06 May 2020 18:18:41 +0000
Bug 1635142 - Update github-sync to use Authorization header instead of deprecated HTTP auth mechanism. r=kvark Depends on D74066 Differential Revision: https://phabricator.services.mozilla.com/D74067
066910bce3e5b280a930f90b9401697b1660d62b: Bug 1635809 - Use |file| instead of |modifies| in the hg revset query to catch file deletions. r=kvark
Kartikaya Gupta <kgupta@mozilla.com> - Wed, 06 May 2020 16:09:23 +0000 - rev 528500
Push 115135 by kgupta@mozilla.com at Wed, 06 May 2020 18:18:41 +0000
Bug 1635809 - Use |file| instead of |modifies| in the hg revset query to catch file deletions. r=kvark Closer look at the man pages shows that the file() query will catch any file changes, whereas the modifies() query will only capture files that were modified, which excludes strict deletions. Depends on D74065 Differential Revision: https://phabricator.services.mozilla.com/D74066