Closed
Bug 1290081
Opened 8 years ago
Closed 8 years ago
Use a TextureReadLock instead of immediate uploads + sync transactions in CanvasClient2D
Categories
(Core :: Graphics: Layers, defect)
Core
Graphics: Layers
Tracking
()
RESOLVED
FIXED
mozilla50
Tracking | Status | |
---|---|---|
firefox50 | --- | fixed |
People
(Reporter: nical, Assigned: nical)
References
(Blocks 1 open bug)
Details
Attachments
(1 file)
(deleted),
patch
|
sotaro
:
review+
|
Details | Diff | Splinter Review |
Currently CanvasClient relies on synchronous layer transactions to avoid copying the canvas in a texture that the compositor is currently using.
Now that TextureReadLock works with all layer types we can use it to make sure that the canvas does not overwrite data that the compositor is reading.
The tradeoff is: if we are over-producing, we may allocate more textures, but we'll be able to render faster since we don't cause the transaction to be synchronous. Synchronous transactions are quite expensive because the main thread wastes time doing nothing until the compositor has received the transaction and uploaded all textures. In particular, canvas games or animations may benefit from this since they tend to cause a lot of main thread activity.
Assignee | ||
Comment 1•8 years ago
|
||
This patch only makes a difference if PersistentBufferProviderShared is disabled, I hope to enable it soon in most configurations, but in the mean time this optimization is simple enough to be worth taking.
Assignee: nobody → nical.bugzilla
Attachment #8775555 -
Flags: review?(sotaro.ikeda.g)
Updated•8 years ago
|
Attachment #8775555 -
Flags: review?(sotaro.ikeda.g) → review+
Pushed by nsilva@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/67cb195b1b45
Make canvas layer transactions asynchronous. r=sotaro
Backed out in https://hg.mozilla.org/integration/mozilla-inbound/rev/b498c2f4fdd8 for canvas failures like https://treeherder.mozilla.org/logviewer.html#?job_id=32818862&repo=mozilla-inbound
Flags: needinfo?(nical.bugzilla)
Assignee | ||
Comment 4•8 years ago
|
||
The failures were caused by bug 1289816.
Flags: needinfo?(nical.bugzilla)
Pushed by nsilva@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/e46e53dfb22b
Make canvas layer transactions asynchronous. r=sotaro
Comment 6•8 years ago
|
||
bugherder |
Status: NEW → RESOLVED
Closed: 8 years ago
status-firefox50:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla50
You need to log in
before you can comment on or make changes to this bug.
Description
•