This patch fixes some wasted GPU time on mobile devices due to
redundant resolve / copy steps.
In the first case, we would previously do:
- Global clear of color / depth on main framebuffer.
- Bind and draw off-screen targets.
- Bind main framebuffer and draw scene.
Between step 1 and 2, a resolve step is triggered on tiled GPU
drivers, wasting a lot of GPU time. To fix this, the clear is
now deferred until the framebuffer of the first document is
drawn. This does slightly change the semantics of how WR does
clear operations, but I think it works fine and makes more sense.
In the second case, we would previously do:
- ...
- Draw main framebuffer
- End frame and invalidate the contents of input textures.
- Bind main framebuffer and draw debug overlay.
This also introduces an extra resolve / copy step, even if the
debug overlay is not enabled. To fix this, the invalidation step
of the input textures to the main framebuffer pass is deferred
until all drawing is complete on the main framebuffer, by doing
the invalidation in the end_frame() call of the texture resolver.
Together, these save a very significant amount of ms per frame
in GPU time on the mobile devices I tested.
Differential Revision: https://phabricator.services.mozilla.com/D21490
--HG--
extra : moz-landing-system : lando
Use it to be consistent in InsetRect serialization and storage between Servo and
Gecko.
Differential Revision: https://phabricator.services.mozilla.com/D21493
--HG--
extra : moz-landing-system : lando
This is a stab at what the correct approach to this should be. It
seems that we should be using the window size here and not the
screen_rect, as the screen_rect is not used to offset what we
normally draw, but instead generally for scissoring(?). The end
result is if we use an offset screen_rect, we end up applying
the offset of the chrome area twice, once because the document's
screen rect is offset, and once because of the tile.world_rect
offset.
Depends on D20696
Differential Revision: https://phabricator.services.mozilla.com/D20698
--HG--
extra : moz-landing-system : lando
Depends on D21526
This is a request from @mbalfanz in order to keep the naming of the option consistent.
This patch just replaces the l10n string and renames all the places where copyPropertyDeclaration is used in order to avoid confusion.
No functional changes are introduced.
Differential Revision: https://phabricator.services.mozilla.com/D21527
--HG--
extra : moz-landing-system : lando
Adds a new option to the context menu which is visible only when it's invoked on a CSS declaration.
Builds a string with the property name and value and copies to the clipboard.
If the declaration is marked as removed, the string is wrapped in a comment block.
Differential Revision: https://phabricator.services.mozilla.com/D21526
--HG--
extra : moz-landing-system : lando
Remove the `if (!mozilla::IsPointer<T>::value || thing)` check in
GCVariantImplementation::trace, as GCPolicy will dispatch these to
GCPointerPolicy and InternalPointerPolicy (for pointers) and StructGCPolicy (for
non-pointers).
Also use Rooted for prevState_ in AutoSetNewObjectMetadata and remove
inherit from CustomAutoRooter.
Have replace promiseWaitForEvent in browser_findbarClose.js with BrowserTestUtils.waitForEvent
Differential Revision: https://phabricator.services.mozilla.com/D21366
--HG--
extra : moz-landing-system : lando
I've only added support for these, renamed in a couple of error
messages and a few test cases, not renamed all the uses, because there
are so many. Will file followup bugs for that work, but it won't be
urgent.
Note, wabt no longer recognizes get_local et al, it requires local.get
etc. But we should remain backward compatible for a long while still.
Differential Revision: https://phabricator.services.mozilla.com/D21502
--HG--
extra : rebase_source : b78b23ee5edb6121da6884b1bf36336e07ea82ef
This patch rewrites the browser_ext_browserAction_popup.js test file to make it easier to follow the
sequence of its test cases (in the previous version of this test file, the logic that was executing
the sequence of test cases was fragmented in a bunch of listeners, in both the test extension and
the privileged test code) and to make the test able to wait for the popups to be fully loaded or
fully destroyed before moving to the next test case.
Differential Revision: https://phabricator.services.mozilla.com/D21427
--HG--
extra : moz-landing-system : lando
Wabt is now supporting funcref exclusively, and with the reftypes
proposal I think there's broad agreement that we will stop using
anyfunc. So let's accept funcref both in the text format and in the
table creation dictionary, and let's use this name as the canonical
name in error messages and similar.
But let's also continue to accept anyfunc, since there may be
in-flight tests and other content that uses it. This includes a
couple of emscripten-compiled benchmarks currently in the repo; I
chose not to change those.
Differential Revision: https://phabricator.services.mozilla.com/D21388
--HG--
extra : rebase_source : 078ffbac2c3d88b2ce74fdcf06493b4db8000dac