Closed
Bug 988956
Opened 11 years ago
Closed 11 years ago
Synchronously wait async TextureClient return from Compositor on main thread
Categories
(Core :: Graphics: Layers, defect)
Tracking
()
RESOLVED
DUPLICATE
of bug 1006957
People
(Reporter: sotaro, Unassigned)
References
Details
To implement ANativeWindow backed EGLSurface(Bug 767484) correctly, we need to synchronously wait async buffer return from Compositor on main thread. But gecko IPC does not permit this.
My current idea is use ImageBridge to notify TextureClient return event.
Reporter | ||
Updated•11 years ago
|
Whiteboard: [soft]
Comment 1•11 years ago
|
||
(In reply to Sotaro Ikeda [:sotaro] from comment #0)
> To implement ANativeWindow backed EGLSurface(Bug 767484) correctly, we need
> to synchronously wait async buffer return from Compositor on main thread.
> But gecko IPC does not permit this.
>
> My current idea is use ImageBridge to notify TextureClient return event.
I think we have some implicit way to get the buffer returned by a sync UseTexture message. Since UseTexture message cause Compositor lock to new buffer(TextureClient) and release the old buffer implicitly.
ImageBridge is in fact for async update, so notifying a sync event from it seems weird for me.
Reporter | ||
Comment 2•11 years ago
|
||
(In reply to Chiajung Hung [:chiajung] from comment #1)
> I think we have some implicit way to get the buffer returned by a sync
> UseTexture message.
This transaction requests async transaction. Therefore, SurfaceStream side could start reuse buffer even when compositor side is still using it. This implicit buffer return causes another problem to deliver Fence from parent side to child side. Since JB, we need to send Fence object from parent side to child side before child side reuses the buffer.
Bug 950079 is about the SurfaceStream case. It fixes the almost all problem of bug 1006164. But to fix correctly, this bug and Bug 1006957 becomes necessary.
Reporter | ||
Comment 3•11 years ago
|
||
We need to make PLayerTransaction's transaction more async. sync transaction causes the following problems.
- It causes performance decrease.
we need to put off synchronous wait as long as possible.
If the transaction to async, we can put off the sync wait until the synchronization becomes necessary.
- sync transaction from client side changes the order of the message from parent side.
It causes problem to Fence delivery from Parent to Child side.
The Fences might not be delivered at expected timing.
Comment 4•11 years ago
|
||
Based on your above comments, does this also need to block 1.4 so that we have a complete fix for bug Bug 1006164?
Flags: needinfo?(sotaro.ikeda.g)
Reporter | ||
Comment 5•11 years ago
|
||
This bug becomes part of Bug 1006957. Right now Bug 1006957 is 1.4+, though it is relatively high risk fix.
Flags: needinfo?(sotaro.ikeda.g)
Reporter | ||
Updated•11 years ago
|
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → DUPLICATE
You need to log in
before you can comment on or make changes to this bug.
Description
•