Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(534)

Issue 1120873002: Re-land: content: Single process support for native GpuMemoryBuffers. (Closed)

Created:
5 years, 7 months ago by reveman
Modified:
5 years, 6 months ago
CC:
chromium-reviews, darin-cc_chromium.org, jam, piman+watch_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@dm-browsertests-refactor
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Re-land: content: Single process support for native GpuMemoryBuffers. This adds single process support for IOSurface and SurfaceTexture backed GpuMemoryBuffers. Also makes the SurfaceTexture code more consistent with IOSurface code by using a singleton instead of leaking a raw pointer. BUG=497559 TEST=content_browsertests --gtest_also_run_disabled_tests --gtest_filter=ChildThreadImplGpuMemoryBufferBrowserTests/* Committed: https://crrev.com/ac364edf46eab2b244bd3a2724b191f453b13e94 Cr-Commit-Position: refs/heads/master@{#333822}

Patch Set 1 #

Patch Set 2 : Add in-process SurfaceTexture support #

Patch Set 3 : Make InProcessSurfaceTextureManager thread safe #

Total comments: 12

Patch Set 4 : #

Total comments: 6

Patch Set 5 : rebase #

Total comments: 6

Patch Set 6 : files #

Total comments: 4

Patch Set 7 : nullptr #

Patch Set 8 : CONTENT_EXPORT #

Patch Set 9 : disable test for now #

Unified diffs Side-by-side diffs Delta from patch set Stats (+365 lines, -85 lines) Patch
M content/browser/android/browser_surface_texture_manager.h View 1 2 3 4 5 6 7 2 chunks +11 lines, -4 lines 0 comments Download
M content/browser/android/browser_surface_texture_manager.cc View 1 2 3 4 5 6 2 chunks +12 lines, -6 lines 0 comments Download
A content/browser/android/in_process_surface_texture_manager.h View 1 2 3 4 5 6 7 1 chunk +57 lines, -0 lines 0 comments Download
A content/browser/android/in_process_surface_texture_manager.cc View 1 2 3 4 5 6 1 chunk +70 lines, -0 lines 0 comments Download
M content/browser/browser_io_surface_manager_mac.h View 1 2 3 4 5 6 7 1 chunk +1 line, -0 lines 0 comments Download
M content/browser/browser_main_loop.cc View 1 2 3 4 5 4 chunks +14 lines, -2 lines 0 comments Download
A content/browser/in_process_io_surface_manager_mac.h View 1 2 3 4 5 6 7 1 chunk +46 lines, -0 lines 0 comments Download
A content/browser/in_process_io_surface_manager_mac.cc View 1 2 3 4 5 1 chunk +50 lines, -0 lines 0 comments Download
M content/child/child_thread_impl_browsertest.cc View 1 2 3 4 5 6 7 8 5 chunks +95 lines, -2 lines 0 comments Download
M content/content_browser.gypi View 1 2 3 4 5 6 2 chunks +4 lines, -0 lines 0 comments Download
M content/test/content_test_suite.cc View 1 2 3 4 5 5 chunks +5 lines, -71 lines 0 comments Download

Messages

Total messages: 36 (9 generated)
reveman
5 years, 7 months ago (2015-05-01 00:28:58 UTC) #2
Daniele Castagna
On 2015/05/01 at 00:28:58, reveman wrote: > Can you describe the patch a little bit ...
5 years, 7 months ago (2015-05-01 20:11:42 UTC) #3
reveman
On 2015/05/01 at 20:11:42, dcastagna wrote: > On 2015/05/01 at 00:28:58, reveman wrote: > > ...
5 years, 7 months ago (2015-05-01 20:41:02 UTC) #4
reveman
ping for review
5 years, 7 months ago (2015-05-06 18:11:51 UTC) #5
Daniele Castagna
The test LGTM. I'd try to minimize the changes in browser/browser_main_loop.cc moving the code somewhere ...
5 years, 7 months ago (2015-05-06 18:39:41 UTC) #6
reveman
https://codereview.chromium.org/1120873002/diff/40001/content/browser/browser_main_loop.cc File content/browser/browser_main_loop.cc (right): https://codereview.chromium.org/1120873002/diff/40001/content/browser/browser_main_loop.cc#newcode160 content/browser/browser_main_loop.cc:160: #if defined(OS_ANDROID) On 2015/05/06 at 18:39:41, Daniele Castagna wrote: ...
5 years, 7 months ago (2015-05-06 20:37:47 UTC) #7
Daniele Castagna
https://codereview.chromium.org/1120873002/diff/60001/content/browser/browser_main_loop.cc File content/browser/browser_main_loop.cc (right): https://codereview.chromium.org/1120873002/diff/60001/content/browser/browser_main_loop.cc#newcode182 content/browser/browser_main_loop.cc:182: DCHECK(surfaces_.find(surface_texture_id) != surfaces_.end()); nit: DCHECK_EQ should be preferred. https://codereview.chromium.org/1120873002/diff/60001/content/browser/browser_main_loop.cc#newcode188 ...
5 years, 7 months ago (2015-05-06 20:46:27 UTC) #8
reveman
ptal https://codereview.chromium.org/1120873002/diff/60001/content/browser/browser_main_loop.cc File content/browser/browser_main_loop.cc (right): https://codereview.chromium.org/1120873002/diff/60001/content/browser/browser_main_loop.cc#newcode182 content/browser/browser_main_loop.cc:182: DCHECK(surfaces_.find(surface_texture_id) != surfaces_.end()); On 2015/05/06 at 20:46:26, Daniele ...
5 years, 6 months ago (2015-06-08 22:20:49 UTC) #9
Daniele Castagna
https://codereview.chromium.org/1120873002/diff/80001/content/browser/browser_main_loop.cc File content/browser/browser_main_loop.cc (right): https://codereview.chromium.org/1120873002/diff/80001/content/browser/browser_main_loop.cc#newcode177 content/browser/browser_main_loop.cc:177: class InProcessSurfaceTextureManager : public SurfaceTextureManager { I still think ...
5 years, 6 months ago (2015-06-09 14:45:07 UTC) #10
reveman
+avi https://codereview.chromium.org/1120873002/diff/80001/content/browser/browser_main_loop.cc File content/browser/browser_main_loop.cc (right): https://codereview.chromium.org/1120873002/diff/80001/content/browser/browser_main_loop.cc#newcode177 content/browser/browser_main_loop.cc:177: class InProcessSurfaceTextureManager : public SurfaceTextureManager { On 2015/06/09 ...
5 years, 6 months ago (2015-06-09 17:48:14 UTC) #12
Avi (use Gerrit)
lgtm https://codereview.chromium.org/1120873002/diff/100001/content/browser/android/browser_surface_texture_manager.cc File content/browser/android/browser_surface_texture_manager.cc (right): https://codereview.chromium.org/1120873002/diff/100001/content/browser/android/browser_surface_texture_manager.cc#newcode139 content/browser/android/browser_surface_texture_manager.cc:139: SurfaceTexturePeer::InitInstance(NULL); nullptr https://codereview.chromium.org/1120873002/diff/100001/content/browser/android/in_process_surface_texture_manager.cc File content/browser/android/in_process_surface_texture_manager.cc (right): https://codereview.chromium.org/1120873002/diff/100001/content/browser/android/in_process_surface_texture_manager.cc#newcode67 content/browser/android/in_process_surface_texture_manager.cc:67: ...
5 years, 6 months ago (2015-06-09 22:05:38 UTC) #13
reveman
https://codereview.chromium.org/1120873002/diff/100001/content/browser/android/browser_surface_texture_manager.cc File content/browser/android/browser_surface_texture_manager.cc (right): https://codereview.chromium.org/1120873002/diff/100001/content/browser/android/browser_surface_texture_manager.cc#newcode139 content/browser/android/browser_surface_texture_manager.cc:139: SurfaceTexturePeer::InitInstance(NULL); On 2015/06/09 at 22:05:38, Avi wrote: > nullptr ...
5 years, 6 months ago (2015-06-09 22:15:16 UTC) #15
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1120873002/120001
5 years, 6 months ago (2015-06-09 22:16:58 UTC) #17
commit-bot: I haz the power
Try jobs failed on following builders: android_clang_dbg_recipe on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/android_clang_dbg_recipe/builds/85104)
5 years, 6 months ago (2015-06-09 23:14:36 UTC) #19
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1120873002/140001
5 years, 6 months ago (2015-06-09 23:28:03 UTC) #22
commit-bot: I haz the power
Committed patchset #8 (id:140001)
5 years, 6 months ago (2015-06-10 00:48:37 UTC) #23
commit-bot: I haz the power
Patchset 8 (id:??) landed as https://crrev.com/d5395d05e7f006ef9d1efaf8ec84030d24fb9fef Cr-Commit-Position: refs/heads/master@{#333625}
5 years, 6 months ago (2015-06-10 00:49:30 UTC) #24
kjellander_chromium
A revert of this CL (patchset #8 id:140001) has been created in https://codereview.chromium.org/1171293005/ by kjellander@chromium.org. ...
5 years, 6 months ago (2015-06-10 07:33:20 UTC) #25
dshwang
Hi, can I ask some novice question? Why don't we reuse browser_surface_texture_manager.h in --single-process mode? ...
5 years, 6 months ago (2015-06-10 13:34:29 UTC) #26
reveman
On 2015/06/10 at 13:34:29, dongseong.hwang wrote: > Hi, can I ask some novice question? Why ...
5 years, 6 months ago (2015-06-10 14:25:26 UTC) #27
reveman
FYI, I'm going to re-land this with the new test disabled by default as I ...
5 years, 6 months ago (2015-06-10 20:41:04 UTC) #28
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1120873002/160001
5 years, 6 months ago (2015-06-10 20:42:20 UTC) #31
vignatti (out of this project)
BTW what's expected from these tests in CrOS? Right now none of the tests in ...
5 years, 6 months ago (2015-06-10 21:49:15 UTC) #32
reveman
On 2015/06/10 at 21:49:15, tiago.vignatti wrote: > BTW what's expected from these tests in CrOS? ...
5 years, 6 months ago (2015-06-10 21:55:37 UTC) #33
commit-bot: I haz the power
Committed patchset #9 (id:160001)
5 years, 6 months ago (2015-06-10 22:42:04 UTC) #34
commit-bot: I haz the power
Patchset 9 (id:??) landed as https://crrev.com/ac364edf46eab2b244bd3a2724b191f453b13e94 Cr-Commit-Position: refs/heads/master@{#333822}
5 years, 6 months ago (2015-06-10 22:43:03 UTC) #35
vignatti (out of this project)
5 years, 6 months ago (2015-06-12 21:05:45 UTC) #36
Message was sent while issue was closed.
On 2015/06/10 21:55:37, reveman wrote:
> On 2015/06/10 at 21:49:15, tiago.vignatti wrote:
> > BTW what's expected from these tests in CrOS? Right now none of the tests in
> child_thread_impl_browsertest.cc work and I found that
> ChildThreadImplBrowserTest may be interesting for building test cases for the
> upcoming native GBM based implementation.
> 
> They are expected to pass if you're on a device with a working gpu service in
> single process mode. What do you mean by none of the tests work on CrOS? They
> should work and pass. Any GBM related support should be exercised by these
tests
> and passing them is a requirement to land any such code.

you're right reveman. I've double-checked now and the tests themselves are
working fine under GBM (and falling back like expected to shared memory buffer).
I got confused with their output though, because they print some error messages
like the following:

[23441:23467:0612/135911:525564198:ERROR:gpu_channel_host.cc(180)]
GpuChannelHost::CreateViewCommandBuffer failed.
[23441:23467:0612/135911:525564359:ERROR:webgraphicscontext3d_command_buffer_impl.cc(229)]
Failed to initialize command buffer.
[23441:23449:0612/135911:525567081:ERROR:channel.cc(307)] RawChannel read error
(connection broken)

these messages happen after the tests are run, so the exit path is somewhat
broken and breaking the sequence of tests to run in a row when in
--single-process mode. Anyhow, this is a minor thing just.

Powered by Google App Engine
This is Rietveld 408576698