This exposes the capacity of the underlying vec and sets it to the capacity of
the previous display list (mLastDisplayListSize). Doing so helps us avoid
reallocing up to the desired size every frame.
This adds fallbacks for:
* synthetic bold
* synthetic italics
* text-writing-modes
This also removes an old hack to make synthetic italics less broken.
This also prevents special opacity handling for color fonts so that webrender
gets that information.
MozReview-Commit-ID: DKiTUBR6hzy
--HG--
extra : rebase_source : 22b445d40ee46bb09d4325828a8e959d3da7a9c7
By returning true from WebRenderLayerManager::EndEmptyTransaction, we
avoid doing a full paint in cases where the caller decides an empty
transaction would be sufficient. WebRenderLayerManager already rejects
attempts to set some forms of empty-transaction data (specifically
transform and scroll offset updates). This means that we will never get
a call to EndEmptyTransaction where the caller is expecting a transform
or scroll offset update to be sent over to the compositor. So if we have an
implementation of EndEmptyTransaction that ignores that data, it will not
break expectations.
There is still one piece of information that WebRenderLayerManager
doesn't reject in this manner, the APZ focus state. That is, if the
layout code sets a pending APZ focus state on the WRLM, followed by a
all to EndEmptyTransaction, it expects the focus state to get propagated
to the compositor. This patch makes sure that it does happen by using
the new API added in the previous patch.
MozReview-Commit-ID: 596UgW9ZWAF
--HG--
extra : rebase_source : e0f4f201a76747d6e29cde5da26fe760fd7f770b
One of the pieces of information that can be sent to the compositor is
the APZ focus state info, which is used for keyboard APZ. This patch
adds an API that allows updating this outside of a regular WR
"transaction" (i.e. a SetDisplayList call) so that we can use it in an
empty transaction (in the next patch).
MozReview-Commit-ID: L5TCbI9FtGV
--HG--
extra : rebase_source : 427b606a333d83eb82aa566768ba331d34542e8e
Currently some callers attempt to set a "pending scroll offset update"
on the layer tree, which basically allows it to send a scroll offset
update to the compositor in an empty transaction, without doing a full
paint. However, WebRenderLayerManager doesn't really support empty
transactions yet, so we want to reject attempts to do this for now. This
will force the callers to schedule a full transaction instead of an
empty transaction.
MozReview-Commit-ID: 1bBlj59W5HH
--HG--
extra : rebase_source : 0a018989c2681b01ff325e8e2c79c9ff146f04d4
- This patch is the same as one from Bug 1382104 (Remove IsMirror concept
in favor of checking forwarder).
- It is safe to uplift this patch without the rest of Bug 1382104 as long
as the remaining Bug 1381084 is also uplifted.
MozReview-Commit-ID: 21YZObeSUa3
--HG--
extra : rebase_source : 8d543fe69f4ac9df5ccdc42d3ce47bb37eea4396
- VRManagerChild no longer needs to be a TextureForwarder
- VRManagerParent no longer descends from HostIPCAllocator or ShmemAllocator
- PVRManager no longer manages PTexture's
- VRLayerParent::mSize was not used and has been removed
MozReview-Commit-ID: 3bNN5FR5j7M
--HG--
extra : rebase_source : 634277825c00057bca6f8c77cdc942de61d61e9c
This may make the smooth scroll animation feel differently, based on zoom. I'm
not sure if the old workaround for that problem even worked; in any case, it
gave wrong values.
MozReview-Commit-ID: KXD1DPGfbgA
--HG--
extra : rebase_source : d4b4b961b90e339dabb441d9fbf2d2bcec1d04ba
This warning is telling us that we have declared a function in a derived class
with the same name as a virtual function in a base class. The base class functions
can never be called.
In FilterNodeD2D1 we intend to do this (the base class methods are all MOZ_CRASH).
We silence the warning by importing those functions as private so they cannot be
called.
MozReview-Commit-ID: 6ENLKFMMBRy
--HG--
extra : rebase_source : 4230c85f4dca942fad6da347cef341aed5535734
- WebVR is no longer dependent on PTexture, TextureParent,
TextureHost, and TextureChild. It continues to use TextureClient
for pooling and coordinating locks with other Gecko code.
- PreserveDrawingBuffer now behaving correctly for 2d display mirroring
- Preparation for separating to VR process
MozReview-Commit-ID: 2RGOulCInSu
--HG--
extra : rebase_source : 3542b804c3def36fa74541be32d0e7cbc9698641
Bug 1363216 - Turn off std::future for MinGW.
Bug 1331335 - Add SSE2 Flags to all of libANGLE.
Bug 1364169 - on ANGLE context creation asks for robustness but does not get it.
Bug 1370865 - Suppress more MSVC warnings in gfx/angle.
Bug 1373525 - gfx/angle: Suppress -Wimplicit-fallthrough warnings in third-party code.
Bug 1347866 - Part3: ANGLE patch uplift for bug1325733.
Bug 1347866 - Part4: ANGLE patch uplift for bug1325741.
Bug 1322746 - Add general ID3D11Texture2D to EGLStream support to ANGLE.
Bug 1366425 - Avoid losing context on out of memory error for ANGLE.
--HG--
extra : source : 9aa8f8c7fe616638dd496bdf771d158586732056
The method isn't called and the comments referring to it are no longer applicable.
MozReview-Commit-ID: 2FFWhj7wzht
--HG--
extra : rebase_source : 9bc3e9288ce0f38f03a9d33acc902f11703536da
For now, convert 10/12 bits YUV image to 8 bits. Native support will be tracked in bug 1379948
MozReview-Commit-ID: LOr9X5xxKY7
--HG--
extra : rebase_source : 90b39f46cbc9d5233965e3693c620466557eb8e7
There's no guarantee that the stride of the uv planes is twice as wide as the y plane's stride. This relationship is only true between the planes' width.
MozReview-Commit-ID: JInge1c86Z1
--HG--
extra : rebase_source : 0e9cf5be06812712d50a42db7630f396d0020791
We have too many layers-free things in WebRenderLayerManager. I create a new
class WebRenderCommandsBuilder and move some functions and variables from
WebRenderLayerManager to WebRenderCommandsBuilder.
MozReview-Commit-ID: BJi1E51W7ax
--HG--
extra : rebase_source : ddbfb044d467430403a3c480030ef9dec803c9f7
This is basically just this: https://bugs.chromium.org/p/chromium/issues/detail?id=562951
The original profile that caused us to add this check has bigger problems than negative
colorant tristiumlus values. We should reject it using a better metric. In the mean time
let's not reject these things on macOS.
- A user gesture is required only for the VRDisplay.requestPresent
call that initiates the VR presentation, as per the WebVR 1.1 spec.
- The parameters of the VRLayer can now be updated by calling
VRDisplay.requestPresent on an active VR presentation.
- Dynamic resolution switching is now functional:
https://webvr.info/samples/08-dynamic-resolution.html
iMozReview-Commit-ID: BL7aJfF6nqR
MozReview-Commit-ID: CmhbFJ4ij5q
--HG--
extra : rebase_source : 28a3f608b4f821631e81ccdfe7f7824f9508a7b4
We currently allow the content process to shutdown the IPDL objects on
behalf the parent, and we wait for all of these instances to be freed
before we complete shutdown. This is undesirable because it requires the
parent to trust the child rather than the other way around; the child
can hold shutdown hostage by simply not releasing its instances. The
child should already support the parent closing its graphics IPDL
objects because the GPU process itself can die abruptly and be restored
at a later time.
This patch:
- adds fails-if annotations for all the reftests that were consistently failing
with layers-free turned on.
- removes fails-if or reduces the range on fuzzy-if annotations for all
the reftests that were producing UNEXPECTED-PASS results with
layers-free turned on.
- adds skip-if, random-if, or fuzzy-if annotations to the reftests that
were intermittently failing due to timeout, obvious incorrectness, or
slight pixel differences, respectively.
MozReview-Commit-ID: A0Aknn6rnjj
--HG--
extra : rebase_source : 420d9cf43f23a5d654fa36eec69138937d13c173
Windows detection was broken for the MinGW build. This pulls
in the upstream patch from
https://bugs.chromium.org/p/skia/issues/detail?id=6635
MozReview-Commit-ID: D0ZRIDaPmim
--HG--
extra : rebase_source : d20b6bd4bb1b2a93996775d36fe1c8484d0b0f85
The assembly code is not working in the MinGW build, so we
rebase and pull in the upstream commit that adds support for
not using the optimized jumper assembly code.
https://skia.googlesource.com/skia/+/6492afa7971cf295a3c3cb92a85218917c02bb4a
MozReview-Commit-ID: CARHRTHmQ0i
--HG--
extra : rebase_source : c6d9f19f8742a337e6ab3342d34118f37da71ae7
- Using a separate ID3DDeviceContextState ensures
that the WebVR context does not stomp over the
mirrored state used by the MLGPU "Advanced" Layers rendering.
MozReview-Commit-ID: 99mfdsjFrMI
--HG--
extra : rebase_source : 599df3b1344ca1489cbb13169313dff8e767c399
This patch merges nsAtom into nsIAtom. For the moment, both names can be used
interchangeably due to a typedef. The patch also devirtualizes nsIAtom, by
making it not inherit from nsISupports, removing NS_DECL_NSIATOM, and dropping
the use of NS_IMETHOD_. It also removes nsIAtom's IIDs.
These changes trigger knock-on changes throughout the codebase, changing the
types of lots of things as follows.
- nsCOMPtr<nsIAtom> --> RefPtr<nsIAtom>
- nsCOMArray<nsIAtom> --> nsTArray<RefPtr<nsIAtom>>
- Count() --> Length()
- ObjectAt() --> ElementAt()
- AppendObject() --> AppendElement()
- RemoveObjectAt() --> RemoveElementAt()
- ns*Hashtable<nsISupportsHashKey, ...> -->
ns*Hashtable<nsRefPtrHashKey<nsIAtom>, ...>
- nsInterfaceHashtable<T, nsIAtom> --> nsRefPtrHashtable<T, nsIAtom>
- This requires adding a Get() method to nsRefPtrHashtable that it lacks but
nsInterfaceHashtable has.
- nsCOMPtr<nsIMutableArray> --> nsTArray<RefPtr<nsIAtom>>
- nsArrayBase::Create() --> nsTArray()
- GetLength() --> Length()
- do_QueryElementAt() --> operator[]
The patch also has some changes to Rust code that manipulates nsIAtom.
MozReview-Commit-ID: DykOl8aEnUJ
--HG--
extra : rebase_source : 254404e318e94b4c93ec8d4081ff0f0fda8aa7d1