searching for reviewer(sotaro)
ec86658fae7ff91d35d4f36d6c120d9e5f444093: Bug 1709493 - Don't call compositor begin_frame/end_frame unless actually rendering. r=sotaro,gfx-reviewers,gw
Lee Salzman <lsalzman@mozilla.com> - Thu, 06 May 2021 08:43:25 +0000 - rev 578695
Push 38440 by malexandru@mozilla.com at Thu, 06 May 2021 15:49:21 +0000
Bug 1709493 - Don't call compositor begin_frame/end_frame unless actually rendering. r=sotaro,gfx-reviewers,gw If we're not actually rendering a frame, calling begin_frame/end_frame on the compositor without adding surfaces can cause us to render a blank frame. Avoid calling begin_frame/end_frame as well in this situation so that we don't accidentally do this. Differential Revision: https://phabricator.services.mozilla.com/D114316
365bfc91ddd5d9be1a5d5bee72377c025b099321: Bug 1708590 - Don't call add_surface or start_compositing unless actually rendering. r=sotaro
Lee Salzman <lsalzman@mozilla.com> - Fri, 30 Apr 2021 12:26:53 +0000 - rev 578167
Push 38422 by ncsoregi@mozilla.com at Fri, 30 Apr 2021 21:45:04 +0000
Bug 1708590 - Don't call add_surface or start_compositing unless actually rendering. r=sotaro Rather than have SwCompositor or the individual RenderCompositors track this, it seems easier to just have WR itself avoid calling add_surface or start_compositing if we're inside an update. Differential Revision: https://phabricator.services.mozilla.com/D113953
ddeb97eb855524af96a31d5867aa3a12c713316d: Bug 1705208 - Force allow fallback to Software WebRender if fallback to Basic is disabled. r=gfx-reviewers,sotaro
Andrew Osmond <aosmond@mozilla.com> - Thu, 15 Apr 2021 00:12:52 +0000 - rev 576029
Push 38374 by nbeleuzu@mozilla.com at Thu, 15 Apr 2021 04:00:11 +0000
Bug 1705208 - Force allow fallback to Software WebRender if fallback to Basic is disabled. r=gfx-reviewers,sotaro Differential Revision: https://phabricator.services.mozilla.com/D112096
8f5b22203c79ce916167b2a33dd1d90f1d5f63ab: Bug 1678892 - Pass dirty and opaque regions to layers compositor. r=sotaro
Lee Salzman <lsalzman@mozilla.com> - Tue, 23 Mar 2021 06:36:39 +0000 - rev 572543
Push 38313 by apavel@mozilla.com at Tue, 23 Mar 2021 21:43:59 +0000
Bug 1678892 - Pass dirty and opaque regions to layers compositor. r=sotaro The backend CompositorD3D11/CompositorOGL layers compositors can already do partial clear optimizations for us if applicable. The only thing we need to do is pass in the actual dirty/opaque regions so that it can utilize it. Like with RenderCompositorSWGL, we move the actual allocation of the framebuffer into StartCompositing when this information is known, rather than BeginFrame which is too early in the frame to have this information yet. Differential Revision: https://phabricator.services.mozilla.com/D109092
bdf6e40057f2716308c1ddf7b8f8943baf4743fb: Bug 1678892 - Use PBOs for uploading tiles in RenderCompositorOGLSWGL. r=sotaro
Lee Salzman <lsalzman@mozilla.com> - Tue, 23 Mar 2021 06:36:39 +0000 - rev 572542
Push 38313 by apavel@mozilla.com at Tue, 23 Mar 2021 21:43:59 +0000
Bug 1678892 - Use PBOs for uploading tiles in RenderCompositorOGLSWGL. r=sotaro Differential Revision: https://phabricator.services.mozilla.com/D109032
52299c7cbec44f2fe75273acdf2aed8e2496931c: Bug 1684194 [Linux] Use RenderCompositorEGL on X11/EGL, r=sotaro
stransky <stransky@redhat.com> - Thu, 18 Mar 2021 13:46:03 +0000 - rev 571779
Push 38299 by abutkovits@mozilla.com at Thu, 18 Mar 2021 21:35:31 +0000
Bug 1684194 [Linux] Use RenderCompositorEGL on X11/EGL, r=sotaro Differential Revision: https://phabricator.services.mozilla.com/D108508
b19b750f1ecf271a03c450e13c2c3cac634dccbb: Bug 1661572 [Linux] Check mSurface before use at DMABUFTextureData/DMABUFTextureHostOGL, r=sotaro
stransky <stransky@redhat.com> - Tue, 16 Mar 2021 07:57:40 +0000 - rev 571369
Push 38290 by abutkovits@mozilla.com at Tue, 16 Mar 2021 16:29:54 +0000
Bug 1661572 [Linux] Check mSurface before use at DMABUFTextureData/DMABUFTextureHostOGL, r=sotaro It's possible that DMABufSurface::CreateDMABufSurface() fails, for instance when we're running out of file descriptors. In such case mSurface is null and we need to check it before we use it. Also implement DMABUFTextureHostOGL::IsValid() to claim mSurface state. Depends on D107976 Differential Revision: https://phabricator.services.mozilla.com/D107977
269ee52d9d9b72a5ddc00e4247350cac297e9010: Bug 1698067 - Only collapse framebuffer clears when stride is packed. r=sotaro
Lee Salzman <lsalzman@mozilla.com> - Tue, 16 Mar 2021 04:38:19 +0000 - rev 571361
Push 38289 by abutkovits@mozilla.com at Tue, 16 Mar 2021 09:49:54 +0000
Bug 1698067 - Only collapse framebuffer clears when stride is packed. r=sotaro There is a bug where if the stride of the default framebuffer is not tightly packed, such as when we are mapping a smaller dirty region of a larger output buffer, we can erroneously clear a region of the larger output buffer that should not be overwritten. This limits the optimization to only happen when the stride is tightly packed. Differential Revision: https://phabricator.services.mozilla.com/D108534
f3aeb3726ceec8489fd4857f7a076ea1716f16c0: Bug 1698067 - Force color buffer to resolve before committing. r=sotaro
Lee Salzman <lsalzman@mozilla.com> - Tue, 16 Mar 2021 02:42:00 +0000 - rev 571356
Push 38288 by nbeleuzu@mozilla.com at Tue, 16 Mar 2021 05:27:46 +0000
Bug 1698067 - Force color buffer to resolve before committing. r=sotaro This cleans up two issues related to delayed clearing of the default framebuffer. Firstly, we might accidentally not have resolved the color buffer by the time we go to actually commit it, so that any delayed clears of the default framebuffer might get missed. We need to force the color buffer to resolve before we commit to guarantee there are no delayed clears left. Secondly, there is a bug where if the stride of the default framebuffer is not tightly packed, such as when we are mapping a smaller dirty region of a larger output buffer, we can erroneously clear a region of the larger output buffer that should not be overwritten. This limits the optimization to only happen when the stride is tightly packed. Differential Revision: https://phabricator.services.mozilla.com/D108534
1cf8864ed7376e7e7d97b2dd4c78a3af8bc6ec25: Bug 1697579 Part 1: Add diagnostic asserts to ~CompositorBridgeParent(). r=sotaro
Brad Werth <bwerth@mozilla.com> - Wed, 10 Mar 2021 23:02:32 +0000 - rev 570596
Push 38277 by smolnar@mozilla.com at Thu, 11 Mar 2021 09:30:01 +0000
Bug 1697579 Part 1: Add diagnostic asserts to ~CompositorBridgeParent(). r=sotaro Differential Revision: https://phabricator.services.mozilla.com/D107904
7cc844facbddb0f1c032a091ebc50e247ea8c4d9: Bug 1662281 - Don't warn when GL symbol lookup fails. We look up symbols for many extensions, for which symbol lookup is expected to fail. r=sotaro
Markus Stange <mstange.moz@gmail.com> - Tue, 09 Feb 2021 21:17:20 +0000 - rev 566743
Push 38187 by ncsoregi@mozilla.com at Wed, 10 Feb 2021 03:37:51 +0000
Bug 1662281 - Don't warn when GL symbol lookup fails. We look up symbols for many extensions, for which symbol lookup is expected to fail. r=sotaro We can bring this back if we have a way to only print the warning for essential symbols, bug 1322949. Differential Revision: https://phabricator.services.mozilla.com/D104462
383fec2e815c41a62f251ece04320f97be74a257: Bug 1629381 - CanvasRenderingContext2D.drawImage shouldn't throw for e.g <video> if there's no valid surface to draw. r=sotaro
Emilio Cobos Álvarez <emilio@crisal.io> - Thu, 28 Jan 2021 22:20:05 +0000 - rev 565099
Push 38151 by smolnar@mozilla.com at Fri, 29 Jan 2021 09:51:32 +0000
Bug 1629381 - CanvasRenderingContext2D.drawImage shouldn't throw for e.g <video> if there's no valid surface to draw. r=sotaro As per spec see comment. Differential Revision: https://phabricator.services.mozilla.com/D103157
ab82c7e299f44df0d9d3f102e8e33af73d416f11: Bug 1629381 - CanvasRenderingContext2D.drawImage shouldn't throw for e.g <video> if there's no valid surface to draw. r=sotaro
Emilio Cobos Álvarez <emilio@crisal.io> - Wed, 27 Jan 2021 23:55:11 +0000 - rev 564928
Push 38148 by smolnar@mozilla.com at Thu, 28 Jan 2021 09:46:17 +0000
Bug 1629381 - CanvasRenderingContext2D.drawImage shouldn't throw for e.g <video> if there's no valid surface to draw. r=sotaro As per spec see comment. Differential Revision: https://phabricator.services.mozilla.com/D103157
d9b7bed964289b0636903e9bebb8f889dde646a4: Bug 1629381 - CanvasRenderingContext2D.drawImage shouldn't throw for e.g <video> if there's no valid surface to draw. r=sotaro
Emilio Cobos Álvarez <emilio@crisal.io> - Wed, 27 Jan 2021 20:09:25 +0000 - rev 564895
Push 38148 by smolnar@mozilla.com at Thu, 28 Jan 2021 09:46:17 +0000
Bug 1629381 - CanvasRenderingContext2D.drawImage shouldn't throw for e.g <video> if there's no valid surface to draw. r=sotaro As per spec see comment. Differential Revision: https://phabricator.services.mozilla.com/D103157
f31f215bebd3a1ed5254da430a143a4563e9fca6: Bug 1683120 - Ensure that we always read unlock textures with LayerManagerComposite, even if there was no work to do. r=sotaro
Matt Woodrow <mwoodrow@mozilla.com> - Mon, 18 Jan 2021 04:02:08 +0000 - rev 563519
Push 38113 by rmaries@mozilla.com at Mon, 18 Jan 2021 09:46:03 +0000
Bug 1683120 - Ensure that we always read unlock textures with LayerManagerComposite, even if there was no work to do. r=sotaro Differential Revision: https://phabricator.services.mozilla.com/D100967
1de3ccd3da570e852f14b86c21ff7a3fb5c82c75: Bug 1683936 - Disable persistently mapped buffers on Adreno devices. r=sotaro
Jamie Nicol <jnicol@mozilla.com> - Wed, 23 Dec 2020 12:05:54 +0000 - rev 561689
Push 38054 by apavel@mozilla.com at Wed, 23 Dec 2020 21:27:50 +0000
Bug 1683936 - Disable persistently mapped buffers on Adreno devices. r=sotaro There is a driver bug on old versions of the Adreno driver which prevents usage of persistenly mapped buffers for texture uploads. Creating and mapping the buffer works correctly, but attempting to upload to a texture from the buffer results in an error due to the buffer still being mapped. This means that no texture data is uploaded, essentially meaning that we do not render anything at all. It appears to affect at least Adreno 4xx and 5xx devices running Android 6. For now, simply disable persistent mapping on all Adreno devices, until we know more specifically which are affected. Differential Revision: https://phabricator.services.mozilla.com/D100391
73bec1147728d66ca40d784601458e58273083e6: Bug 1682876 - Better handle Linux NVIDIA device resets, and unflushed device resets. r=sotaro,jgilbert
Andrew Osmond <aosmond@mozilla.com> - Fri, 18 Dec 2020 12:52:00 +0000 - rev 561245
Push 38044 by apavel@mozilla.com at Fri, 18 Dec 2020 21:38:02 +0000
Bug 1682876 - Better handle Linux NVIDIA device resets, and unflushed device resets. r=sotaro,jgilbert These NVIDIA device resets are specific to Linux and trying to handle them more gracefully is increasingly difficult. There are many textures/buffers that we need to clear inside WebRender, but attempting to add them to the list has proved difficult due to the number of places we need to add, as well as race conditions with clearing them. Given this shouldn't happen often, it doesn't seem worth optimizing for and we should treat it just as an innocent device reset. Testing this revealed an issue during recovery where unflushed device resets were not handled as expected. When we checked for errors after creating a new GL context, we would encounter a GL_CONTEXT_LOST error which we failed to recover from. This is because we called GLContext::fGetError instead of the GL method directly; the context lost state was saved in mContextLost, and any subsequent calls to GLContext::fGetError would continue to return GL_CONTEXT_LOST. Differential Revision: https://phabricator.services.mozilla.com/D99905
f78f7ee4f267ac3fb81e24ed4aad6bcecb90387c: Bug 1681671 - Ensure we clear cached DMABuf textures during an NVIDIA video memory device reset. r=sotaro
Andrew Osmond <aosmond@mozilla.com> - Mon, 14 Dec 2020 00:26:18 +0000 - rev 560458
Push 38028 by ncsoregi@mozilla.com at Mon, 14 Dec 2020 09:10:23 +0000
Bug 1681671 - Ensure we clear cached DMABuf textures during an NVIDIA video memory device reset. r=sotaro Differential Revision: https://phabricator.services.mozilla.com/D99597
b98b945b1c0a3975268c15cbd0d4fee225ac9e64: Bug 1632698 - Better handle device resets when we don't have a GPU process. r=sotaro,kvark,nical
Andrew Osmond <aosmond@mozilla.com> - Mon, 07 Dec 2020 20:36:11 +0000 - rev 559735
Push 38012 by dluca@mozilla.com at Tue, 08 Dec 2020 09:45:00 +0000
Bug 1632698 - Better handle device resets when we don't have a GPU process. r=sotaro,kvark,nical Aside from on Windows, we do not appear to handle device resets properly without the GPU process. This patch adds in the necessary plumbing to handle the device reset properly. It also ensures that whenever we check for a device reset reason, we handle all of the reasons (e.g. not just the NV video memory purge reset reason) to ensure they are not lost, and handles them all consistently in the same manner. It also tracks the number of device resets for thresholding purposes with an in process compositor. While it will only disable WebRender on Linux at this time, it will put a note in the critical log if the threshold was exceeded on all platforms. This may prove useful in evaluating whether or not we should do the same everywhere. Differential Revision: https://phabricator.services.mozilla.com/D98705
725a749ea5e94c218da51a56a2da427a0b830e20: Bug 1679652 - Ensure we reset the compositor window when we're creating a compositor that won't use it. r=sotaro
Matt Woodrow <mwoodrow@mozilla.com> - Mon, 30 Nov 2020 01:32:22 +0000 - rev 558613
Push 37989 by btara@mozilla.com at Mon, 30 Nov 2020 09:30:31 +0000
Bug 1679652 - Ensure we reset the compositor window when we're creating a compositor that won't use it. r=sotaro Differential Revision: https://phabricator.services.mozilla.com/D98127
fab3a8df22c950649eaba1a292552e8308378570: Bug 1664831. r=sotaro
Matt Woodrow <mwoodrow@mozilla.com> - Mon, 16 Nov 2020 22:41:08 +0000 - rev 557600
Push 37959 by btara@mozilla.com at Tue, 17 Nov 2020 21:55:29 +0000
Bug 1664831. r=sotaro Differential Revision: https://phabricator.services.mozilla.com/D94549
da1e56ed3b88c3b9e7256ac8235779e7a816a976: Bug 1655584 - Flush rendering for popup window configuration changes with GTK. r=sotaro
Andrew Osmond <aosmond@mozilla.com> - Fri, 06 Nov 2020 11:56:13 +0000 - rev 556414
Push 37935 by nbeleuzu@mozilla.com at Mon, 09 Nov 2020 21:53:49 +0000
Bug 1655584 - Flush rendering for popup window configuration changes with GTK. r=sotaro This backs out part of bug 1656211 which turned out to be insufficient. The invalidate rendered frame transaction races with the initial frame rendering of the popup. If it comes in too soon, we will only draw the frame once, and the frame corruption remains. This patch makes us flush the rendering pipeline to ensure we get two separate generate frame events. Differential Revision: https://phabricator.services.mozilla.com/D96157
e9ac2e3b9176ddf3fa0949bd71da74e0518346d4: Bug 1675136 - Remove ForceRedraw message. r=sotaro
Glenn Watson <git@intuitionlibrary.com> - Sun, 08 Nov 2020 19:26:23 +0000 - rev 556347
Push 37933 by rmaries@mozilla.com at Mon, 09 Nov 2020 03:51:54 +0000
Bug 1675136 - Remove ForceRedraw message. r=sotaro This message looks racy and should no longer be required (since picture caching is always enabled and the composite descriptor tracks the image generation and dirty rect of external images). If this _does_ cause a regression, we should fix it by improving the composite descriptor tracking rather than using a message. Differential Revision: https://phabricator.services.mozilla.com/D95813
93e746226b8feb5a5e6a643037ef34496caa26bf: Bug 1675159 - Pt 2 - Expose dirty rects to start_compositing. r=sotaro
Glenn Watson <git@intuitionlibrary.com> - Thu, 05 Nov 2020 20:01:36 +0000 - rev 556061
Push 37925 by apavel@mozilla.com at Fri, 06 Nov 2020 04:14:34 +0000
Bug 1675159 - Pt 2 - Expose dirty rects to start_compositing. r=sotaro Move the calculation of the dirty rects array earlier in frame drawing, and supply that to the `start_compositing` method of the compositor trait. For now, it's assumed that the native compositor wants a single dirty rect, and doesn't use buffer-age functionality. These params will be configurable as part of the compositor capabilities struct in follow up patches. Differential Revision: https://phabricator.services.mozilla.com/D95828
ddbb285e1f3407f8ca7e5dcfb891d2f4c57e7258: Bug 1673906 - Generate a WR epoch for RecvUpdateResources. r=sotaro
Matt Woodrow <mwoodrow@mozilla.com> - Thu, 29 Oct 2020 19:08:12 +0000 - rev 555296
Push 37908 by abutkovits@mozilla.com at Sat, 31 Oct 2020 09:44:45 +0000
Bug 1673906 - Generate a WR epoch for RecvUpdateResources. r=sotaro Differential Revision: https://phabricator.services.mozilla.com/D95103
a6d117305fe677a6aa94d56c69aed454d6fa7a89: Bug 1670793 - Hold animated shared surface until the end of the composite when using software GL. r=sotaro
Matt Woodrow <mwoodrow@mozilla.com> - Wed, 14 Oct 2020 21:02:40 +0000 - rev 553057
Push 37862 by apavel@mozilla.com at Thu, 15 Oct 2020 03:57:02 +0000
Bug 1670793 - Hold animated shared surface until the end of the composite when using software GL. r=sotaro Differential Revision: https://phabricator.services.mozilla.com/D93463
28d4ff01fac358a97a92c8e8cd1b7cc8b400c7a3: Bug 1670014 - Delay querying buffer age until it is actually needed. r=sotaro
Jamie Nicol <jnicol@mozilla.com> - Fri, 09 Oct 2020 08:25:43 +0000 - rev 552358
Push 37848 by ccoroiu@mozilla.com at Fri, 09 Oct 2020 15:35:54 +0000
Bug 1670014 - Delay querying buffer age until it is actually needed. r=sotaro Currently we query the backbuffer age in RenderCompositor::BeginFrame(). Querying the age on android requires the driver to dequeue a new backbuffer. By doing this right at the start of the frame, we may cause the driver to block until a buffer is ready. We don't actually need the buffer age until part way through rendering, in Renderer::composite_simple(), by which point there is a better chance the buffer is available. So move the query to there instead. Differential Revision: https://phabricator.services.mozilla.com/D92950
f8a569152d192cfdd4f80e9dc420062bc8285c83: Bug 1659826 - Lock the d3d texture data during destruction. r=sotaro
Nicolas Silva <nsilva@mozilla.com> - Wed, 07 Oct 2020 10:09:42 +0000 - rev 551826
Push 37842 by apavel@mozilla.com at Wed, 07 Oct 2020 15:50:36 +0000
Bug 1659826 - Lock the d3d texture data during destruction. r=sotaro Differential Revision: https://phabricator.services.mozilla.com/D89623
3ee3485a78c1599ee6c8e9dba3b4fb02d87b1784: Bug 1575765 - Implement KHR_partial_update for webrender. r=sotaro,jgilbert
Jamie Nicol <jnicol@mozilla.com> - Fri, 02 Oct 2020 10:23:56 +0000 - rev 551227
Push 37827 by apavel@mozilla.com at Fri, 02 Oct 2020 15:43:27 +0000
Bug 1575765 - Implement KHR_partial_update for webrender. r=sotaro,jgilbert KHR_partial_update allows us to avoid rerendering the entire backbuffer every frame, and instead only render what has changed on the current frame, as well as the difference between the current backbuffer and the current frontbuffer. It works similarily to EXT_buffer_age, which we already support, with the additional requirement that we must call eglSetDamageRegion each frame before rendering to the backbuffer. Modify GLContextEGL::GetBufferAge() so that it queries the age if either EXT_buffer_age or KHR_partial_update are available. This will now automatically be queried by webrender through the PartialPresentCompositor trait. Add a new function to that trait, set_buffer_damage_region(), whose RenderCompositorEGL implementation calls eglSetDamageRegion(). Call this from composite_simple(), once the damage rect has been calculated but before rendering to the backbuffer. Additionally, change both RenderCompositorEGL and RenderCompositorOGL's implementations of ShouldDrawPreviousPartialPresentRegions() to unconditionally return true, rather than checking for the existence of EXT_buffer_age (or adding a new check for KHR_partial_update). The lack of these extensions does not mean that webrender is able to skip rendering previous frames' damage. Rather the opposite, it means we cannot render *only* the previous frames' damage, and must instead always render the entire buffer. Differential Revision: https://phabricator.services.mozilla.com/D91203
5294a158e801856e522019782f1604fdfb87a131: Bug 1656533 - Handle buffer ages other than 2 for EGL_EXT_buffer_age. r=sotaro,gw
Jamie Nicol <jnicol@mozilla.com> - Fri, 02 Oct 2020 10:23:49 +0000 - rev 551226
Push 37827 by apavel@mozilla.com at Fri, 02 Oct 2020 15:43:27 +0000
Bug 1656533 - Handle buffer ages other than 2 for EGL_EXT_buffer_age. r=sotaro,gw Add a trait PartialPresentCompositor with a function get_buffer_age(), and allow gecko to pass an implementation to webrender during initialization. This allows webrender to query the age of the current backbuffer during compositing. Make webrender track the previous 2 frame's dirty rects, rather than just the previous 1 frame's, allowing it to calculate the total damage rect for buffer ages of up to 3. If the age is greater than 3, treat the entire buffer as invalid. Also handle special cases of ages 0 and 1, 0 meaning the entire buffer is invalid, and 1 meaning the entire buffer is valid. Make gecko stop requesting a full render for buffer ages other than 2, as webrender can now handle these cases itself. Differential Revision: https://phabricator.services.mozilla.com/D91202
48c1532d1d9d2c0467b234e33b430244da97cf5f: Bug 1575765 - Implement KHR_partial_update for webrender. r=sotaro,jgilbert
Jamie Nicol <jnicol@mozilla.com> - Fri, 02 Oct 2020 08:38:29 +0000 - rev 551204
Push 37827 by apavel@mozilla.com at Fri, 02 Oct 2020 15:43:27 +0000
Bug 1575765 - Implement KHR_partial_update for webrender. r=sotaro,jgilbert KHR_partial_update allows us to avoid rerendering the entire backbuffer every frame, and instead only render what has changed on the current frame, as well as the difference between the current backbuffer and the current frontbuffer. It works similarily to EXT_buffer_age, which we already support, with the additional requirement that we must call eglSetDamageRegion each frame before rendering to the backbuffer. Modify GLContextEGL::GetBufferAge() so that it queries the age if either EXT_buffer_age or KHR_partial_update are available. This will now automatically be queried by webrender through the PartialPresentCompositor trait. Add a new function to that trait, set_buffer_damage_region(), whose RenderCompositorEGL implementation calls eglSetDamageRegion(). Call this from composite_simple(), once the damage rect has been calculated but before rendering to the backbuffer. Additionally, change both RenderCompositorEGL and RenderCompositorOGL's implementations of ShouldDrawPreviousPartialPresentRegions() to unconditionally return true, rather than checking for the existence of EXT_buffer_age (or adding a new check for KHR_partial_update). The lack of these extensions does not mean that webrender is able to skip rendering previous frames' damage. Rather the opposite, it means we cannot render *only* the previous frames' damage, and must instead always render the entire buffer. Differential Revision: https://phabricator.services.mozilla.com/D91203
ed9075d9319b3981027a6be92c6baf2fd8691d91: Bug 1656533 - Handle buffer ages other than 2 for EGL_EXT_buffer_age. r=sotaro,gw
Jamie Nicol <jnicol@mozilla.com> - Fri, 02 Oct 2020 09:04:09 +0000 - rev 551203
Push 37827 by apavel@mozilla.com at Fri, 02 Oct 2020 15:43:27 +0000
Bug 1656533 - Handle buffer ages other than 2 for EGL_EXT_buffer_age. r=sotaro,gw Add a trait PartialPresentCompositor with a function get_buffer_age(), and allow gecko to pass an implementation to webrender during initialization. This allows webrender to query the age of the current backbuffer during compositing. Make webrender track the previous 2 frame's dirty rects, rather than just the previous 1 frame's, allowing it to calculate the total damage rect for buffer ages of up to 3. If the age is greater than 3, treat the entire buffer as invalid. Also handle special cases of ages 0 and 1, 0 meaning the entire buffer is invalid, and 1 meaning the entire buffer is valid. Make gecko stop requesting a full render for buffer ages other than 2, as webrender can now handle these cases itself. Differential Revision: https://phabricator.services.mozilla.com/D91202
7f3b6f4442eb2efce37811f831d081a15a7facc6: Bug 1640858 - Fix damage region calculation for eglSwapBuffersWithDamage. r=sotaro
Jamie Nicol <jnicol@mozilla.com> - Wed, 30 Sep 2020 12:53:13 +0000 - rev 550901
Push 37823 by cbrindusan@mozilla.com at Wed, 30 Sep 2020 21:45:29 +0000
Bug 1640858 - Fix damage region calculation for eglSwapBuffersWithDamage. r=sotaro Webrender provides dirty rects with a top-left origin, whereas EGL requires bottom-left. We also clamp the region to the framebuffer size prior to passing it to EGL. There was a bug in this calculation when the dirty rect had a negative y-offset and a height greater than the framebuffer's height. This was causing too little of the screen to be updated in some circumstances, resulting in stale content. Note that this is only an issue when gfx.webrender.max-partial-present-rects != 0. Differential Revision: https://phabricator.services.mozilla.com/D91714
114f01487ff1b3a87e40ce9877dce4d352756885: Bug 1659826 - Don't schedule destroying draw targets on the paint thread. r=sotaro
Nicolas Silva <nsilva@mozilla.com> - Tue, 15 Sep 2020 17:13:14 +0000 - rev 549265
Push 37793 by cbrindusan@mozilla.com at Fri, 18 Sep 2020 15:11:18 +0000
Bug 1659826 - Don't schedule destroying draw targets on the paint thread. r=sotaro Differential Revision: https://phabricator.services.mozilla.com/D89719
9b0831b5b79dd1a355ed3988e58910aec79b7b61: Bug 1460959 [Linux] Clear alpha channel from decoded video on BasicCompositor, r=sotaro
stransky <stransky@redhat.com> - Thu, 03 Sep 2020 12:59:25 +0000 - rev 547647
Push 37753 by btara@mozilla.com at Fri, 04 Sep 2020 03:35:04 +0000
Bug 1460959 [Linux] Clear alpha channel from decoded video on BasicCompositor, r=sotaro libyuv library used for software decode UYV video formats to RGB produces also alpha for RGBX formats. As we use OP_OVER in Basic compositor, the alpha channel is copied to final surface which is sent to window manager. When alpha X11 visual is used, the bogus alpha information is used for blending and the video is transparent, co we need to clear the alpha information from the video surface. Differential Revision: https://phabricator.services.mozilla.com/D88558
d32596b492b1dd445c974ced67bf86ce18d7ca5e: Bug 1654459 - Don't use single-buffer SurfaceTexture on emulator r=sotaro
James Willcox <snorp@snorp.net> - Wed, 02 Sep 2020 00:13:15 +0000 - rev 547463
Push 37750 by nerli@mozilla.com at Wed, 02 Sep 2020 21:57:21 +0000
Bug 1654459 - Don't use single-buffer SurfaceTexture on emulator r=sotaro Differential Revision: https://phabricator.services.mozilla.com/D89041
4ad9da0a519314f6df4c4a2beabc2babbb869e3f: Bug 1659681 - Avoid crash in ~SharedSurace_SurfaceTexture() when GLContext is lost r=sotaro,jgilbert
James Willcox <snorp@snorp.net> - Tue, 01 Sep 2020 13:00:39 +0000 - rev 547274
Push 37748 by apavel@mozilla.com at Wed, 02 Sep 2020 03:31:14 +0000
Bug 1659681 - Avoid crash in ~SharedSurace_SurfaceTexture() when GLContext is lost r=sotaro,jgilbert Differential Revision: https://phabricator.services.mozilla.com/D88889
eabc3a71bc7faf649b3ab72e4404663d83d83966: Bug 1620830 [Linux] Don't create DMABUFTextureData when dmabuf surface creation fails, r=sotaro
Martin Stransky <stransky@redhat.com> - Mon, 24 Aug 2020 06:38:09 +0000 - rev 545778
Push 37727 by csabou@mozilla.com at Mon, 24 Aug 2020 21:50:21 +0000
Bug 1620830 [Linux] Don't create DMABUFTextureData when dmabuf surface creation fails, r=sotaro Differential Revision: https://phabricator.services.mozilla.com/D87876
192bcaecf2693450eadc00bf225a47d4b91b28f1: Bug 1656034 - Support multiple EglDisplays per GLLibraryEGL. r=lsalzman,sotaro,stransky
Jeff Gilbert <jgilbert@mozilla.com> - Fri, 07 Aug 2020 07:14:46 +0000 - rev 543720
Push 37680 by nerli@mozilla.com at Fri, 07 Aug 2020 15:28:23 +0000
Bug 1656034 - Support multiple EglDisplays per GLLibraryEGL. r=lsalzman,sotaro,stransky Have webrender use its own EGLDisplay, letting WebGL use a different one. Differential Revision: https://phabricator.services.mozilla.com/D85496
f1f10f791e991b44a2abbb3db989f9c3aa4f72e5: Bug 1656034 - Support multiple EglDisplays per GLLibraryEGL. r=lsalzman,sotaro,stransky
Jeff Gilbert <jgilbert@mozilla.com> - Thu, 06 Aug 2020 22:53:53 +0000 - rev 543674
Push 37677 by malexandru@mozilla.com at Fri, 07 Aug 2020 03:32:06 +0000
Bug 1656034 - Support multiple EglDisplays per GLLibraryEGL. r=lsalzman,sotaro,stransky Have webrender use its own EGLDisplay, letting WebGL use a different one. Differential Revision: https://phabricator.services.mozilla.com/D85496
06538f141210b2683b8efa822ad90cb267eeacf2: Bug 1656034 - Support multiple EglDisplays per GLLibraryEGL. r=lsalzman,sotaro,stransky
Jeff Gilbert <jgilbert@mozilla.com> - Thu, 06 Aug 2020 19:56:43 +0000 - rev 543644
Push 37677 by malexandru@mozilla.com at Fri, 07 Aug 2020 03:32:06 +0000
Bug 1656034 - Support multiple EglDisplays per GLLibraryEGL. r=lsalzman,sotaro,stransky Have webrender use its own EGLDisplay, letting WebGL use a different one. Differential Revision: https://phabricator.services.mozilla.com/D85496
2ce5cfe5cbe9c4331b547293db3b1e188d006de9: Bug 1653166 - Add transforms to WebRender Compositor API. r=gw,mstange,sotaro
Matt Woodrow <mwoodrow@mozilla.com> - Tue, 04 Aug 2020 01:19:59 +0000 - rev 543158
Push 37666 by malexandru@mozilla.com at Tue, 04 Aug 2020 09:13:27 +0000
Bug 1653166 - Add transforms to WebRender Compositor API. r=gw,mstange,sotaro Differential Revision: https://phabricator.services.mozilla.com/D84328
6be7121313821d238f3944b666e92bfe33c4923e: Bug 1655747 [Linux] Implement SurfaceFormat::YUV format for DMABUFTextureHostOGL, r=sotaro
Martin Stransky <stransky@redhat.com> - Thu, 30 Jul 2020 18:52:40 +0000 - rev 542667
Push 37653 by btara@mozilla.com at Thu, 30 Jul 2020 21:54:52 +0000
Bug 1655747 [Linux] Implement SurfaceFormat::YUV format for DMABUFTextureHostOGL, r=sotaro Differential Revision: https://phabricator.services.mozilla.com/D85270
d425dd5dee9504e22b8dee70f1e935a98e5ef07c: Bug 1652181 - Only call UpdateBias when the frame changes. r=sotaro
Jeff Muizelaar <jmuizelaar@mozilla.com> - Sat, 11 Jul 2020 00:17:31 +0000 - rev 540024
Push 37588 by abutkovits@mozilla.com at Sat, 11 Jul 2020 09:22:23 +0000
Bug 1652181 - Only call UpdateBias when the frame changes. r=sotaro Previously we were calling it at 60fps for 30fps video. This meant that any bias would be cancelled out on the vsyncs where we didn't present anything. This also makes us match the non-WebRender path which only calls UpdateBias after a frame has actually been drawn. Differential Revision: https://phabricator.services.mozilla.com/D83211
1ff743b3d002fb839e3533abbbb612f10fffec8b: Bug 1650728 - Don't synchronously dispatch a task to create a TextureClientRecycleAllocator. r=sotaro
Jean-Yves Avenard <jyavenard@mozilla.com> - Sat, 11 Jul 2020 01:57:06 +0000 - rev 540022
Push 37588 by abutkovits@mozilla.com at Sat, 11 Jul 2020 09:22:23 +0000
Bug 1650728 - Don't synchronously dispatch a task to create a TextureClientRecycleAllocator. r=sotaro Additionally, we make access to mTextureClientRecycler, mHandle and mIsAsync thread-safe as they are accessed and set from different threads Differential Revision: https://phabricator.services.mozilla.com/D82339
8cf433954cb59bb13bd4af87ea411d50c6910987: Bug 1536515 - Part 3: Add RenderExternalTextureHost r=sotaro
Miko Mynttinen <mikokm@gmail.com> - Tue, 07 Jul 2020 17:57:22 +0000 - rev 539163
Push 37578 by btara@mozilla.com at Wed, 08 Jul 2020 09:42:17 +0000
Bug 1536515 - Part 3: Add RenderExternalTextureHost r=sotaro Differential Revision: https://phabricator.services.mozilla.com/D80506
4f044c37af6f57e15d364baf95c8a582c1d4b281: Bug 1650113 [Linux] Use DMABufTextures only when Wayland support is build, r=sotaro
Martin Stransky <stransky@redhat.com> - Fri, 03 Jul 2020 12:59:53 +0000 - rev 538719
Push 37567 by dluca@mozilla.com at Fri, 03 Jul 2020 21:50:22 +0000
Bug 1650113 [Linux] Use DMABufTextures only when Wayland support is build, r=sotaro Differential Revision: https://phabricator.services.mozilla.com/D82177
302e247cab125b7b26490d77e6cc431f11f5d09b: Bug 1649120 [Linux] Rename Wayland/DMABuf in gfx code, r=sotaro
Martin Stransky <stransky@redhat.com> - Wed, 01 Jul 2020 11:22:42 +0000 - rev 538182
Push 37559 by rmaries@mozilla.com at Wed, 01 Jul 2020 21:32:12 +0000
Bug 1649120 [Linux] Rename Wayland/DMABuf in gfx code, r=sotaro We change DMABuf config keys from Wayland specific to universal ones as they can be used in both X11 and Wayland backends. Depends on D81515 Differential Revision: https://phabricator.services.mozilla.com/D81516
b13d07d81358d6fa1dd00fe9a156e5143523056c: Bug 1622660 - Removed else after return r=sotaro
Danny <danny@erebus.cymru> - Tue, 23 Jun 2020 10:47:05 +0000 - rev 536772
Push 37533 by dluca@mozilla.com at Tue, 23 Jun 2020 21:38:40 +0000
Bug 1622660 - Removed else after return r=sotaro Differential Revision: https://phabricator.services.mozilla.com/D80471
b57b2912400cd8f9c971fe642f4e662a059a32bf: Bug 1645704 [Wayland] Rename WaylandDMABufSurface to DMABufSurface at gxf, r=sotaro
Martin Stransky <stransky@redhat.com> - Sun, 21 Jun 2020 13:59:17 +0000 - rev 536492
Push 37527 by malexandru@mozilla.com at Mon, 22 Jun 2020 03:33:08 +0000
Bug 1645704 [Wayland] Rename WaylandDMABufSurface to DMABufSurface at gxf, r=sotaro Differential Revision: https://phabricator.services.mozilla.com/D79637