Closed
Bug 1180326
Opened 10 years ago
Closed 10 years ago
Create a new ContentClient that supports async transaction without minimum size
Categories
(Core :: Graphics: Layers, defect)
Tracking
()
RESOLVED
FIXED
mozilla42
Tracking | Status | |
---|---|---|
firefox42 | --- | fixed |
People
(Reporter: mattwoodrow, Assigned: mattwoodrow)
References
Details
(Whiteboard: [backout-asap])
Attachments
(6 files, 10 obsolete files)
47.61 KB,
patch
|
jrmuizel
:
review+
|
Details | Diff | Splinter Review |
4.63 KB,
patch
|
jrmuizel
:
review+
|
Details | Diff | Splinter Review |
10.89 KB,
patch
|
jrmuizel
:
review+
|
Details | Diff | Splinter Review |
15.69 KB,
patch
|
jrmuizel
:
review+
|
Details | Diff | Splinter Review |
1.69 KB,
patch
|
jrmuizel
:
review+
|
Details | Diff | Splinter Review |
4.36 KB,
patch
|
jrmuizel
:
review+
|
Details | Diff | Splinter Review |
Most of our current ContentClients require sync transactions, except for tiling which has a fixed minimum size (that we want to increase).
We want a new simple ContentClient implementation that supports async transactions for small layers that we can use for non-scrollable layers.
Assignee | ||
Comment 1•10 years ago
|
||
Assignee | ||
Comment 2•10 years ago
|
||
Assignee | ||
Comment 3•10 years ago
|
||
Assignee | ||
Comment 4•10 years ago
|
||
Assignee | ||
Comment 5•10 years ago
|
||
Attachment #8629520 -
Attachment is obsolete: true
Assignee | ||
Comment 6•10 years ago
|
||
Attachment #8629521 -
Attachment is obsolete: true
Assignee | ||
Comment 7•10 years ago
|
||
Attachment #8629522 -
Attachment is obsolete: true
Assignee | ||
Comment 8•10 years ago
|
||
Attachment #8629523 -
Attachment is obsolete: true
Assignee | ||
Comment 9•10 years ago
|
||
Assignee | ||
Comment 10•10 years ago
|
||
Assignee | ||
Updated•10 years ago
|
Attachment #8630212 -
Flags: review?(jmuizelaar)
Assignee | ||
Updated•10 years ago
|
Attachment #8630213 -
Flags: review?(jmuizelaar)
Assignee | ||
Comment 11•10 years ago
|
||
Attachment #8630212 -
Attachment is obsolete: true
Attachment #8630212 -
Flags: review?(jmuizelaar)
Attachment #8631313 -
Flags: review?(jmuizelaar)
Assignee | ||
Comment 12•10 years ago
|
||
Attachment #8630213 -
Attachment is obsolete: true
Attachment #8630213 -
Flags: review?(jmuizelaar)
Attachment #8631315 -
Flags: review?(jmuizelaar)
Assignee | ||
Comment 13•10 years ago
|
||
Attachment #8630214 -
Attachment is obsolete: true
Attachment #8631317 -
Flags: review?(jmuizelaar)
Assignee | ||
Comment 14•10 years ago
|
||
Attachment #8630215 -
Attachment is obsolete: true
Attachment #8631318 -
Flags: review?(jmuizelaar)
Assignee | ||
Comment 15•10 years ago
|
||
Attachment #8630216 -
Attachment is obsolete: true
Attachment #8631319 -
Flags: review?(jmuizelaar)
Assignee | ||
Comment 16•10 years ago
|
||
Attachment #8630218 -
Attachment is obsolete: true
Attachment #8631320 -
Flags: review?(jmuizelaar)
Comment 17•10 years ago
|
||
Comment on attachment 8631315 [details] [diff] [review]
Part 2: Add support for variable tile sizes
Review of attachment 8631315 [details] [diff] [review]:
-----------------------------------------------------------------
::: gfx/layers/TiledLayerBuffer.h
@@ +193,5 @@
> nsTArray<Tile> mRetainedTiles;
> TilesPlacement mTiles;
> float mResolution;
> gfx::IntSize mTileSize;
> + gfx::IntPoint mTileOrigin;
Include a coordinate space in the type here.
Updated•10 years ago
|
Attachment #8631319 -
Flags: review?(jmuizelaar) → review+
Updated•10 years ago
|
Attachment #8631313 -
Flags: review?(jmuizelaar) → review+
Comment 18•10 years ago
|
||
Comment on attachment 8631318 [details] [diff] [review]
Part 4: Add new content client
Review of attachment 8631318 [details] [diff] [review]:
-----------------------------------------------------------------
::: gfx/layers/client/ClientTiledPaintedLayer.cpp
@@ +233,5 @@
> if (!gfxPlatform::GetPlatform()->UseProgressivePaint()) {
> // pref is disabled, so never do progressive
> return false;
> }
> +
Whitespace
::: gfx/layers/client/SingleTiledContentClient.cpp
@@ +143,5 @@
> +
> + extraPainted.MoveBy(mTilingOrigin);
> + extraPainted.And(extraPainted, aNewValidRegion);
> + mPaintedRegion.OrWith(paintRegion);
> + mPaintedRegion.Or(mPaintedRegion, extraPainted);
mPaintedRegion.OrWith(extraPainted);
@@ +184,5 @@
> + }
> +
> + // Mark the area we just drew into the back buffer as invalid in the front buffer as they're
> + // now out of sync.
> + mTile.mInvalidFront.Or(mTile.mInvalidFront, paintRegion);
OrWith
::: gfx/layers/client/SingleTiledContentClient.h
@@ +126,5 @@
> + virtual ClientTiledLayerBuffer* GetTiledBuffer() override { return mTiledBuffer; }
> + virtual ClientTiledLayerBuffer* GetLowPrecisionTiledBuffer() override { return nullptr; }
> +
> +private:
> + nsRefPtr<ClientSingleTiledLayerBuffer> mTiledBuffer;
Can't this just be:
ClientSingleTiledLayerBuffer mTiledBuffer;
It seems like the relationship is always 1:1
::: gfx/layers/client/TiledContentClient.h
@@ +411,5 @@
> const nsIntRegion& aPaintRegion,
> LayerManager::DrawPaintedLayerCallback aCallback,
> void* aCallbackData) = 0;
>
> + virtual bool SupportsProgressiveUpdate() { return true; }
It probably makes sense for this to be pure virtual like ProgressiveUpdate.
Attachment #8631318 -
Flags: review?(jmuizelaar) → review+
Updated•10 years ago
|
Attachment #8631320 -
Flags: review?(jmuizelaar) → review+
Updated•10 years ago
|
Attachment #8631315 -
Flags: review?(jmuizelaar) → review+
Updated•10 years ago
|
Attachment #8631317 -
Flags: review?(jmuizelaar) → review+
Comment 19•10 years ago
|
||
https://hg.mozilla.org/integration/mozilla-inbound/rev/24d32648073c
https://hg.mozilla.org/integration/mozilla-inbound/rev/e1bfa923a761
https://hg.mozilla.org/integration/mozilla-inbound/rev/6b9ace2a57ab
https://hg.mozilla.org/integration/mozilla-inbound/rev/9bd5b37c0168
https://hg.mozilla.org/integration/mozilla-inbound/rev/0f0c427490da
https://hg.mozilla.org/integration/mozilla-inbound/rev/69871c00379b
https://hg.mozilla.org/mozilla-central/rev/24d32648073c
https://hg.mozilla.org/mozilla-central/rev/e1bfa923a761
https://hg.mozilla.org/mozilla-central/rev/6b9ace2a57ab
https://hg.mozilla.org/mozilla-central/rev/9bd5b37c0168
https://hg.mozilla.org/mozilla-central/rev/0f0c427490da
https://hg.mozilla.org/mozilla-central/rev/69871c00379b
Status: NEW → RESOLVED
Closed: 10 years ago
status-firefox42:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla42
Comment 21•10 years ago
|
||
We will need this backed out asap. This is causing a smoketest blocker. Please see bug 1189261.
Flags: needinfo?(nhirata.bugzilla)
Whiteboard: [backout-asap]
Comment 22•10 years ago
|
||
This also break hwc composition on flame-kk. Local backout fixed the problem.
Comment 23•10 years ago
|
||
The fix for this bug is causing many identified issues on both Flame and Aries.
- Status bar can disappear or flicker in many apps (dialer, messages, music). bug 1189261
- Keyboard is flickering, flashes black: bug 1189399
- FTU Cellular Data screen shows black bars and cuts off part of the toggle switch. (Flame only) bug 1189417
- Card view will shift around and tile when swiping cards. (Flame only)
- Video player UI will flicker heavily.
- SIM selection in dialer when using multiple SIMs flickers heavily (Flame only)
- Camera video recording UI will flicker (possibly Flame only)
- Full screen dialogs 'jump' up when appearing on screen, specifically seen when changing screen time-out in Display settings.
- Email Setup for a new account, Display notifications for new messages toggle has shaded UI overlapping
Updated•10 years ago
|
Flags: needinfo?(matt.woodrow)
Patch to disable these patches are in bug bug 1189399. I asked Sotaro to review that patch.
![]() |
||
Updated•10 years ago
|
Flags: needinfo?(nhirata.bugzilla)
Assignee | ||
Updated•9 years ago
|
Flags: needinfo?(matt.woodrow)
You need to log in
before you can comment on or make changes to this bug.
Description
•