[Webkit-unassigned] [Bug 95057] [chromium] Allow impl-thread deletion of only some resources

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Sep 6 11:12:29 PDT 2012


https://bugs.webkit.org/show_bug.cgi?id=95057





--- Comment #45 from Eric Penner <epenner at chromium.org>  2012-09-06 11:12:43 PST ---
> So now I'm backing to wondering why this has a lock at all.  Why not just pass a vector of deleted backings to the main thread in the beginFrame message and have the main thread unlink these on the main thread prioritized texture manager on its own time?  There's no reason to keep track of this set on the impl thread after the GL textures have been deleted and we've passed the set to the main thread.  Passing a vector can be really efficient if you just .swap() the storage instead of copying element by element.

James, can you confirm that there can *never* be two beginFrame messages at once?  I grokked that to be the case but it's very important for using a task here. If the main thread has a chance to delete/create backings while another list of pointers is pending in the message queue, those pointers may no longer be unique by the time they are processed. Backings are only created/destroyed during commits, so the only important bit is that there isn't another pending beginFrame task waiting (that contains a list of these pointers) while the commit is taking place.

As another possibility, we could actually even avoid posting a task at all, by having all synchronization occur during the commit. The commit could process the impl thread's deletion list at the beginning, and then create a fresh deletion list for the impl thread to use at the end.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list