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

Issue 180723023: gpu: Mailbox emulation with EGLImage (Closed)

Created:
6 years, 9 months ago by no sievers
Modified:
6 years, 9 months ago
Reviewers:
reveman, boliu, piman
CC:
chromium-reviews, piman+watch_chromium.org
Visibility:
Public.

Description

gpu: Mailbox emulation with EGLImage This adds support for sharing image buffers through EGLImage-like semantics. It's made to look as if textures were shared through mailboxes by creating multiple Texture instances and synchronizing parameters and image handle etc. across MailboxManager instances (for example across contexts and possibly GPU threads). Since GL clients are async anyways, it only guarantees that changes to the texture structure or filters become visible after the client has waited on a sync point, while fences are used to synchronize read/write access to the underlying buffer. NOTRY=True BUG=332146 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=256962

Patch Set 1 : #

Total comments: 4

Patch Set 2 : #

Patch Set 3 : #

Total comments: 2

Patch Set 4 : comments, fix a bug #

Total comments: 1

Patch Set 5 : exclude EGL from Mac build #

Patch Set 6 : oops #

Total comments: 42

Patch Set 7 : address piman's comments #

Total comments: 2

Patch Set 8 : rebase #

Patch Set 9 : comments #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1466 lines, -38 lines) Patch
M android_webview/lib/main/aw_main_delegate.cc View 1 2 3 4 5 6 7 2 chunks +2 lines, -3 lines 0 comments Download
M content/common/gpu/gpu_command_buffer_stub.cc View 1 2 3 4 5 6 7 2 chunks +3 lines, -0 lines 0 comments Download
M gpu/command_buffer/service/framebuffer_manager.h View 1 2 3 4 5 6 2 chunks +4 lines, -0 lines 0 comments Download
M gpu/command_buffer/service/framebuffer_manager.cc View 1 2 3 4 5 6 3 chunks +25 lines, -0 lines 0 comments Download
M gpu/command_buffer/service/gles2_cmd_decoder.cc View 1 2 3 4 5 6 7 12 chunks +53 lines, -6 lines 0 comments Download
M gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc View 1 2 3 4 5 6 7 1 chunk +18 lines, -0 lines 0 comments Download
M gpu/command_buffer/service/in_process_command_buffer.h View 1 chunk +1 line, -0 lines 0 comments Download
M gpu/command_buffer/service/in_process_command_buffer.cc View 3 chunks +12 lines, -5 lines 0 comments Download
M gpu/command_buffer/service/mailbox_manager.h View 4 chunks +13 lines, -0 lines 0 comments Download
M gpu/command_buffer/service/mailbox_manager.cc View 1 2 3 4 5 6 3 chunks +39 lines, -6 lines 0 comments Download
M gpu/command_buffer/service/mailbox_manager_unittest.cc View 1 2 3 4 5 6 7 3 chunks +339 lines, -2 lines 0 comments Download
A gpu/command_buffer/service/mailbox_synchronizer.h View 1 2 3 4 5 6 1 chunk +96 lines, -0 lines 0 comments Download
A gpu/command_buffer/service/mailbox_synchronizer.cc View 1 2 3 4 5 6 7 8 1 chunk +204 lines, -0 lines 0 comments Download
A gpu/command_buffer/service/texture_definition.h View 1 2 3 4 5 6 1 chunk +127 lines, -0 lines 0 comments Download
A gpu/command_buffer/service/texture_definition.cc View 1 2 3 4 5 6 7 8 1 chunk +445 lines, -0 lines 0 comments Download
M gpu/command_buffer/service/texture_manager.h View 1 2 3 4 5 6 7 1 chunk +4 lines, -0 lines 0 comments Download
M gpu/command_buffer/service/texture_manager.cc View 1 2 3 4 5 6 7 2 chunks +16 lines, -0 lines 0 comments Download
M gpu/command_buffer_service.gypi View 1 2 3 4 5 6 7 2 chunks +4 lines, -0 lines 0 comments Download
M ui/gl/generate_bindings.py View 1 2 3 4 5 6 7 1 chunk +4 lines, -0 lines 0 comments Download
M ui/gl/gl_fence.h View 1 1 chunk +6 lines, -0 lines 0 comments Download
M ui/gl/gl_fence.cc View 1 9 chunks +41 lines, -16 lines 0 comments Download
M ui/gl/gl_image.h View 1 2 3 1 chunk +6 lines, -0 lines 0 comments Download
M ui/gl/gl_image.cc View 1 2 3 1 chunk +4 lines, -0 lines 0 comments Download

Messages

Total messages: 15 (0 generated)
piman
https://codereview.chromium.org/180723023/diff/40001/gpu/command_buffer/service/mailbox_manager.cc File gpu/command_buffer/service/mailbox_manager.cc (right): https://codereview.chromium.org/180723023/diff/40001/gpu/command_buffer/service/mailbox_manager.cc#newcode18 gpu/command_buffer/service/mailbox_manager.cc:18: sync_(MailboxSynchronizer::GetInstance()) { nit: it'd be nice to pass explicitly ...
6 years, 9 months ago (2014-03-08 01:03:10 UTC) #1
no sievers
+reveman for GLImage plumbing Ok, should be pretty functional at this point. I've added versioning ...
6 years, 9 months ago (2014-03-12 18:45:36 UTC) #2
reveman
We currently call Will/DidUseTexImage when attaching texture to FBO. WillModify replaces that with a more ...
6 years, 9 months ago (2014-03-12 19:18:03 UTC) #3
no sievers
On 2014/03/12 19:18:03, reveman wrote: > We currently call Will/DidUseTexImage when attaching texture to FBO. ...
6 years, 9 months ago (2014-03-12 20:22:12 UTC) #4
reveman
On 2014/03/12 20:22:12, sievers wrote: > On 2014/03/12 19:18:03, reveman wrote: > > We currently ...
6 years, 9 months ago (2014-03-12 20:33:16 UTC) #5
no sievers
On 2014/03/12 20:33:16, reveman wrote: > On 2014/03/12 20:22:12, sievers wrote: > > On 2014/03/12 ...
6 years, 9 months ago (2014-03-12 21:03:42 UTC) #6
reveman
ui/gl/gl_image* lgtm https://codereview.chromium.org/180723023/diff/120001/ui/gl/gl_image.h File ui/gl/gl_image.h (right): https://codereview.chromium.org/180723023/diff/120001/ui/gl/gl_image.h#newcode46 ui/gl/gl_image.h:46: virtual void DidModifyTexImage(); while here, do you ...
6 years, 9 months ago (2014-03-12 22:53:02 UTC) #7
boliu
android_webview lgtm
6 years, 9 months ago (2014-03-13 01:08:53 UTC) #8
piman
https://codereview.chromium.org/180723023/diff/180001/gpu/command_buffer/service/gles2_cmd_decoder.cc File gpu/command_buffer/service/gles2_cmd_decoder.cc (right): https://codereview.chromium.org/180723023/diff/180001/gpu/command_buffer/service/gles2_cmd_decoder.cc#newcode359 gpu/command_buffer/service/gles2_cmd_decoder.cc:359: ScopedModifyPixels(TextureRef* ref); nit: explicit https://codereview.chromium.org/180723023/diff/180001/gpu/command_buffer/service/gles2_cmd_decoder.cc#newcode378 gpu/command_buffer/service/gles2_cmd_decoder.cc:378: ScopedRenderTo(Framebuffer* framebuffer); nit: ...
6 years, 9 months ago (2014-03-13 04:41:58 UTC) #9
no sievers
I've also fixed a bug with this sequence: 1) ctx1: Produce, Sync 2) ctx2: waitSync ...
6 years, 9 months ago (2014-03-13 20:50:15 UTC) #10
piman
LGTM except for some minor points. https://codereview.chromium.org/180723023/diff/180001/gpu/command_buffer/service/texture_definition.cc File gpu/command_buffer/service/texture_definition.cc (right): https://codereview.chromium.org/180723023/diff/180001/gpu/command_buffer/service/texture_definition.cc#newcode121 gpu/command_buffer/service/texture_definition.cc:121: } On 2014/03/13 ...
6 years, 9 months ago (2014-03-13 23:29:05 UTC) #11
no sievers
https://codereview.chromium.org/180723023/diff/180001/gpu/command_buffer/service/texture_definition.cc File gpu/command_buffer/service/texture_definition.cc (right): https://codereview.chromium.org/180723023/diff/180001/gpu/command_buffer/service/texture_definition.cc#newcode287 gpu/command_buffer/service/texture_definition.cc:287: // of perf when there are multiple draw calls ...
6 years, 9 months ago (2014-03-13 23:51:13 UTC) #12
no sievers
The CQ bit was checked by sievers@chromium.org
6 years, 9 months ago (2014-03-13 23:52:31 UTC) #13
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/sievers@chromium.org/180723023/230001
6 years, 9 months ago (2014-03-13 23:53:15 UTC) #14
commit-bot: I haz the power
6 years, 9 months ago (2014-03-14 00:08:58 UTC) #15
Message was sent while issue was closed.
Change committed as 256962

Powered by Google App Engine
This is Rietveld 408576698