Chromium Code Reviews

Issue 2736643004: Add DCLayerOverlayProcessor and supporting DCLayer structures. (Closed)

Created:
3 years, 9 months ago by jbauman
Modified:
3 years, 9 months ago
Reviewers:
ccameron
CC:
chromium-reviews, cc-bugs_chromium.org, mac-reviews_chromium.org
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Add DCLayerOverlayProcessor and supporting DCLayer structures. DirectComposition layers are more flexible than normal hardware overlays - for example they can have clip rects, be arbitrarily transformed, and soon will have other capabilities like stacking contexts. So it makes sense to transmit them to the GPU process using a new glScheduleDCLayerCHROMIUM command. The gpu command buffer code is mostly a copy and paste of the CALayer code. The main difference for now is that it has a z order instead of a sorting context, but they'll diverge more over time. We can't DCLayers the same exact way as we currently use CALayers because tile quads aren't accessible as DirectComposition surfaces so complete RenderPasses can't be converted to use DCLayers. So we need to create a new DCLayerOverlayProcessor that behaves somewhat similarly to the regular OverlayProcessor. This processor supports both promoting a single on top quad to an overlay, as well as promoting other video quads to be underlays. BUG=678800 CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Review-Url: https://codereview.chromium.org/2736643004 Cr-Commit-Position: refs/heads/master@{#456512} Committed: https://chromium.googlesource.com/chromium/src/+/80ceeee5bc83abc038e4e8cc4e0e8d0fbc710576

Patch Set 1 #

Total comments: 1

Patch Set 2 : split CALayerOverlay into DCLayerOverlay #

Unified diffs Side-by-side diffs Stats (+1384 lines, -146 lines)
M cc/BUILD.gn View 1 chunk +2 lines, -0 lines 0 comments
A cc/output/dc_layer_overlay.h View 1 chunk +101 lines, -0 lines 0 comments
A cc/output/dc_layer_overlay.cc View 1 chunk +184 lines, -0 lines 0 comments
M cc/output/direct_renderer.h View 2 chunks +2 lines, -0 lines 0 comments
M cc/output/direct_renderer.cc View 1 chunk +1 line, -0 lines 0 comments
M cc/output/gl_renderer.h View 1 chunk +1 line, -0 lines 0 comments
M cc/output/gl_renderer.cc View 2 chunks +59 lines, -0 lines 0 comments
M cc/output/gl_renderer_unittest.cc View 2 chunks +3 lines, -0 lines 0 comments
M cc/output/overlay_candidate_validator.h View 1 chunk +4 lines, -0 lines 0 comments
M cc/output/overlay_processor.h View 3 chunks +12 lines, -0 lines 0 comments
M cc/output/overlay_processor.cc View 5 chunks +30 lines, -0 lines 0 comments
M cc/output/overlay_unittest.cc View 59 chunks +242 lines, -100 lines 0 comments
M components/display_compositor/compositor_overlay_candidate_validator_android.h View 1 chunk +1 line, -0 lines 0 comments
M components/display_compositor/compositor_overlay_candidate_validator_android.cc View 1 chunk +4 lines, -0 lines 0 comments
M components/display_compositor/compositor_overlay_candidate_validator_mac.h View 1 chunk +1 line, -0 lines 0 comments
M components/display_compositor/compositor_overlay_candidate_validator_mac.mm View 1 chunk +4 lines, -0 lines 0 comments
M components/display_compositor/compositor_overlay_candidate_validator_ozone.h View 1 chunk +1 line, -0 lines 0 comments
M components/display_compositor/compositor_overlay_candidate_validator_ozone.cc View 1 chunk +4 lines, -0 lines 0 comments
M components/display_compositor/compositor_overlay_candidate_validator_win.h View 1 chunk +1 line, -0 lines 0 comments
M components/display_compositor/compositor_overlay_candidate_validator_win.cc View 2 chunks +5 lines, -12 lines 0 comments
M gpu/GLES2/gl2chromium_autogen.h View 1 chunk +3 lines, -0 lines 0 comments
M gpu/command_buffer/build_gles2_cmd_buffer.py View 1 chunk +17 lines, -0 lines 0 comments
M gpu/command_buffer/client/gles2_c_lib_autogen.h View 2 chunks +28 lines, -0 lines 0 comments
M gpu/command_buffer/client/gles2_cmd_helper_autogen.h View 1 chunk +26 lines, -0 lines 0 comments
M gpu/command_buffer/client/gles2_implementation.cc View 1 chunk +41 lines, -0 lines 0 comments
M gpu/command_buffer/client/gles2_implementation_autogen.h View 1 chunk +13 lines, -0 lines 0 comments
M gpu/command_buffer/client/gles2_interface_autogen.h View 1 chunk +11 lines, -0 lines 0 comments
M gpu/command_buffer/client/gles2_interface_stub_autogen.h View 1 chunk +11 lines, -0 lines 0 comments
M gpu/command_buffer/client/gles2_interface_stub_impl_autogen.h View 1 chunk +13 lines, -0 lines 0 comments
M gpu/command_buffer/client/gles2_trace_implementation_autogen.h View 1 chunk +11 lines, -0 lines 0 comments
M gpu/command_buffer/client/gles2_trace_implementation_impl_autogen.h View 1 chunk +25 lines, -0 lines 0 comments
M gpu/command_buffer/cmd_buffer_functions.txt View 1 chunk +2 lines, -0 lines 0 comments
M gpu/command_buffer/common/gles2_cmd_format_autogen.h View 1 chunk +132 lines, -0 lines 0 comments
M gpu/command_buffer/common/gles2_cmd_format_test_autogen.h View 1 chunk +37 lines, -0 lines 0 comments
M gpu/command_buffer/common/gles2_cmd_ids_autogen.h View 1 chunk +36 lines, -34 lines 0 comments
M gpu/command_buffer/service/gles2_cmd_decoder.cc View 9 chunks +105 lines, -0 lines 0 comments
M gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doer_prototypes.h View 1 chunk +10 lines, -0 lines 0 comments
M gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doers.cc View 1 chunk +20 lines, -0 lines 0 comments
M gpu/command_buffer/service/gles2_cmd_decoder_passthrough_handlers.cc View 1 chunk +51 lines, -0 lines 0 comments
M ui/gl/BUILD.gn View 1 chunk +2 lines, -0 lines 0 comments
A ui/gl/dc_renderer_layer_params.h View 1 chunk +78 lines, -0 lines 0 comments
A ui/gl/dc_renderer_layer_params.cc View 1 chunk +36 lines, -0 lines 0 comments
M ui/gl/gl_surface.h View 3 chunks +4 lines, -0 lines 0 comments
M ui/gl/gl_surface.cc View 2 chunks +10 lines, -0 lines 0 comments

Depends on Patchset:

Dependent Patchsets:

Messages

Total messages: 25 (18 generated)
jbauman
3 years, 9 months ago (2017-03-07 22:56:36 UTC) #7
ccameron
I'd prefer not to reuse the CALayerOverlay structure For expediency (if we're iterating on designs), ...
3 years, 9 months ago (2017-03-08 01:02:39 UTC) #8
jbauman
Ok, in this version splitting out everything DCLayer related from the CALayer stuff, including the ...
3 years, 9 months ago (2017-03-09 00:59:28 UTC) #13
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2736643004/20001
3 years, 9 months ago (2017-03-13 19:46:32 UTC) #18
commit-bot: I haz the power
Try jobs failed on following builders: linux_chromium_chromeos_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_chromeos_rel_ng/builds/382308)
3 years, 9 months ago (2017-03-13 21:27:41 UTC) #20
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2736643004/20001
3 years, 9 months ago (2017-03-13 21:47:37 UTC) #22
commit-bot: I haz the power
3 years, 9 months ago (2017-03-13 22:44:45 UTC) #25
Message was sent while issue was closed.
Committed patchset #2 (id:20001) as
https://chromium.googlesource.com/chromium/src/+/80ceeee5bc83abc038e4e8cc4e0e...

Powered by Google App Engine