| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
two stages.
This CL splits out creation of the context from channel creation. The
WebGraphicsContext3D will not be fully initialized until MakeCurrent is called
on it, at which point it is tied to the calling thread.
As compared to previous land attempts, this has:
- Protection against isContextLost being called on a dead context
- WebKit-side protection to ensure that GraphicsContext3Ds get made current
- Pepper modified to makeCurrent new contexts
Original review URL: http://codereview.chromium.org/7713015
Review URL: http://codereview.chromium.org/7860028
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@100955 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
RenderThread::current() returns NULL after the ~AtExitManager() has
processed its callbacks. However, contexts still referencing GpuChannelHost
might get destroyed on the main thread only until later. In that case we
want to avoid using the sync filter.
Also fix unreached code/leak while the channel is gone.
BUG=95734
Review URL: http://codereview.chromium.org/7841053
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@100274 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
GpuChannelHost can actually outlive the GPUChannel instance (if there is still a context
referencing it). Therefore filter destruction can legally happen on IO, main, or
compositor thread. Put more explicit DCHECK()s to for the member function that must
be called on the IO thread instead.
BUG=95148
Review URL: http://codereview.chromium.org/7835010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@99822 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
intended to share canvas "back buffers" between the GPU process and the browser process. The plan is to issue all the GL calls in the GPU process now, with the browser process just doing the final present. Removing the redundant code.
Review URL: http://codereview.chromium.org/7701021
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@99424 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Replaces the error-prone, overly-general, error-containing, and brittle
manually-terminated array-of-ints holding name/value pairs (except for names
that don't take values) with a simple profile parameter (specifying only information we
actually use today).
BUG=none
TEST=trybots, ovdatest, gles2
Review URL: http://codereview.chromium.org/7779001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@99111 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds a message filter on the IO thread which routes messages to
the corresponding cmdbuffer proxy on the correct thread (main or compositor).
The proxies become reference counted so that the filter can track them.
When a context gets deleted, a flag gets set on the context to indicate
they have become orphaned so we do not handle any incoming messages anymore
(the callbacks etc. have become invalid when the context goes away).
Review URL: http://codereview.chromium.org/7634019
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@97824 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
Enhanced gles2.cc to display two decoders in the same context to demo this
capability.
BUG=92598
TEST=ovdatest passes, gles2 works, trybots
Review URL: http://codereview.chromium.org/7659001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@97066 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This CL implements the proxy necessary for out-of-process video decoding and
introduces a shared base class between the PPB_VideoDecoder_Impl and the proxy.
BUG=NONE
TEST=gles2 plugin runs with or without --ppapi-out-of-process flag, no crashes
Review URL: http://codereview.chromium.org/7545014
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@95724 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
put all compositor and canvas contexts in the same share group so they can share IDs.
Review URL: http://codereview.chromium.org/7554015
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@95345 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
With apatrick's changes in r93066, we no longer need to manually sync up with the
command buffer before handling IPC messages in GpuVideoDecodeAccelerator.
BUG=none
TEST=gles2 example runs without crashing
Review URL: http://codereview.chromium.org/7521015
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@94561 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
CommandBufferProxies
Now communication between GpuVideoDecodeAccelerator and its host should be more
or less symmetric, at least for creation.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/7329012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@92251 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is done by inserting tokens into the command-buffer stream
when synchronization is needed, and adding a
last-read/last-written token pair to each IPC message. This
allowed me to remove the bogus FinishGL() calls from the gles2
sample pepper plugin.
As part of this CL, the return value for VideoDecodeAccelerator::{Decode,Flush,Abort} changed from bool to void. These are all async methods so errors ought to be signaled using callbacks.
BUG=none
TEST=gles2 works, no crashes; trybots
Review URL: http://codereview.chromium.org/7260008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@90971 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead it is stored in a map in RenderWidgetHelper indexed by RenderWidgetHost route ID. This allows the UI thread to maintain the mapping as windows are created and destroyed and the IO thread to lookup the mapping in order to create GL contexts that render to the windows.
This avoids a race where JavaScript would open a popup window and immediately try to use an accelerated canvas to render to it (2D canvas or WebGL canvas). <-- This is no longer true of this patch. There was a potential deadlock.
WebGL canvas used to work in this case only because it would fall back to using ReadPixels.
This goes some way to fixing the bug referenced below but does not fix it completely.BUG=80703
Review URL: http://codereview.chromium.org/7136001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@90617 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
This will allow the parenting of offscreen canvas contexts to be deferred until the compositor's view context exists, which in some cases needs to be deferred until the window is asynchronously created by the browser's UI thread. An example is JavaScript opening a popup window and then immediately using canvas to attempt to render to it.
This patch alone does not fix the bug.
BUG=80703
Review URL: http://codereview.chromium.org/7205012
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@89715 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The GPU process should never send sync IPCs to other processes so we don't need
to set the unblock flag for any IPCs in order to avoid deadlocks. This patch
sets the unblock flag to false for all renderer->GPU IPCs to preserve order, and
adds some more DCHECK()s to enforce that the GPU process does not send any sync
IPCs out to other processes.
BUG=84065
TEST=
Review URL: http://codereview.chromium.org/7104014
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@87427 0039d316-1c4b-4281-b951-d872f2087c98
|
|
Also added an OWNERS file to that subdirectory.
Review URL: http://codereview.chromium.org/7066035
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@86707 0039d316-1c4b-4281-b951-d872f2087c98
|