searching for reviewer(nical)
a77c322a5422ace5a0763f3beb45d93baa79536b: Bug 1485371 - Re-enable tiling for OpenBSD. r=nical
Ryan Hunt <rhunt@eqrion.net> - Wed, 22 Aug 2018 09:34:22 -0500 - rev 830829
Push 118857 by bmo:mtigley@mozilla.com at Thu, 23 Aug 2018 04:55:06 +0000
Bug 1485371 - Re-enable tiling for OpenBSD. r=nical
3ef0a331591001bf9bcf5b31ad7fa9b89749e690: Bug 1245400 - P5. Report frames dropped with WebRender. r=nical
Jean-Yves Avenard <jyavenard@mozilla.com> - Tue, 17 Jul 2018 01:12:35 +0200 - rev 830825
Push 118857 by bmo:mtigley@mozilla.com at Thu, 23 Aug 2018 04:55:06 +0000
Bug 1245400 - P5. Report frames dropped with WebRender. r=nical Differential Revision: https://phabricator.services.mozilla.com/D2182
cfd2152bd3311bffc820d52832079676db12e791: Bug 1245400 - P4. Remove no longer used class member. r=nical
Jean-Yves Avenard <jyavenard@mozilla.com> - Mon, 16 Jul 2018 23:25:12 +0200 - rev 830824
Push 118857 by bmo:mtigley@mozilla.com at Thu, 23 Aug 2018 04:55:06 +0000
Bug 1245400 - P4. Remove no longer used class member. r=nical Also speed up compositing videos as there's no longer need to check every single frames twice to determine if they were composited or not. Differential Revision: https://phabricator.services.mozilla.com/D2178
49ca44a69f9f74cec49a664fd25a4b69f952ff05: Bug 1245400 - P3. Report number of frames dropped by compositor back to VideoSink. r=nical
Jean-Yves Avenard <jyavenard@mozilla.com> - Mon, 16 Jul 2018 23:19:09 +0200 - rev 830823
Push 118857 by bmo:mtigley@mozilla.com at Thu, 23 Aug 2018 04:55:06 +0000
Bug 1245400 - P3. Report number of frames dropped by compositor back to VideoSink. r=nical We report the number of frames dropped by the compositor because they were too late through: ImageComposite -> ImageHost -> CompositableTransactionParent -> ImageBridgeParent -> IPDL -> ImageBridgeChild -> ImageContainerListener -> ImageContainer -> VideoSink Differential Revision: https://phabricator.services.mozilla.com/D2177
3e0995cbb3dfb2a87dbe00aed20be7c6b7685ccb: Bug 1245400 - P2. Keep track of frames that should have been painted but didn't. r=nical, r=mattwoodrow
Jean-Yves Avenard <jyavenard@mozilla.com> - Mon, 16 Jul 2018 14:52:41 +0200 - rev 830822
Push 118857 by bmo:mtigley@mozilla.com at Thu, 23 Aug 2018 04:55:06 +0000
Bug 1245400 - P2. Keep track of frames that should have been painted but didn't. r=nical, r=mattwoodrow We can't rely on the FrameID continuity to determine if a frame has been dropped due to timing or not. The reason being that the VideoSink will not send to the compositor frames it knows as being late already (causing a discontinuity in the frames IDs), and count them as being dropped. If we were to look at discontinuity on the compositor we would account for those frames twice. FramesID will also increase non-linearly if a frame isn't painted because it's not visible (either out of the visible tree or in a hidden tab). What we can measure however, is when a frame should have been painted but didn't because it was too late by looking at the value returned by ImageComposite::ChooseImageIndex() or when a new set of images is being received by the ImageComposite. Any images found in the earlier array but never returned must have been dropped due to timing. Looking at the index continuity greatly simplify the logic as we no longer need to worry if a video is hidden or not, or be part of a layer that is itself hidden as neither SetImages will be called then, nor ChooseImage For now, we only account for those frames dropped, and do not report them yet. Differential Revision: https://phabricator.services.mozilla.com/D2176
257fe22ca35fb323125b6a7058d8bda98d08dfcb: Bug 1245400 - P1. Make ImageComposite::mImages a private member. r=nical
Jean-Yves Avenard <jyavenard@mozilla.com> - Fri, 13 Jul 2018 12:42:18 +0200 - rev 830821
Push 118857 by bmo:mtigley@mozilla.com at Thu, 23 Aug 2018 04:55:06 +0000
Bug 1245400 - P1. Make ImageComposite::mImages a private member. r=nical We will use the characteristic of which TimedImage is returned to keep track on how many frames were dropped because they were too old. As such, we must make sure the retrieval of the current image is serialised. This allows to reduce duplicated code between WebRenderImageHost and ImageHost classes. Additionally, make RenderInfo::img member const as really, we never want to modify that one. A future change will enforce that RenderInfo.img never survives longer than the ChooseImage()'s caller to clarify the lifetime of the TimedImage. Differential Revision: https://phabricator.services.mozilla.com/D2175
cc2785ab879e48a01bf87c20aaebedbad0277574: Bug 1429298 - Part 6: Apply motion path transform matrix. r=nical
Boris Chiou <boris.chiou@gmail.com> - Wed, 22 Aug 2018 01:22:28 +0000 - rev 830740
Push 118854 by bmo:a.beingessner@gmail.com at Wed, 22 Aug 2018 20:13:35 +0000
Bug 1429298 - Part 6: Apply motion path transform matrix. r=nical We implement the layout part of offset-path. Now we don't have offset-distance, so use the default value, 0%, for it. Note: rename mCombinedTransform as mIndividualTransform, which only stores the combined individual transforms. We apply the individual transforms, motion path transform, and specified transform in ReadTransforms. (We have to follow the order, so we don't combine the specified transform in FinishStyle.) Depends on D2967 Differential Revision: https://phabricator.services.mozilla.com/D2968
ad10cbe201c48fc8c622dcfb5915cb048ae871cd: Bug 1429298 - Part 6: Apply motion path transform matrix. r=nical
Boris Chiou <boris.chiou@gmail.com> - Tue, 07 Aug 2018 18:07:01 -0700 - rev 830694
Push 118847 by bmo:hskupin@gmail.com at Wed, 22 Aug 2018 09:09:03 +0000
Bug 1429298 - Part 6: Apply motion path transform matrix. r=nical We implement the layout part of offset-path. Now we don't have offset-distance, so use the default value, 0%, for it. Note: rename mCombinedTransform as mIndividualTransform, which only stores the combined individual transforms. We apply the individual transforms, motion path transform, and specified transform in ReadTransforms. (We have to follow the order, so we don't combine the specified transform in FinishStyle.) Differential Revision: https://phabricator.services.mozilla.com/D2968
4841b3ddbacbb80dfd48c5c0b9737d6c33c7bcaa: Bug 1483772 - Never have mAsyncTask be non-null when we cannot paint. r=nical
Ryan Hunt <rhunt@eqrion.net> - Thu, 16 Aug 2018 10:33:14 -0500 - rev 830605
Push 118847 by bmo:hskupin@gmail.com at Wed, 22 Aug 2018 09:09:03 +0000
Bug 1483772 - Never have mAsyncTask be non-null when we cannot paint. r=nical In bug 1482415 a special check was added for the case where we fail to allocate a buffer and started an async task. This papered over one crash for another as ClientPaintedLayer also assumes that if there is an async task there is a capture. It'd be best to just null out mAsyncTask and keep those checks as is. Differential Revision: https://phabricator.services.mozilla.com/D3520
0e8748072c49da9d46e63aeb941ef7b2d7ccfaae: Bug 1483256 - Use mozilla::Atomic in MemoryTextureReadLock, r=nical.
Brian Hackett <bhackett1024@gmail.com> - Tue, 21 Aug 2018 01:00:40 +0000 - rev 830594
Push 118847 by bmo:hskupin@gmail.com at Wed, 22 Aug 2018 09:09:03 +0000
Bug 1483256 - Use mozilla::Atomic in MemoryTextureReadLock, r=nical.
9c610000042a2457c05c9abb7636693bacb56645: Bug 1479196 - add support to TextDrawTarget for defining and pushing WR images. r=nical
Lee Salzman <lsalzman@mozilla.com> - Tue, 21 Aug 2018 12:36:48 -0400 - rev 830571
Push 118847 by bmo:hskupin@gmail.com at Wed, 22 Aug 2018 09:09:03 +0000
Bug 1479196 - add support to TextDrawTarget for defining and pushing WR images. r=nical
fea8a70ad61252016639588a0f6e1e8b75508912: Bug 1482415 - Handle case where we failed to allocate a buffer and are async painting. r=nical
Ryan Hunt <rhunt@eqrion.net> - Mon, 13 Aug 2018 23:15:09 -0500 - rev 829185
Push 118745 by maglione.k@gmail.com at Tue, 14 Aug 2018 20:34:55 +0000
Bug 1482415 - Handle case where we failed to allocate a buffer and are async painting. r=nical
1185bd9092147fee2a8aa3668defd719061f3f2b: Bug 1482956 - Standardize method names and add comments to PaintThread. r=nical
Ryan Hunt <rhunt@eqrion.net> - Mon, 13 Aug 2018 12:58:25 -0500 - rev 829184
Push 118745 by maglione.k@gmail.com at Tue, 14 Aug 2018 20:34:55 +0000
Bug 1482956 - Standardize method names and add comments to PaintThread. r=nical These method names and ordering have gotten out of sync because of the recent churn. Differential Revision: https://phabricator.services.mozilla.com/D3288
2698e4d327ef9a088c93fad43d65f88a97ae9614: Bug 1482956 - Don't dispatch extra runnable for ending layer transaction. r=nical
Ryan Hunt <rhunt@eqrion.net> - Mon, 13 Aug 2018 12:57:15 -0500 - rev 829183
Push 118745 by maglione.k@gmail.com at Tue, 14 Aug 2018 20:34:55 +0000
Bug 1482956 - Don't dispatch extra runnable for ending layer transaction. r=nical This may have been needed at some point, but all the important code for EndLayerTransaction is in CompositorBridgeChild behind a lock, so this should be safe.
0448f28516031e7d8429e6fc5c1a0fe2e83a5dfe: Bug 1482956 - Use an AutoTArray in PaintTask to reduce heap allocations. r=nical
Ryan Hunt <rhunt@eqrion.net> - Mon, 13 Aug 2018 12:22:18 -0500 - rev 829182
Push 118745 by maglione.k@gmail.com at Tue, 14 Aug 2018 20:34:55 +0000
Bug 1482956 - Use an AutoTArray in PaintTask to reduce heap allocations. r=nical There should only ever be at most four TextureClients here, so allocated a vector seems wasteful.
2300b4b766cab3f534187dd12947219d907333f4: Bug 1482956 - Remove templates for FinishedAsyncPaint methods in CompositorBridgeChild. r=nical
Ryan Hunt <rhunt@eqrion.net> - Mon, 13 Aug 2018 12:10:14 -0500 - rev 829181
Push 118745 by maglione.k@gmail.com at Tue, 14 Aug 2018 20:34:55 +0000
Bug 1482956 - Remove templates for FinishedAsyncPaint methods in CompositorBridgeChild. r=nical This was needed when there were multiple types of CapturedPaintStates but is not anymore.
0386ff1e9956566b5ca1b5674af24ac40f4298ed: Bug 1481933 - Store a shared surface's dirty rect update if we cannot process it immediately. r=nical
Andrew Osmond <aosmond@mozilla.com> - Fri, 10 Aug 2018 10:48:23 -0400 - rev 828314
Push 118671 by bmo:mstriemer@mozilla.com at Fri, 10 Aug 2018 18:51:19 +0000
Bug 1481933 - Store a shared surface's dirty rect update if we cannot process it immediately. r=nical Multiple tabs in the same process could be viewing the same image. If it is an image we are taking some time to download from the network, it may not be displayed all at once. As a result, it could generate several dirty rects for the newly decoded lines each time we paint. Since we only apply the dirty rect to the active tab, and forget it afterwards, then when one returns to the other tab(s), it may not reupload all of the modified image data. Now we save the dirty rect and accumulate it for the handles which weren't able to be updated immediately.
3f41992ab77ee921028fb0e05b719e128eb9ec71: Bug 1446309 - Store a shared surface's dirty rect update if we cannot process it immediately. r=nical
Andrew Osmond <aosmond@mozilla.com> - Fri, 10 Aug 2018 09:30:24 -0400 - rev 828308
Push 118671 by bmo:mstriemer@mozilla.com at Fri, 10 Aug 2018 18:51:19 +0000
Bug 1446309 - Store a shared surface's dirty rect update if we cannot process it immediately. r=nical Multiple tabs in the same process could be viewing the same image. If it is an image we are taking some time to download from the network, it may not be displayed all at once. As a result, it could generate several dirty rects for the newly decoded lines each time we paint. Since we only apply the dirty rect to the active tab, and forget it afterwards, then when one returns to the other tab(s), it may not reupload all of the modified image data. Now we save the dirty rect and accumulate it for the handles which weren't able to be updated immediately.
0e67d90ba707c8030c27fc2c488dfdaeb914cfb0: Bug 1481995 - Remove WebRenderBridgeParent::mForceRendering r=nical
sotaro <sotaro.ikeda.g@gmail.com> - Fri, 10 Aug 2018 08:10:11 +0900 - rev 828186
Push 118647 by bmo:gl@mozilla.com at Fri, 10 Aug 2018 06:14:44 +0000
Bug 1481995 - Remove WebRenderBridgeParent::mForceRendering r=nical
f6f972d4003bb7bcd1b6d8aac24446613cab1072: Bug 1478815 part 8 - Remove buffer operations for ContentClient. r=nical
Ryan Hunt <rhunt@eqrion.net> - Thu, 26 Jul 2018 11:23:26 -0500 - rev 828170
Push 118647 by bmo:gl@mozilla.com at Fri, 10 Aug 2018 06:14:44 +0000
Bug 1478815 part 8 - Remove buffer operations for ContentClient. r=nical This commit moves ContentClient from creating a CapturedBufferState for buffer operations, to performing all of those operations on the DrawTarget(Capture). Creating a DrawTargetCapture is now performed by the RotatedBuffer when we BeginPaint, all operations are performed on this capture, and then it's returned to the ClientPaintedLayer as a PaintTask. This commit is an involved refactoring of ContentClient and RotatedBuffer to get this all to work. Here are the major parts: 1. RotatedBuffer is refactored to always perform operations on a single DrawTarget, which may be a single DT, dual DT, or capture. 2. RotatedBuffer adds BeginCapture and EndCapture methods to switch which DT is used in operations 3. ContentClient uses the RB capture methods when we are async painting 4. CC::BeginPaint is refactored to only perform capturing on a single RotatedBuffer. This is because we can't have the output of one PaintTask be the input of a different PaintTask due to the design of the Snapshot API. a. This can occur, today, by doing a FinalizeFrame only to later fail to Unrotate the buffer, causing a new RB to be created and painted into b. The previous PaintThread code worked because it used the buffer operations which didn't use Snapshot's c. This is fixed by not doing FinalizeFrame on a buffer if we realize we cannot unrotate it, and switching to initializing a buffer using the front buffer which should be up to date. d. I don't like touching this code, but it passes reftests, might be a performance improvement, and I've tested it on known regressions from the last time I messed up this code. 5. CC::PrepareForPaint is inlined into BeginPaint because dual draw targets can be cleared correctly from a previous commit 6. The code paths in ClientPaintedLayer are unified because we no longer need to special case this beyond setting the correct ContentClient flag. 7. CapturedPaintState and CapturedBufferState are removed in favor of PaintTask. Additionally EndLayer is no longer needed as all quadrants of a rotated buffer are in the same capture, so we don't need special case flushing code. MozReview-Commit-ID: 9UI40dwran
f98ce6cfb69791aa944187904cbaacf15d75de87: Bug 1478815 part 5 - Rename CapturedTiledPaintState to PaintTask. r=nical
Ryan Hunt <rhunt@eqrion.net> - Tue, 24 Jul 2018 15:39:35 -0500 - rev 828167
Push 118647 by bmo:gl@mozilla.com at Fri, 10 Aug 2018 06:14:44 +0000
Bug 1478815 part 5 - Rename CapturedTiledPaintState to PaintTask. r=nical This commit renames CapturedTiledPaintState to PaintTask as in a future commit I will fold CapturedPaintState into it. MozReview-Commit-ID: 8py7SrK4s29
ea29f1cd8da62a190fd5855e1026275e85393f68: Bug 1478815 part 4 - Remove buffer operations for TiledContentClient. r=nical
Ryan Hunt <rhunt@eqrion.net> - Tue, 24 Jul 2018 14:29:44 -0500 - rev 828166
Push 118647 by bmo:gl@mozilla.com at Fri, 10 Aug 2018 06:14:44 +0000
Bug 1478815 part 4 - Remove buffer operations for TiledContentClient. r=nical This commit refactors TiledContentClient to not create PaintThread buffer operations, but to instead perform all of these operations on the DrawTarget(Capture). This simplifies the code dramatically and allows us to add flushing behavior to DrawTargetCapture in a future commit. With this change, CapturedTiledPaintState is simply a container for a DrawTarget, DrawTargetCapture, and keep-alive TextureClients. Part of this commit is moving the logic of locking the texture clients, constructing a dual draw target, and constructing a capture into TiledContentClient so it can be shared. MozReview-Commit-ID: 2rwz9aDI737
a3148cb43f975770fca07d919478c274b67aa6cc: Bug 1478815 part 3 - Add a DualTextureClientLock for texture clients used for component alpha. r=nical
Ryan Hunt <rhunt@eqrion.net> - Wed, 01 Aug 2018 12:46:35 -0500 - rev 828165
Push 118647 by bmo:gl@mozilla.com at Fri, 10 Aug 2018 06:14:44 +0000
Bug 1478815 part 3 - Add a DualTextureClientLock for texture clients used for component alpha. r=nical This commit adds a RAII class for the common operation of attempting to lock one or two TextureClients and then maybe constructing a DrawTargetDual from them. MozReview-Commit-ID: ECQkDSgpyuL
aab1cac9daa8b3986579764a570a9ebcb0f2c02d: Bug 1476846 - Fix UpdateEpoch() handling r=nical
sotaro <sotaro.ikeda.g@gmail.com> - Wed, 08 Aug 2018 14:14:00 +0900 - rev 827505
Push 118540 by bmo:bpostelnicu@mozilla.com at Wed, 08 Aug 2018 10:44:22 +0000
Bug 1476846 - Fix UpdateEpoch() handling r=nical
405ad351821813333c0e989b93e2aeb49ba8552c: Bug 1478815 part 8 - Remove buffer operations for ContentClient. r=nical
Ryan Hunt <rhunt@eqrion.net> - Thu, 26 Jul 2018 11:23:26 -0500 - rev 827245
Push 118502 by bmo:mstriemer@mozilla.com at Tue, 07 Aug 2018 16:39:48 +0000
Bug 1478815 part 8 - Remove buffer operations for ContentClient. r=nical This commit moves ContentClient from creating a CapturedBufferState for buffer operations, to performing all of those operations on the DrawTarget(Capture). Creating a DrawTargetCapture is now performed by the RotatedBuffer when we BeginPaint, all operations are performed on this capture, and then it's returned to the ClientPaintedLayer as a PaintTask. This commit is an involved refactoring of ContentClient and RotatedBuffer to get this all to work. Here are the major parts: 1. RotatedBuffer is refactored to always perform operations on a single DrawTarget, which may be a single DT, dual DT, or capture. 2. RotatedBuffer adds BeginCapture and EndCapture methods to switch which DT is used in operations 3. ContentClient uses the RB capture methods when we are async painting 4. CC::BeginPaint is refactored to only perform capturing on a single RotatedBuffer. This is because we can't have the output of one PaintTask be the input of a different PaintTask due to the design of the Snapshot API. a. This can occur, today, by doing a FinalizeFrame only to later fail to Unrotate the buffer, causing a new RB to be created and painted into b. The previous PaintThread code worked because it used the buffer operations which didn't use Snapshot's c. This is fixed by not doing FinalizeFrame on a buffer if we realize we cannot unrotate it, and switching to initializing a buffer using the front buffer which should be up to date. d. I don't like touching this code, but it passes reftests, might be a performance improvement, and I've tested it on known regressions from the last time I messed up this code. 5. CC::PrepareForPaint is inlined into BeginPaint because dual draw targets can be cleared correctly from a previous commit 6. The code paths in ClientPaintedLayer are unified because we no longer need to special case this beyond setting the correct ContentClient flag. 7. CapturedPaintState and CapturedBufferState are removed in favor of PaintTask. Additionally EndLayer is no longer needed as all quadrants of a rotated buffer are in the same capture, so we don't need special case flushing code. MozReview-Commit-ID: 9UI40dwran
01110727f2e9e0846fc06997653e04860efb23dc: Bug 1478815 part 5 - Rename CapturedTiledPaintState to PaintTask. r=nical
Ryan Hunt <rhunt@eqrion.net> - Tue, 24 Jul 2018 15:39:35 -0500 - rev 827242
Push 118502 by bmo:mstriemer@mozilla.com at Tue, 07 Aug 2018 16:39:48 +0000
Bug 1478815 part 5 - Rename CapturedTiledPaintState to PaintTask. r=nical This commit renames CapturedTiledPaintState to PaintTask as in a future commit I will fold CapturedPaintState into it. MozReview-Commit-ID: 8py7SrK4s29
56d967e03ee225e032034ffd193b6f42b343226b: Bug 1478815 part 4 - Remove buffer operations for TiledContentClient. r=nical
Ryan Hunt <rhunt@eqrion.net> - Tue, 24 Jul 2018 14:29:44 -0500 - rev 827241
Push 118502 by bmo:mstriemer@mozilla.com at Tue, 07 Aug 2018 16:39:48 +0000
Bug 1478815 part 4 - Remove buffer operations for TiledContentClient. r=nical This commit refactors TiledContentClient to not create PaintThread buffer operations, but to instead perform all of these operations on the DrawTarget(Capture). This simplifies the code dramatically and allows us to add flushing behavior to DrawTargetCapture in a future commit. With this change, CapturedTiledPaintState is simply a container for a DrawTarget, DrawTargetCapture, and keep-alive TextureClients. Part of this commit is moving the logic of locking the texture clients, constructing a dual draw target, and constructing a capture into TiledContentClient so it can be shared. MozReview-Commit-ID: 2rwz9aDI737
082638a5c6432e0ca6ce377986d84ed130b32ad3: Bug 1478815 part 3 - Add a DualTextureClientLock for texture clients used for component alpha. r=nical
Ryan Hunt <rhunt@eqrion.net> - Wed, 01 Aug 2018 12:46:35 -0500 - rev 827240
Push 118502 by bmo:mstriemer@mozilla.com at Tue, 07 Aug 2018 16:39:48 +0000
Bug 1478815 part 3 - Add a DualTextureClientLock for texture clients used for component alpha. r=nical This commit adds a RAII class for the common operation of attempting to lock one or two TextureClients and then maybe constructing a DrawTargetDual from them. MozReview-Commit-ID: ECQkDSgpyuL
6d49e8acf935ccd2bb9a11436b0fa74955337fbf: Bug 1478815 part 8 - Remove buffer operations for ContentClient. r=nical draft
Ryan Hunt <rhunt@eqrion.net> - Thu, 26 Jul 2018 11:23:26 -0500 - rev 827210
Push 118496 by bmo:rhunt@eqrion.net at Tue, 07 Aug 2018 14:04:27 +0000
Bug 1478815 part 8 - Remove buffer operations for ContentClient. r=nical This commit moves ContentClient from creating a CapturedBufferState for buffer operations, to performing all of those operations on the DrawTarget(Capture). Creating a DrawTargetCapture is now performed by the RotatedBuffer when we BeginPaint, all operations are performed on this capture, and then it's returned to the ClientPaintedLayer as a PaintTask. This commit is an involved refactoring of ContentClient and RotatedBuffer to get this all to work. Here are the major parts: 1. RotatedBuffer is refactored to always perform operations on a single DrawTarget, which may be a single DT, dual DT, or capture. 2. RotatedBuffer adds BeginCapture and EndCapture methods to switch which DT is used in operations 3. ContentClient uses the RB capture methods when we are async painting 4. CC::BeginPaint is refactored to only perform capturing on a single RotatedBuffer. This is because we can't have the output of one PaintTask be the input of a different PaintTask due to the design of the Snapshot API. a. This can occur, today, by doing a FinalizeFrame only to later fail to Unrotate the buffer, causing a new RB to be created and painted into b. The previous PaintThread code worked because it used the buffer operations which didn't use Snapshot's c. This is fixed by not doing FinalizeFrame on a buffer if we realize we cannot unrotate it, and switching to initializing a buffer using the front buffer which should be up to date. d. I don't like touching this code, but it passes reftests, might be a performance improvement, and I've tested it on known regressions from the last time I messed up this code. 5. CC::PrepareForPaint is inlined into BeginPaint because dual draw targets can be cleared correctly from a previous commit 6. The code paths in ClientPaintedLayer are unified because we no longer need to special case this beyond setting the correct ContentClient flag. 7. CapturedPaintState and CapturedBufferState are removed in favor of PaintTask. Additionally EndLayer is no longer needed as all quadrants of a rotated buffer are in the same capture, so we don't need special case flushing code. MozReview-Commit-ID: 9UI40dwran
c96c0a1e76715000086c2fb9569c26e0fbb5ea1c: Bug 1478815 part 5 - Rename CapturedTiledPaintState to PaintTask. r=nical draft
Ryan Hunt <rhunt@eqrion.net> - Tue, 24 Jul 2018 15:39:35 -0500 - rev 827207
Push 118496 by bmo:rhunt@eqrion.net at Tue, 07 Aug 2018 14:04:27 +0000
Bug 1478815 part 5 - Rename CapturedTiledPaintState to PaintTask. r=nical This commit renames CapturedTiledPaintState to PaintTask as in a future commit I will fold CapturedPaintState into it. MozReview-Commit-ID: 8py7SrK4s29
ffe072c424864e29e72c968849ae3e1197c74d25: Bug 1478815 part 4 - Remove buffer operations for TiledContentClient. r=nical draft
Ryan Hunt <rhunt@eqrion.net> - Tue, 24 Jul 2018 14:29:44 -0500 - rev 827206
Push 118496 by bmo:rhunt@eqrion.net at Tue, 07 Aug 2018 14:04:27 +0000
Bug 1478815 part 4 - Remove buffer operations for TiledContentClient. r=nical This commit refactors TiledContentClient to not create PaintThread buffer operations, but to instead perform all of these operations on the DrawTarget(Capture). This simplifies the code dramatically and allows us to add flushing behavior to DrawTargetCapture in a future commit. With this change, CapturedTiledPaintState is simply a container for a DrawTarget, DrawTargetCapture, and keep-alive TextureClients. Part of this commit is moving the logic of locking the texture clients, constructing a dual draw target, and constructing a capture into TiledContentClient so it can be shared. MozReview-Commit-ID: 2rwz9aDI737
0235055c3ab935cb63c8327cd43c130783ee1f2e: Bug 1478815 part 3 - Add a DualTextureClientLock for texture clients used for component alpha. r=nical draft
Ryan Hunt <rhunt@eqrion.net> - Wed, 01 Aug 2018 12:46:35 -0500 - rev 827205
Push 118496 by bmo:rhunt@eqrion.net at Tue, 07 Aug 2018 14:04:27 +0000
Bug 1478815 part 3 - Add a DualTextureClientLock for texture clients used for component alpha. r=nical This commit adds a RAII class for the common operation of attempting to lock one or two TextureClients and then maybe constructing a DrawTargetDual from them. MozReview-Commit-ID: ECQkDSgpyuL
738e88d3b78eaa4d34cc5d16fc9d2e2b993e228e: Bug 1476846 - Reduce latency of applying async images of video r=nical
sotaro <sotaro.ikeda.g@gmail.com> - Tue, 07 Aug 2018 19:12:06 +0900 - rev 827190
Push 118488 by bmo:hsivonen@hsivonen.fi at Tue, 07 Aug 2018 12:28:14 +0000
Bug 1476846 - Reduce latency of applying async images of video r=nical
ba5c08f10923c181c30ef42b371ed9009974911d: Bug 1453795 - GFX - Initialize member fields in classes/ structures. r=nical
Andi-Bogdan Postelnicu <bpostelnicu@mozilla.com> - Sat, 16 Jun 2018 17:42:33 +0300 - rev 827048
Push 118448 by bmo:mstriemer@mozilla.com at Mon, 06 Aug 2018 20:24:49 +0000
Bug 1453795 - GFX - Initialize member fields in classes/ structures. r=nical
0700d8125e0b5efe2426bbb8c846c49a46c4fd91: Bug 1478815 part 8 - Remove buffer operations for ContentClient. r=nical draft
Ryan Hunt <rhunt@eqrion.net> - Thu, 26 Jul 2018 11:23:26 -0500 - rev 827000
Push 118434 by bmo:rhunt@eqrion.net at Mon, 06 Aug 2018 16:43:50 +0000
Bug 1478815 part 8 - Remove buffer operations for ContentClient. r=nical This commit moves ContentClient from creating a CapturedBufferState for buffer operations, to performing all of those operations on the DrawTarget(Capture). Creating a DrawTargetCapture is now performed by the RotatedBuffer when we BeginPaint, all operations are performed on this capture, and then it's returned to the ClientPaintedLayer as a PaintTask. This commit is an involved refactoring of ContentClient and RotatedBuffer to get this all to work. Here are the major parts: 1. RotatedBuffer is refactored to always perform operations on a single DrawTarget, which may be a single DT, dual DT, or capture. 2. RotatedBuffer adds BeginCapture and EndCapture methods to switch which DT is used in operations 3. ContentClient uses the RB capture methods when we are async painting 4. CC::BeginPaint is refactored to only perform capturing on a single RotatedBuffer. This is because we can't have the output of one PaintTask be the input of a different PaintTask due to the design of the Snapshot API. a. This can occur, today, by doing a FinalizeFrame only to later fail to Unrotate the buffer, causing a new RB to be created and painted into b. The previous PaintThread code worked because it used the buffer operations which didn't use Snapshot's c. This is fixed by not doing FinalizeFrame on a buffer if we realize we cannot unrotate it, and switching to initializing a buffer using the front buffer which should be up to date. d. I don't like touching this code, but it passes reftests, might be a performance improvement, and I've tested it on known regressions from the last time I messed up this code. 5. CC::PrepareForPaint is inlined into BeginPaint because dual draw targets can be cleared correctly from a previous commit 6. The code paths in ClientPaintedLayer are unified because we no longer need to special case this beyond setting the correct ContentClient flag. 7. CapturedPaintState and CapturedBufferState are removed in favor of PaintTask. Additionally EndLayer is no longer needed as all quadrants of a rotated buffer are in the same capture, so we don't need special case flushing code. MozReview-Commit-ID: 9UI40dwran
e831d49dfefae6e404a9b1e1e8d48abaa950f065: Bug 1478815 part 5 - Rename CapturedTiledPaintState to PaintTask. r=nical draft
Ryan Hunt <rhunt@eqrion.net> - Tue, 24 Jul 2018 15:39:35 -0500 - rev 826997
Push 118434 by bmo:rhunt@eqrion.net at Mon, 06 Aug 2018 16:43:50 +0000
Bug 1478815 part 5 - Rename CapturedTiledPaintState to PaintTask. r=nical This commit renames CapturedTiledPaintState to PaintTask as in a future commit I will fold CapturedPaintState into it. MozReview-Commit-ID: 8py7SrK4s29
537db35ccb15b7a7b951f1f706b9c148f2d5b9ff: Bug 1478815 part 4 - Remove buffer operations for TiledContentClient. r=nical draft
Ryan Hunt <rhunt@eqrion.net> - Tue, 24 Jul 2018 14:29:44 -0500 - rev 826996
Push 118434 by bmo:rhunt@eqrion.net at Mon, 06 Aug 2018 16:43:50 +0000
Bug 1478815 part 4 - Remove buffer operations for TiledContentClient. r=nical This commit refactors TiledContentClient to not create PaintThread buffer operations, but to instead perform all of these operations on the DrawTarget(Capture). This simplifies the code dramatically and allows us to add flushing behavior to DrawTargetCapture in a future commit. With this change, CapturedTiledPaintState is simply a container for a DrawTarget, DrawTargetCapture, and keep-alive TextureClients. Part of this commit is moving the logic of locking the texture clients, constructing a dual draw target, and constructing a capture into TiledContentClient so it can be shared. MozReview-Commit-ID: 2rwz9aDI737
84c62574018b7d0f04fcc0a3b0f5df5cdee2f105: Bug 1478815 part 3 - Add a DualTextureClientLock for texture clients used for component alpha. r=nical draft
Ryan Hunt <rhunt@eqrion.net> - Wed, 01 Aug 2018 12:46:35 -0500 - rev 826995
Push 118434 by bmo:rhunt@eqrion.net at Mon, 06 Aug 2018 16:43:50 +0000
Bug 1478815 part 3 - Add a DualTextureClientLock for texture clients used for component alpha. r=nical This commit adds a RAII class for the common operation of attempting to lock one or two TextureClients and then maybe constructing a DrawTargetDual from them. MozReview-Commit-ID: ECQkDSgpyuL
e6b9e23da4d0599cd5a1fbc23d82c9e99ef94347: Bug 1474885 - Re-enable crashtests that are now passing. r=nical
Kartikaya Gupta <kgupta@mozilla.com> - Thu, 02 Aug 2018 10:28:15 -0400 - rev 826080
Push 118238 by bmo:mh+mozilla@glandium.org at Thu, 02 Aug 2018 22:02:22 +0000
Bug 1474885 - Re-enable crashtests that are now passing. r=nical MozReview-Commit-ID: 334GLtdSzF5
a09b5c9a5b7b04ea9a71526c2aacbc1d1d8cc131: Bug 1474885 - Re-enable crashtests that are now passing. r?nical draft
Kartikaya Gupta <kgupta@mozilla.com> - Thu, 02 Aug 2018 10:28:15 -0400 - rev 825865
Push 118191 by kgupta@mozilla.com at Thu, 02 Aug 2018 14:28:42 +0000
Bug 1474885 - Re-enable crashtests that are now passing. r?nical MozReview-Commit-ID: 334GLtdSzF5
82357b634e4f1d819dee7509efc07ed81c9d840b: Bug 1478815 part 8 - Remove buffer operations for ContentClient. r=nical draft
Ryan Hunt <rhunt@eqrion.net> - Thu, 26 Jul 2018 11:23:26 -0500 - rev 825424
Push 118104 by bmo:rhunt@eqrion.net at Wed, 01 Aug 2018 18:58:55 +0000
Bug 1478815 part 8 - Remove buffer operations for ContentClient. r=nical This commit moves ContentClient from creating a CapturedBufferState for buffer operations, to performing all of those operations on the DrawTarget(Capture). Creating a DrawTargetCapture is now performed by the RotatedBuffer when we BeginPaint, all operations are performed on this capture, and then it's returned to the ClientPaintedLayer as a PaintTask. This commit is an involved refactoring of ContentClient and RotatedBuffer to get this all to work. Here are the major parts: 1. RotatedBuffer is refactored to always perform operations on a single DrawTarget, which may be a single DT, dual DT, or capture. 2. RotatedBuffer adds BeginCapture and EndCapture methods to switch which DT is used in operations 3. ContentClient uses the RB capture methods when we are async painting 4. CC::BeginPaint is refactored to only perform capturing on a single RotatedBuffer. This is because we can't have the output of one PaintTask be the input of a different PaintTask due to the design of the Snapshot API. a. This can occur, today, by doing a FinalizeFrame only to later fail to Unrotate the buffer, causing a new RB to be created and painted into b. The previous PaintThread code worked because it used the buffer operations which didn't use Snapshot's c. This is fixed by not doing FinalizeFrame on a buffer if we realize we cannot unrotate it, and switching to initializing a buffer using the front buffer which should be up to date. d. I don't like touching this code, but it passes reftests, might be a performance improvement, and I've tested it on known regressions from the last time I messed up this code. 5. CC::PrepareForPaint is inlined into BeginPaint because dual draw targets can be cleared correctly from a previous commit 6. The code paths in ClientPaintedLayer are unified because we no longer need to special case this beyond setting the correct ContentClient flag. 7. CapturedPaintState and CapturedBufferState are removed in favor of PaintTask. Additionally EndLayer is no longer needed as all quadrants of a rotated buffer are in the same capture, so we don't need special case flushing code. MozReview-Commit-ID: 9UI40dwran
b78fc86ef945fbe0518c1f503b6a9c6fbc2dab88: Bug 1478815 part 5 - Rename CapturedTiledPaintState to PaintTask. r=nical draft
Ryan Hunt <rhunt@eqrion.net> - Tue, 24 Jul 2018 15:39:35 -0500 - rev 825421
Push 118104 by bmo:rhunt@eqrion.net at Wed, 01 Aug 2018 18:58:55 +0000
Bug 1478815 part 5 - Rename CapturedTiledPaintState to PaintTask. r=nical This commit renames CapturedTiledPaintState to PaintTask as in a future commit I will fold CapturedPaintState into it. MozReview-Commit-ID: 8py7SrK4s29
1ea56562747ac6de5a1928126cdf0c81e047ba28: Bug 1478815 part 4 - Remove buffer operations for TiledContentClient. r=nical draft
Ryan Hunt <rhunt@eqrion.net> - Tue, 24 Jul 2018 14:29:44 -0500 - rev 825420
Push 118104 by bmo:rhunt@eqrion.net at Wed, 01 Aug 2018 18:58:55 +0000
Bug 1478815 part 4 - Remove buffer operations for TiledContentClient. r=nical This commit refactors TiledContentClient to not create PaintThread buffer operations, but to instead perform all of these operations on the DrawTarget(Capture). This simplifies the code dramatically and allows us to add flushing behavior to DrawTargetCapture in a future commit. With this change, CapturedTiledPaintState is simply a container for a DrawTarget, DrawTargetCapture, and keep-alive TextureClients. Part of this commit is moving the logic of locking the texture clients, constructing a dual draw target, and constructing a capture into TiledContentClient so it can be shared. MozReview-Commit-ID: 2rwz9aDI737
3a54c702cbfcbacc69312b98ebce35c4b2613206: Bug 1478815 part 3 - Add a DualTextureClientLock for texture clients used for component alpha. r=nical draft
Ryan Hunt <rhunt@eqrion.net> - Wed, 01 Aug 2018 12:46:35 -0500 - rev 825419
Push 118104 by bmo:rhunt@eqrion.net at Wed, 01 Aug 2018 18:58:55 +0000
Bug 1478815 part 3 - Add a DualTextureClientLock for texture clients used for component alpha. r=nical This commit adds a RAII class for the common operation of attempting to lock one or two TextureClients and then maybe constructing a DrawTargetDual from them. MozReview-Commit-ID: ECQkDSgpyuL
96efac6422538e41756d352e6cc508fb04eea6f5: Bug 1479680 - Change clear_color to (0.0, 0.0, 0.0, 0.0) in webrender r=nical
sotaro <sotaro.ikeda.g@gmail.com> - Wed, 01 Aug 2018 08:50:48 +0900 - rev 825165
Push 118035 by nnethercote@mozilla.com at Wed, 01 Aug 2018 00:10:50 +0000
Bug 1479680 - Change clear_color to (0.0, 0.0, 0.0, 0.0) in webrender r=nical
2f5652b825c1ffa9c44aaf01a3e82ffa04a23161: Bug 1476724 - Mark default-style/button.html as fuzzy on debug linux. r?nical draft
Ryan Hunt <rhunt@eqrion.net> - Tue, 24 Jul 2018 16:19:04 -0500 - rev 822189
Push 117310 by bmo:rhunt@eqrion.net at Tue, 24 Jul 2018 21:19:55 +0000
Bug 1476724 - Mark default-style/button.html as fuzzy on debug linux. r?nical MozReview-Commit-ID: CEhtvTB0VXa
8eb5cd519eda2619deda1061b565398f0076997b: Bug 1465466 Part 3 - When recording/replaying, composite in the main thread's event loop instead of waiting for vsyncs, r=nical.
Brian Hackett <bhackett1024@gmail.com> - Mon, 23 Jul 2018 21:47:28 +0000 - rev 822119
Push 117296 by bmo:gl@mozilla.com at Tue, 24 Jul 2018 20:28:07 +0000
Bug 1465466 Part 3 - When recording/replaying, composite in the main thread's event loop instead of waiting for vsyncs, r=nical.
a243446f634c5f0f700a5de7d45184bf62bba76f: Bug 1465466 Part 1 - Use a separate compositor in recording/replaying processes, r=nical.
Brian Hackett <bhackett1024@gmail.com> - Mon, 23 Jul 2018 21:46:47 +0000 - rev 822118
Push 117296 by bmo:gl@mozilla.com at Tue, 24 Jul 2018 20:28:07 +0000
Bug 1465466 Part 1 - Use a separate compositor in recording/replaying processes, r=nical.
1ac6543017416f0899dbac1c785cc2b48637b900: Bug 1465466 Part 4 - Send compositor updates to the UI process from the middleman, r=mccr8,nical.
Brian Hackett <bhackett1024@gmail.com> - Sun, 22 Jul 2018 12:03:06 +0000 - rev 821403
Push 117078 by bmo:gl@mozilla.com at Mon, 23 Jul 2018 05:29:28 +0000
Bug 1465466 Part 4 - Send compositor updates to the UI process from the middleman, r=mccr8,nical.
7e4f6f3985d0caf63dd852f26dec16156782caa2: Bug 1465466 Part 2 - Synchronously composite into a graphics shmem buffer when recording/replaying, r=nical.
Brian Hackett <bhackett1024@gmail.com> - Sun, 22 Jul 2018 12:02:26 +0000 - rev 821402
Push 117078 by bmo:gl@mozilla.com at Mon, 23 Jul 2018 05:29:28 +0000
Bug 1465466 Part 2 - Synchronously composite into a graphics shmem buffer when recording/replaying, r=nical.