When EGL_LOSE_CONTEXT_ON_RESET is set by CreateContextFlags::PREFER_ROBUSTNESS flag, ANGLE avoids to release D3D resources when ANGLE detects device reset. It is necessary to avoid nullptr dereference in ANGLE.
Differential Revision: https://phabricator.services.mozilla.com/D58348
--HG--
extra : moz-landing-system : lando
Log in wr_renderer_lock_external_image() overflowed "Failure Log" in about:support when an error. gfxCriticalNoteOnce could reduce the error log in about:support.
Differential Revision: https://phabricator.services.mozilla.com/D58741
--HG--
extra : moz-landing-system : lando
This will allow use of the DirectComposition virtual surface API. If
it turns out that some pages recreate surfaces a lot due to opacity
changing, we can add some extra logic to avoid recreating surfaces
as often, and making use of per-tile opacity in some cases.
Differential Revision: https://phabricator.services.mozilla.com/D57592
--HG--
extra : moz-landing-system : lando
Use the new utility function, introduced in Part 3, to implement async plugin surface's read to CPU texture.
Differential Revision: https://phabricator.services.mozilla.com/D57564
--HG--
extra : moz-landing-system : lando
Refactor D3D11ShareHandleImage::GetAsSourceSurface to use the new utility method added in Part 3.
Differential Revision: https://phabricator.services.mozilla.com/D57563
--HG--
extra : moz-landing-system : lando
CreateBGRA8DataSourceSurfaceForD3D11Texture is added to create a CPU texture with the same data as the given D3D11 texture. ReadbackTexture reads a D3D11 texture into a pre-existing CPU texture. ToPixelFormat is extended to cover DXGI_FORMAT values.
Differential Revision: https://phabricator.services.mozilla.com/D57562
--HG--
extra : moz-landing-system : lando
The only reason BufferTexture needs a LayersIPCChannel instead of the IShmemAllocator base interface is that it needs to know if the allocator is cross-process or not. Both LayersIPCChannel and ISurfaceAllocator use IsSameProcess() for this but without a common interface for it. Rather than further complicate the inheritance diagram for the layers and IPDL core classes, this patch makes BufferTexture handle both with generic code.
Differential Revision: https://phabricator.services.mozilla.com/D56225
--HG--
extra : moz-landing-system : lando
IShmemAllocator was introduced in bug 1272018 as a planned replacement for ShmemAllocator. They are essentially the same interface. This patch removes ShmemAllocator.
Differential Revision: https://phabricator.services.mozilla.com/D56224
--HG--
extra : moz-landing-system : lando
StartTouch() sets axis fields like mAxisLocked which can be read by the
sampler thread by GetVelocity().
Differential Revision: https://phabricator.services.mozilla.com/D58658
--HG--
extra : moz-landing-system : lando
This patch suppresses VR device access permission prompts for users that do not have any VR runtimes installed.
We could not depend on the existing VR device enumeration functions to suppress the permission prompts, as the
act of enumerating VR devices will result in some hardware physically powering on and software starting up (and staying running)
in the background.
This patch includes logic to spawn the VR process with an additional flag indicating that it should attempt only to detect the
runtimes, without proceeding to enumerate and activate hardware and software.
VRManager now includes an enum to more clearly organize it's state machine model, which now must ensure that the runtime detection
happens on-demand when the VR session support capabilities are first determined.
There is a new pref to disable the suppression of permission prompts for use within permission UI tests on machines without VR runtimes.
Renamed some variables and added comments to make code in nsGlobalWindowInner and Navigator clearer and better represent the updated logic -- to allow the separate detection of VR runtimes and VR session activation. Both the runtime detection and VR
session activity uses VREventObserver to send events to nsGlobalWindowInner.
Differential Revision: https://phabricator.services.mozilla.com/D57568
--HG--
extra : moz-landing-system : lando
I'm not quite familiar with the history of this code, but Gnome a11y settings
set the scale to 1.25 (which gives 120dpi). We were rounding it away, which
seems quite unfortunate.
Differential Revision: https://phabricator.services.mozilla.com/D58279
--HG--
extra : moz-landing-system : lando
Suggestions for a better name than "snapshotter" are welcome.
This is a separate object so that the lifetime of its GLContext isn't governed by the lifetime of the NativeLayerRootCA.
The NativeLayerRootCA gets destroyed on the main thread, but GLContext uses non-threadsafe weak pointer support, so it wants to be destroyed on the same thread that it was created on.
So now the GLContext lives on the snapshotter, which is created and destroyed on the renderer thread.
Differential Revision: https://phabricator.services.mozilla.com/D57068
--HG--
extra : moz-landing-system : lando
The onscreen representation is attached to the NSView.
The offscreen representation is free-floating but will be used in a CARenderer in an upcoming patch.
Each representation is only updated on demand.
Differential Revision: https://phabricator.services.mozilla.com/D57067
--HG--
extra : moz-landing-system : lando
This will allow us to have two representations per NativeLayerCA in the next patch.
Differential Revision: https://phabricator.services.mozilla.com/D57066
--HG--
extra : moz-landing-system : lando
This makes it more similar to how SwapBuffers was used.
This patch also makes us call glFlush directly when using native layers, rather than going through the misleadingly-named GLContext::SwapBuffers method.
Differential Revision: https://phabricator.services.mozilla.com/D57062
--HG--
extra : moz-landing-system : lando
When one uses SourceSurfaceRawData to wrap a data pointer, it will
perform a copy of said data if GuaranteePersistence is called. This is
done for DrawTargetCapture, which is used with OMTP. Prior to this
patch, image surfaces would be wrapped by a SourceSurfaceRawData when
using the basic compositor on any non-Linux platform (since Linux does
not support volatile memory). This means every time imgFrame::Draw is
called with OMTP, a copy of the image will be made. Images don't need
this property since the data is already going to persist, so this patch
adds a new class SourceSurfaceMappedData, which takes a ScopedMap
keeping the underlying surface open and readable.
Differential Revision: https://phabricator.services.mozilla.com/D58199
--HG--
extra : moz-landing-system : lando
Use the new utility function, introduced in Part 3, to implement async plugin surface's read to CPU texture.
Differential Revision: https://phabricator.services.mozilla.com/D57564
--HG--
extra : moz-landing-system : lando
Refactor D3D11ShareHandleImage::GetAsSourceSurface to use the new utility method added in Part 3.
Differential Revision: https://phabricator.services.mozilla.com/D57563
--HG--
extra : moz-landing-system : lando
CreateBGRA8DataSourceSurfaceForD3D11Texture is added to create a CPU texture with the same data as the given D3D11 texture. ReadbackSharedTexture reads a D3D11 texture into a pre-existing CPU texture. ToPixelFormat is extended to cover DXGI_FORMAT values.
Differential Revision: https://phabricator.services.mozilla.com/D57562
--HG--
extra : moz-landing-system : lando
The only reason BufferTexture needs a LayersIPCChannel instead of the IShmemAllocator base interface is that it needs to know if the allocator is cross-process or not. Both LayersIPCChannel and ISurfaceAllocator use IsSameProcess() for this but without a common interface for it. Rather than further complicate the inheritance diagram for the layers and IPDL core classes, this patch makes BufferTexture handle both with generic code.
Differential Revision: https://phabricator.services.mozilla.com/D56225
--HG--
extra : moz-landing-system : lando
IShmemAllocator was introduced in bug 1272018 as a planned replacement for ShmemAllocator. They are essentially the same interface. This patch removes ShmemAllocator.
Differential Revision: https://phabricator.services.mozilla.com/D56224
--HG--
extra : moz-landing-system : lando
* Fix crash due to shift left causing overflow (debug only)
* Remove rounding of scrolling offsets and snap to view space instead of
world space
Differential Revision: https://phabricator.services.mozilla.com/D57017
--HG--
extra : moz-landing-system : lando
* Fix crash due to shift left causing overflow (debug only)
* Remove rounding of scrolling offsets and snap to view space instead of
world space
Differential Revision: https://phabricator.services.mozilla.com/D57017
--HG--
extra : moz-landing-system : lando