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

Issue 185403020: Make VEA client of command buffer; move sync. IPC to VDA/VEA::Initialize() (Closed)

Created:
6 years, 9 months ago by sheu
Modified:
6 years, 8 months ago
CC:
chromium-reviews, joi+watch-content_chromium.org, pwestin+watch_google.com, mikhal+watch_chromium.org, hclam+watch_chromium.org, fischman+watch_chromium.org, jasonroberts+watch_google.com, jam, mcasas+watch_chromium.org, sievers+watch_chromium.org, jbauman+watch_chromium.org, feature-media-reviews_chromium.org, hguihot+watch_chromium.org, darin-cc_chromium.org, kalyank, piman+watch_chromium.org, danakj+watch_chromium.org, wjia+watch_chromium.org, hubbe+watch_chromium.org, miu+watch_chromium.org
Visibility:
Public.

Description

Make VEA client of command buffer; move sync. IPC to VDA/VEA::Initialize() Much refactoring of VDA/VEA. Issues: * Encoders will need to be able to synchronize with the 3D command buffer to support encoding from textures. * The IPC interface from GpuVideo{Decode,Encode}AcceleratorHost to GpuVideo{Decode,Encode}Accelerator collapses the creation and initialization IPC calls into one to save a round-trip. Unfortunately this synchronous IPC happens in the constructor, making the interface unwieldy (and requiring that initialization parameters be passed both on construction and initialization). Solutions: * Make the VEA a client of the command buffer. Harmonize GpuVideo{Decode,Encode}AcceleratorHost implementations to make codepaths parallel (and easier to reason about). * Move the synchronous IPC calls in the constructor of GpuV{D,E}AH into the Initialize() call, and remove the requirement that the initialization parameters be passed in the constructor. * Make VEA::Initialize() a 'bool' function call, as it is done in VDA, to allow Initialize() to be used synchronously. * (minor) remove SupportsWeakPtr from VDA interface. BUG=269312 TEST=local build, run, unittests on CrOS snow Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=261365

Patch Set 1 : f2eefdec Initial. #

Patch Set 2 : 92a7e196 Rebase. #

Patch Set 3 : 56683e7a Rebase. #

Total comments: 10

Patch Set 4 : f2a9ccb5 Rebase, posciak@ comments. #

Total comments: 43

Patch Set 5 : 85629196 fischman@ comments. #

Total comments: 10

Patch Set 6 : 890d8f71 last fischman@ bits #

Total comments: 18

Patch Set 7 : cb623b86 sievers@ comments. #

Patch Set 8 : b712cbf3 *facepalm* #

Patch Set 9 : 7da5b6ec Rebase. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+814 lines, -643 lines) Patch
M content/common/gpu/client/command_buffer_proxy_impl.h View 1 2 3 4 5 6 7 8 4 chunks +15 lines, -7 lines 0 comments Download
M content/common/gpu/client/command_buffer_proxy_impl.cc View 1 2 3 4 5 6 7 8 3 chunks +14 lines, -17 lines 0 comments Download
M content/common/gpu/client/gpu_channel_host.h View 3 chunks +8 lines, -5 lines 0 comments Download
M content/common/gpu/client/gpu_channel_host.cc View 1 2 3 4 5 6 7 8 2 chunks +9 lines, -16 lines 0 comments Download
M content/common/gpu/client/gpu_video_decode_accelerator_host.h View 1 2 3 4 5 6 4 chunks +17 lines, -5 lines 0 comments Download
M content/common/gpu/client/gpu_video_decode_accelerator_host.cc View 1 2 3 4 5 6 7 5 chunks +67 lines, -43 lines 0 comments Download
M content/common/gpu/client/gpu_video_encode_accelerator_host.h View 1 2 3 4 5 6 6 chunks +35 lines, -22 lines 0 comments Download
M content/common/gpu/client/gpu_video_encode_accelerator_host.cc View 1 2 3 4 5 6 9 chunks +90 lines, -56 lines 0 comments Download
M content/common/gpu/gpu_channel.h View 1 2 3 4 5 6 7 8 3 chunks +0 lines, -6 lines 0 comments Download
M content/common/gpu/gpu_channel.cc View 1 2 3 4 5 6 7 8 3 chunks +0 lines, -24 lines 0 comments Download
M content/common/gpu/gpu_command_buffer_stub.h View 2 chunks +8 lines, -3 lines 0 comments Download
M content/common/gpu/gpu_command_buffer_stub.cc View 1 2 3 4 5 6 7 8 4 chunks +23 lines, -1 line 0 comments Download
M content/common/gpu/gpu_messages.h View 1 2 3 4 5 6 7 8 4 chunks +14 lines, -11 lines 0 comments Download
M content/common/gpu/media/android_video_decode_accelerator.h View 2 chunks +3 lines, -3 lines 0 comments Download
M content/common/gpu/media/android_video_decode_accelerator.cc View 1 2 3 12 chunks +51 lines, -38 lines 0 comments Download
M content/common/gpu/media/android_video_decode_accelerator_unittest.cc View 1 2 3 1 chunk +0 lines, -1 line 0 comments Download
M content/common/gpu/media/android_video_encode_accelerator.h View 1 chunk +1 line, -1 line 0 comments Download
M content/common/gpu/media/android_video_encode_accelerator.cc View 1 2 3 4 5 6 7 8 4 chunks +18 lines, -19 lines 0 comments Download
M content/common/gpu/media/dxva_video_decode_accelerator.h View 3 chunks +4 lines, -3 lines 0 comments Download
M content/common/gpu/media/dxva_video_decode_accelerator.cc View 11 chunks +47 lines, -35 lines 0 comments Download
M content/common/gpu/media/exynos_video_encode_accelerator.h View 1 chunk +1 line, -1 line 0 comments Download
M content/common/gpu/media/exynos_video_encode_accelerator.cc View 11 chunks +31 lines, -37 lines 0 comments Download
M content/common/gpu/media/gpu_video_decode_accelerator.h View 1 2 3 4 3 chunks +5 lines, -8 lines 0 comments Download
M content/common/gpu/media/gpu_video_decode_accelerator.cc View 1 2 3 4 5 6 7 8 13 chunks +27 lines, -39 lines 0 comments Download
M content/common/gpu/media/gpu_video_encode_accelerator.h View 1 2 3 4 6 chunks +31 lines, -16 lines 0 comments Download
M content/common/gpu/media/gpu_video_encode_accelerator.cc View 1 2 3 4 5 6 5 chunks +103 lines, -68 lines 0 comments Download
M content/common/gpu/media/v4l2_video_decode_accelerator.h View 1 2 3 4 5 6 7 8 1 chunk +3 lines, -0 lines 0 comments Download
M content/common/gpu/media/v4l2_video_decode_accelerator.cc View 1 2 3 4 5 6 7 8 4 chunks +10 lines, -8 lines 0 comments Download
M content/common/gpu/media/vaapi_video_decode_accelerator.h View 1 chunk +3 lines, -0 lines 0 comments Download
M content/common/gpu/media/vaapi_video_decode_accelerator.cc View 1 2 3 3 chunks +6 lines, -7 lines 0 comments Download
M content/common/gpu/media/video_decode_accelerator_unittest.cc View 1 2 3 4 5 6 7 8 10 chunks +24 lines, -23 lines 0 comments Download
M content/common/gpu/media/video_encode_accelerator_unittest.cc View 1 2 3 4 5 6 7 8 3 chunks +12 lines, -13 lines 0 comments Download
M content/renderer/media/pepper_platform_video_decoder.h View 1 chunk +0 lines, -1 line 0 comments Download
M content/renderer/media/pepper_platform_video_decoder.cc View 2 chunks +1 line, -5 lines 0 comments Download
M content/renderer/media/renderer_gpu_video_accelerator_factories.h View 1 2 3 4 1 chunk +1 line, -1 line 0 comments Download
M content/renderer/media/renderer_gpu_video_accelerator_factories.cc View 1 2 3 4 3 chunks +11 lines, -4 lines 0 comments Download
M content/renderer/media/rtc_video_decoder.h View 1 2 3 4 5 6 7 8 1 chunk +0 lines, -1 line 0 comments Download
M content/renderer/media/rtc_video_decoder.cc View 1 2 3 4 5 6 7 8 2 chunks +1 line, -6 lines 0 comments Download
M content/renderer/media/rtc_video_decoder_unittest.cc View 1 chunk +1 line, -5 lines 0 comments Download
M content/renderer/media/rtc_video_encoder.cc View 1 2 3 4 5 6 7 8 3 chunks +8 lines, -11 lines 0 comments Download
M content/renderer/pepper/pepper_video_capture_host.cc View 1 2 3 1 chunk +1 line, -0 lines 0 comments Download
M content/renderer/pepper/ppb_video_decoder_impl.h View 1 chunk +0 lines, -1 line 0 comments Download
M content/renderer/pepper/ppb_video_decoder_impl.cc View 1 chunk +0 lines, -4 lines 0 comments Download
M media/cast/test/fake_video_encode_accelerator.h View 1 2 3 4 5 6 7 8 2 chunks +19 lines, -2 lines 0 comments Download
M media/cast/test/fake_video_encode_accelerator.cc View 5 chunks +44 lines, -10 lines 0 comments Download
M media/cast/video_sender/external_video_encoder.cc View 1 2 3 4 5 6 7 8 2 chunks +12 lines, -16 lines 0 comments Download
M media/cast/video_sender/external_video_encoder_unittest.cc View 1 2 3 4 5 6 7 8 1 chunk +1 line, -1 line 0 comments Download
M media/cast/video_sender/video_sender_unittest.cc View 1 2 3 4 5 6 7 8 1 chunk +1 line, -1 line 0 comments Download
M media/filters/gpu_video_accelerator_factories.h View 1 2 3 4 2 chunks +8 lines, -4 lines 0 comments Download
M media/filters/gpu_video_decoder.h View 1 2 3 4 5 6 7 8 1 chunk +0 lines, -1 line 0 comments Download
M media/filters/gpu_video_decoder.cc View 1 2 3 4 5 6 7 8 2 chunks +1 line, -5 lines 0 comments Download
M media/filters/mock_gpu_video_accelerator_factories.h View 1 2 3 4 2 chunks +3 lines, -4 lines 0 comments Download
M media/filters/mock_gpu_video_accelerator_factories.cc View 1 chunk +2 lines, -4 lines 0 comments Download
M media/video/video_decode_accelerator.h View 1 2 3 4 5 chunks +10 lines, -12 lines 0 comments Download
M media/video/video_encode_accelerator.h View 1 2 3 4 4 chunks +9 lines, -8 lines 0 comments Download

Messages

Total messages: 54 (0 generated)
sheu
Looking pretty close to where I want it. posciak@: you get a first look at ...
6 years, 9 months ago (2014-03-06 08:56:11 UTC) #1
sheu
Update: waiting on: https://chromiumcodereview.appspot.com/198073003/ to fix the Windows linker issues I keep on encountering here.
6 years, 9 months ago (2014-03-12 23:23:07 UTC) #2
Pawel Osciak
Great stuff. No major issues from me. https://codereview.chromium.org/185403020/diff/250001/content/common/gpu/client/gpu_channel_host.cc File content/common/gpu/client/gpu_channel_host.cc (right): https://codereview.chromium.org/185403020/diff/250001/content/common/gpu/client/gpu_channel_host.cc#newcode194 content/common/gpu/client/gpu_channel_host.cc:194: DCHECK(it != ...
6 years, 9 months ago (2014-03-13 06:18:12 UTC) #3
sheu
Updated. PTAL https://chromiumcodereview.appspot.com/185403020/diff/250001/content/common/gpu/client/gpu_channel_host.cc File content/common/gpu/client/gpu_channel_host.cc (right): https://chromiumcodereview.appspot.com/185403020/diff/250001/content/common/gpu/client/gpu_channel_host.cc#newcode194 content/common/gpu/client/gpu_channel_host.cc:194: DCHECK(it != proxies_.end()); On 2014/03/13 06:18:13, Pawel ...
6 years, 9 months ago (2014-03-13 22:39:52 UTC) #4
sheu
Alrighty, I'm gonna add in That Guy. Ami: this is the solution to the ugliness ...
6 years, 9 months ago (2014-03-13 22:53:37 UTC) #5
Ami GONE FROM CHROMIUM
I <3 this CL. https://chromiumcodereview.appspot.com/185403020/diff/270001/content/common/gpu/client/gpu_video_decode_accelerator_host.cc File content/common/gpu/client/gpu_video_decode_accelerator_host.cc (right): https://chromiumcodereview.appspot.com/185403020/diff/270001/content/common/gpu/client/gpu_video_decode_accelerator_host.cc#newcode82 content/common/gpu/client/gpu_video_decode_accelerator_host.cc:82: NOTIFY_ERROR(PLATFORM_FAILURE) << "OnChannelError()"; This will ...
6 years, 9 months ago (2014-03-17 03:17:53 UTC) #6
Ami GONE FROM CHROMIUM
On 2014/03/13 22:53:37, sheu wrote: > Alrighty, I'm gonna add in That Guy. nit: you ...
6 years, 9 months ago (2014-03-17 03:19:04 UTC) #7
sheu
Updated, PTAL. https://chromiumcodereview.appspot.com/185403020/diff/270001/content/common/gpu/client/gpu_video_decode_accelerator_host.cc File content/common/gpu/client/gpu_video_decode_accelerator_host.cc (right): https://chromiumcodereview.appspot.com/185403020/diff/270001/content/common/gpu/client/gpu_video_decode_accelerator_host.cc#newcode82 content/common/gpu/client/gpu_video_decode_accelerator_host.cc:82: NOTIFY_ERROR(PLATFORM_FAILURE) << "OnChannelError()"; On 2014/03/17 03:17:54, Ami ...
6 years, 9 months ago (2014-03-18 22:38:35 UTC) #8
Ami GONE FROM CHROMIUM
LGTM % nits (though I think there are a couple of bugs noted below) https://chromiumcodereview.appspot.com/185403020/diff/270001/content/common/gpu/gpu_command_buffer_stub.cc ...
6 years, 9 months ago (2014-03-18 23:53:18 UTC) #9
sheu
Adding OWNERs. sievers@: PTAL at the content/common/gpu/client/* and content/common/gpu/gpu_* bits, thanks! Most changes should be ...
6 years, 9 months ago (2014-03-19 20:38:24 UTC) #10
sheu
Actually adding sievers@. Description in previous comment, thanks!
6 years, 9 months ago (2014-03-19 20:38:56 UTC) #11
no sievers
lgtm https://chromiumcodereview.appspot.com/185403020/diff/310001/content/common/gpu/client/gpu_video_decode_accelerator_host.cc File content/common/gpu/client/gpu_video_decode_accelerator_host.cc (right): https://chromiumcodereview.appspot.com/185403020/diff/310001/content/common/gpu/client/gpu_video_decode_accelerator_host.cc#newcode31 content/common/gpu/client/gpu_video_decode_accelerator_host.cc:31: decoder_route_id_(-1), MSG_ROUTING_NONE https://chromiumcodereview.appspot.com/185403020/diff/310001/content/common/gpu/client/gpu_video_decode_accelerator_host.cc#newcode43 content/common/gpu/client/gpu_video_decode_accelerator_host.cc:43: if (channel_) if (channel ...
6 years, 9 months ago (2014-03-19 21:33:15 UTC) #12
sheu
https://chromiumcodereview.appspot.com/185403020/diff/310001/content/common/gpu/client/gpu_video_decode_accelerator_host.cc File content/common/gpu/client/gpu_video_decode_accelerator_host.cc (right): https://chromiumcodereview.appspot.com/185403020/diff/310001/content/common/gpu/client/gpu_video_decode_accelerator_host.cc#newcode31 content/common/gpu/client/gpu_video_decode_accelerator_host.cc:31: decoder_route_id_(-1), On 2014/03/19 21:33:16, sievers wrote: > MSG_ROUTING_NONE Done. ...
6 years, 9 months ago (2014-03-20 00:30:31 UTC) #13
sheu
Last bits. Pretty simple. cevans@: PTAL at content/common/gpu/gpu_messages.h bbudge@: PTAL at content/renderer/pepper/*.
6 years, 9 months ago (2014-03-20 01:10:16 UTC) #14
bbudge
content/renderer/pepper LGTM
6 years, 9 months ago (2014-03-20 17:18:58 UTC) #15
sheu
jschuh@: PTAL at content/common/gpu/gpu_messages.h, thanks.
6 years, 9 months ago (2014-03-21 23:21:52 UTC) #16
jschuh
ipc security lgtm (note: no change in attack surface)
6 years, 9 months ago (2014-03-22 00:29:49 UTC) #17
sheu
Yay red bots Found the bug. Fixed in: https://chromiumcodereview.appspot.com/208653009/ will try again after that lands.
6 years, 9 months ago (2014-03-22 00:48:27 UTC) #18
sheu
(whoops, ignore the above. Wrong CL.)
6 years, 9 months ago (2014-03-22 00:49:37 UTC) #19
sheu
The CQ bit was checked by sheu@chromium.org
6 years, 9 months ago (2014-03-22 01:01:21 UTC) #20
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/sheu@chromium.org/185403020/350001
6 years, 9 months ago (2014-03-22 01:02:14 UTC) #21
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 9 months ago (2014-03-22 01:55:19 UTC) #22
commit-bot: I haz the power
Try jobs failed on following builders: tryserver.chromium on linux_chromium_chromeos_rel
6 years, 9 months ago (2014-03-22 01:55:19 UTC) #23
sheu
The CQ bit was checked by sheu@chromium.org
6 years, 9 months ago (2014-03-22 08:13:14 UTC) #24
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/sheu@chromium.org/185403020/350001
6 years, 9 months ago (2014-03-22 08:13:19 UTC) #25
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 9 months ago (2014-03-22 08:13:32 UTC) #26
commit-bot: I haz the power
Failed to apply patch for chrome/renderer/media/cast_rtp_stream.cc: While running patch -p1 --forward --force --no-backup-if-mismatch; patching file ...
6 years, 9 months ago (2014-03-22 08:13:32 UTC) #27
sheu
The CQ bit was checked by sheu@chromium.org
6 years, 9 months ago (2014-03-22 08:28:52 UTC) #28
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/sheu@chromium.org/185403020/390001
6 years, 9 months ago (2014-03-22 08:29:00 UTC) #29
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 9 months ago (2014-03-22 09:07:32 UTC) #30
commit-bot: I haz the power
Retried try job too often on win_rel for step(s) base_unittests, browser_tests, interactive_ui_tests, net_unittests, unit_tests http://build.chromium.org/p/tryserver.chromium/buildstatus?builder=win_rel&number=286480
6 years, 9 months ago (2014-03-22 09:07:33 UTC) #31
sheu
The CQ bit was checked by sheu@chromium.org
6 years, 9 months ago (2014-03-23 21:48:13 UTC) #32
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/sheu@chromium.org/185403020/420001
6 years, 9 months ago (2014-03-23 21:48:16 UTC) #33
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 9 months ago (2014-03-23 22:03:29 UTC) #34
commit-bot: I haz the power
Try jobs failed on following builders: tryserver.chromium on mac_chromium_rel
6 years, 9 months ago (2014-03-23 22:03:30 UTC) #35
sheu
The CQ bit was checked by sheu@chromium.org
6 years, 9 months ago (2014-03-24 23:27:18 UTC) #36
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/sheu@chromium.org/185403020/440001
6 years, 9 months ago (2014-03-24 23:28:34 UTC) #37
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 9 months ago (2014-03-25 00:19:50 UTC) #38
commit-bot: I haz the power
Try jobs failed on following builders: tryserver.chromium on linux_chromium_chromeos_rel
6 years, 9 months ago (2014-03-25 00:19:51 UTC) #39
sheu
The CQ bit was checked by sheu@chromium.org
6 years, 9 months ago (2014-03-25 00:20:23 UTC) #40
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/sheu@chromium.org/185403020/440001
6 years, 9 months ago (2014-03-25 00:21:09 UTC) #41
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 9 months ago (2014-03-25 00:53:22 UTC) #42
commit-bot: I haz the power
Try jobs failed on following builders: tryserver.chromium on linux_chromium_rel
6 years, 9 months ago (2014-03-25 00:53:23 UTC) #43
sheu
The CQ bit was checked by sheu@chromium.org
6 years, 8 months ago (2014-04-02 20:20:57 UTC) #44
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/sheu@chromium.org/185403020/560001
6 years, 8 months ago (2014-04-02 20:21:44 UTC) #45
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 8 months ago (2014-04-03 06:36:11 UTC) #46
commit-bot: I haz the power
Try jobs failed on following builders: tryserver.chromium on linux_chromium_chromeos_rel
6 years, 8 months ago (2014-04-03 06:36:12 UTC) #47
sheu
The CQ bit was checked by sheu@chromium.org
6 years, 8 months ago (2014-04-03 06:53:34 UTC) #48
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/sheu@chromium.org/185403020/560001
6 years, 8 months ago (2014-04-03 06:55:47 UTC) #49
commit-bot: I haz the power
The CQ bit was unchecked by commit-bot@chromium.org
6 years, 8 months ago (2014-04-03 08:32:41 UTC) #50
commit-bot: I haz the power
Commit queue rejected this change because the description was changed between the time the change ...
6 years, 8 months ago (2014-04-03 08:32:42 UTC) #51
sheu
The CQ bit was checked by sheu@chromium.org
6 years, 8 months ago (2014-04-03 08:52:59 UTC) #52
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/sheu@chromium.org/185403020/560001
6 years, 8 months ago (2014-04-03 08:54:06 UTC) #53
commit-bot: I haz the power
6 years, 8 months ago (2014-04-03 12:12:10 UTC) #54
Message was sent while issue was closed.
Change committed as 261365

Powered by Google App Engine
This is Rietveld 408576698