Closed
Bug 990080
Opened 11 years ago
Closed 11 years ago
TiledLayerBufferComposite::RecycleCallback() is not called from second time.
Categories
(Core :: Graphics: Layers, defect)
Tracking
()
People
(Reporter: sotaro, Assigned: sotaro)
References
Details
(Keywords: regression)
Attachments
(1 file)
906 bytes,
patch
|
BenWa
:
review+
|
Details | Diff | Splinter Review |
+++ This bug was initially created as a clone of Bug #977880 +++
Within TiledLayerBufferComposite::RecycleCallback(), TextureParent::CompositorRecycle() is called. TextureParent::CompositorRecycle() is originally created for SimpleTextureClient. It expects that TextureParent::RecvClientRecycle() is called from child side. In the function increment TextureHost's reference count by holding TextureHost's pointer to TextureParent::mWaitForClientRecycle.
But TiledLayerBufferComposite does not expect it. Therefore, since TiledLayerBufferComposite::RecycleCallback() is called once, TextuteHost's reference count is kept more than 2. Then TiledLayerBufferComposite::RecycleCallback() is not called after once called.
TiledLayerBufferComposite::RecycleCallback() is called when TextuteHost's reference count becomes one.
Assignee | ||
Comment 1•11 years ago
|
||
Nominate to 1.4 blocker. This bug could regress bug 977880.
Assignee | ||
Updated•11 years ago
|
blocking-b2g: --- → 1.4?
Comment 2•11 years ago
|
||
What's the user impact? Is there a performance hit from this?
Updated•11 years ago
|
Flags: needinfo?(bgirard)
Assignee | ||
Comment 3•11 years ago
|
||
(In reply to Jason Smith [:jsmith] from comment #2)
> What's the user impact? Is there a performance hit from this?
There is no performance impact. This could case, flicker or artifact problem on tiled thebes layers.
Assignee | ||
Comment 4•11 years ago
|
||
(In reply to Sotaro Ikeda [:sotaro] from comment #3)
> (In reply to Jason Smith [:jsmith] from comment #2)
> > What's the user impact? Is there a performance hit from this?
>
> There is no performance impact. This could case, flicker or artifact problem
> on tiled thebes layers.
This is a potential problem. Even Bug 977880 is very hard to reproduce. I could not reproduce it.
Assignee | ||
Comment 5•11 years ago
|
||
There seems 2 choices to solve the problem.
- [1] Adding argument to TextureParent::CompositorRecycle() to differentiate the recycling. When TiledLayerBufferComposite's case, do not call the following.
> mWaitForClientRecycle = mTextureHost;
- [2] Change SimpleTiledContentClient as not to use TextureParent::RecvClientRecycle().
[1] is simpler way to fix the problem.
Comment 6•11 years ago
|
||
Is this only a problem with SimpleTiledContentClient? If so, is it particularly urgent?
Assignee | ||
Comment 7•11 years ago
|
||
This is a potential problem of ClientTiledThebesLayer, not of SimpleTiledContentClient. The reason of "potential" is that no one can re-generate bug 977880 in recent rom.
SimpleTiledContentClient uses TextureParent::CompositorRecycle() as recycling. But ClientTiledThebesLayer uses it just as Fence delivery. TextureParent::CompositorRecycle() does not care about the difference. It causes ClientTiledThebesLayer's TextureHost reference count more than 2.
Assignee | ||
Comment 8•11 years ago
|
||
(In reply to Chris Lord [:cwiiis] from comment #6)
> Is this only a problem with SimpleTiledContentClient? If so, is it
> particularly urgent?
This is a potential problem as comment 7. So, not urgent in my understanding.
Assignee | ||
Comment 9•11 years ago
|
||
Next week BenWa is going to look into this bug.
Updated•11 years ago
|
blocking-b2g: 1.4? → backlog
Assignee | ||
Comment 10•11 years ago
|
||
On JB gonk, TiledContentHost uses recycling only on Host side. This patch handle the case.
Assignee | ||
Updated•11 years ago
|
Attachment #8405476 -
Flags: review?(bgirard)
Updated•11 years ago
|
Attachment #8405476 -
Flags: review?(bgirard) → review+
Assignee | ||
Updated•11 years ago
|
Assignee: nobody → sotaro.ikeda.g
Assignee | ||
Comment 11•11 years ago
|
||
Comment 12•11 years ago
|
||
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla31
Updated•11 years ago
|
Flags: needinfo?(bgirard)
Updated•10 years ago
|
blocking-b2g: backlog → ---
tracking-b2g:
--- → backlog
You need to log in
before you can comment on or make changes to this bug.
Description
•