We have to create the websocket if it doesn't exist after enabling
Layerscope. Therefore, we don't have to reboot the device anymore.
1. Remove the Init and DeInit in CreateCompositor and DestroyCompositor
to prevent some unwanted deInits on the browser. (Our browser often
calls DestroyCompositor)
2. Initize websocket only when we need it.
- Layer::ComputeEffectiveTransformForMaskLayer now computes a delta transform
for the mask layer's effective transform using the masked layer's shadow
transform and base transform. This delta is applied to the effective
transform of the mask layer, with the same effect as if it were also
transformed by the APZ.
This introduces some infrastructure to start tracking the program state more carefully. Currently
it only tracks the program because UseProgram was showing up the most in profiles, but more
state could also be added as needed.
--HG--
extra : rebase_source : 289ab867ef63032f7604a6cbe6d0230fd0a9411a
Calling AcquireSync on textures created with
D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX appears to be really slow, this really
bites us with the number of textures involved when tiling.
I've also tested using ID3D11Query to check when work is completed, this also
appears to be pretty slow.
This instead just uses a single texture with a keyedmutex, and makes sure we
draw to it last and lock it first. It's pretty hacky, but seems to work really
well so far.
--HG--
extra : rebase_source : bf5f56751f993e507fcd1e5c386fb1fc9a3f73af
For proper hit-testing we need to deal with situations where the initial touch
input falls on a dispatch-to-content region of an APZC, and the main thread
later tells us that it actually hit another APZC. This patch allows input blocks
to have an "unconfirmed" APZC target for the initially-found target that can
then be replaced with a different target. Input blocks without a confirmed
target are not ready for processing.
Previously we output of APZ hit testing was an APZC instance and an "in
overscroll" flag. Now we need to also distinguish between the hit region and the
dispatch-to-content region for an APZC, so this patch introduces an enum that
makes this more explicit.
Until bug 1082594 is fixed, the area occupied by inactive scrollable subframes
don't get added to their layer's dispatch-to-content region. Therefore the APZ
code doesn't know what area corresponds to the subframe, even though it knows
there is a subframe because of the scrollinfo layer. This change inserts a small
workaround to deal with the scrollinfo layers specially, so that the composition
bounds from the scrollinfo layer is used to obtain the area. Once bug 1082594
is fixed this can probably be removed.