summaryrefslogtreecommitdiffstats
path: root/cc/resources/texture_mailbox_deleter.cc
Commit message (Collapse)AuthorAgeFilesLines
* Add gpu::MailboxHolder to hold state for a gpu::Mailboxsheu@chromium.org2014-02-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | gpu::Mailbox by itself can hold only a texture id, but in common usage it comes with texture target and syncpoint information for cross-context sharing. To reduce repetition of this pattern, gpu::MailboxHolder holds: * a gpu::Mailbox * a GL texture target * a syncpoint index Refactor other classes to use a gpu::MailboxHolder instead of separate gpu::Mailbox and associated state. Syncpoints are created with uint32 indices; make sure all uses of syncpoints use the appropriate type. BUG=None TEST=local build, unittests on CrOS snow, desktop Linux TBR=piman@chromium.org, enn@chromium.orge, cevans@chromium.org, scherkus@chromium.org Review URL: https://codereview.chromium.org/132233041 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@248612 0039d316-1c4b-4281-b951-d872f2087c98
* Revert "Add gpu::MailboxHolder to hold state for a gpu::Mailbox"danakj@chromium.org2014-01-211-1/+1
| | | | | | | | | | | | | | | This reverts commit 9ee2343406a6fae9c8aacc7303f7b1e5a04aab9e. This patch is the source of the top crash in canary. See the bug for more details. TBR=sheu NOTREECHECKS=true BUG=336040 Review URL: https://codereview.chromium.org/129873005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@245959 0039d316-1c4b-4281-b951-d872f2087c98
* Add gpu::MailboxHolder to hold state for a gpu::Mailboxsheu@chromium.org2014-01-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | gpu::Mailbox by itself can hold only a texture id, but in common usage it comes with texture target and syncpoint information for cross-context sharing. To reduce repetition of this pattern, gpu::MailboxHolder holds: * a gpu::Mailbox * a GL texture target * a syncpoint index Refactor other classes to use a gpu::MailboxHolder instead of separate gpu::Mailbox and associated state. Syncpoints are created with uint32 indices; make sure all uses of syncpoints use uint32. BUG=None TEST=local build, unittests on CrOS snow, desktop Linux Review URL: https://codereview.chromium.org/105743004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@245730 0039d316-1c4b-4281-b951-d872f2087c98
* Convert cc resource system over to GLES2Interfacejamesr@chromium.org2013-12-111-3/+3
| | | | | | | | BUG=181120 Review URL: https://codereview.chromium.org/105103004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@240074 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Move TextureMailbox::ReleaseCallback to SingleReleaseCallback.danakj@chromium.org2013-09-171-15/+18
| | | | | | | | | | | | | | | | | | | This moves the release callback out of the TextureMailbox so that we can use it for other resource types than just texture mailboxes. While doing this, we make a SingleReleaseCallback class that is held in a scoped_ptr. This class DCHECKs that the callback is run before it is destroyed, and ensures clear ownership semantics as you must Pass() the callback around. No change in behaviour, covered by existing tests. R=piman BUG=263069 Review URL: https://chromiumcodereview.appspot.com/23648014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@223500 0039d316-1c4b-4281-b951-d872f2087c98
* cc: Drop ContextProvider references on the impl thread before quittingdanakj@chromium.org2013-09-101-0/+89
When passing a TextureMailbox from the impl thread out to the cc embedder on the main thread, we need to keep a ref on the ContextProvider that owns the texture in the mailbox, to keep the mailbox alive while the embedder is receiving it. However if the compositor shutsdown and the impl thread goes away, we must have already dropped the ref on the ContextProvider or it will be destroyed (a) on the wrong thread and (b) after the global GPU process objects it holds pointers to have been destroyed. Crash will occur. So, we add a TextureMailboxDeleter class that the GLRenderer uses to generate a TextureMailbox release callback for the main thread instead of rolling its own thing. The TMDeleter class' lifetime is bounded by the life of the compositor instance on the impl thread, so it is destroyed before the impl thread is joined. And when it is destroyed it deletes the textures it was meant to destroy, and drops its ref on the context provider. BUG=283625 R=piman Review URL: https://chromiumcodereview.appspot.com/23454014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@222207 0039d316-1c4b-4281-b951-d872f2087c98