gecko-dev/gfx/layers/basic
Markus Stange 196229f42d Bug 1629220 - When partially compositing into native layers with BasicCompositor, allow only one invalid rect per layer, and store the invalid rect on the render target instead of pushing a clip to the DrawTarget. r=mattwoodrow
This matches what we do in CompositorOGL.

This avoids having clipping state stored on the render target's DrawTarget.
As a result, we have access to the combined device clip rect in DrawGeometry,
and the video scale fast paths can observe the correct clip even though they
bypass the DrawTarget machinery.

This fixes flickering bugs caused by the video scale fast path in the native
layers configuration, i.e. on macOS only. We probably still have bugs on the
other platforms. It's possible that this bug is less observable on other
platforms due to additional copies of the invalid region, and those copies
ignore the bad content outside the invalid region.

Differential Revision: https://phabricator.services.mozilla.com/D86608
2020-08-11 14:37:56 +00:00
..
AutoMaskData.h
BasicCanvasLayer.cpp Bug 1647167 - Run pre/post transaction triggers in BasicCanvasLayer::Paint. r=mattwoodrow 2020-07-02 22:55:48 +00:00
BasicCanvasLayer.h Bug 1632249 - Support compositing out-of-process WebGL. r=handyman,lsalzman,nical,geckoview-reviewers,agi,imanol 2020-06-15 18:25:55 +00:00
BasicColorLayer.cpp
BasicCompositor.cpp Bug 1629220 - When partially compositing into native layers with BasicCompositor, allow only one invalid rect per layer, and store the invalid rect on the render target instead of pushing a clip to the DrawTarget. r=mattwoodrow 2020-08-11 14:37:56 +00:00
BasicCompositor.h Bug 1629220 - When partially compositing into native layers with BasicCompositor, allow only one invalid rect per layer, and store the invalid rect on the render target instead of pushing a clip to the DrawTarget. r=mattwoodrow 2020-08-11 14:37:56 +00:00
BasicContainerLayer.cpp
BasicContainerLayer.h
BasicImageLayer.cpp
BasicImages.cpp
BasicImplData.h
BasicLayerManager.cpp
BasicLayers.h
BasicLayersImpl.cpp
BasicLayersImpl.h
BasicPaintedLayer.cpp
BasicPaintedLayer.h
MacIOSurfaceTextureHostBasic.cpp
MacIOSurfaceTextureHostBasic.h
TextureClientX11.cpp
TextureClientX11.h
TextureHostBasic.cpp
TextureHostBasic.h
X11BasicCompositor.cpp
X11BasicCompositor.h
X11TextureSourceBasic.cpp
X11TextureSourceBasic.h