| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
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
|