New issue
Advanced search Search tips

Issue 729238 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner: ----
Closed: Aug 13
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Windows
Pri: 2
Type: Feature

Blocking:
issue 641132



Sign in to add a comment

Enable textures that must be promoted to overlays.

Project Member Reported by jbau...@chromium.org, Jun 2 2017

Issue description

Some types of textures (e.g. encrypted video) can't be read from D3D, so DWM or a hardware overlay must be used to read them.

 
Cc: liber...@chromium.org
Project Member

Comment 2 by bugdroid1@chromium.org, Jun 13 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6abe558714692485d29e724beea91d641f98bdb7

commit 6abe558714692485d29e724beea91d641f98bdb7
Author: jbauman <jbauman@chromium.org>
Date: Tue Jun 13 21:22:17 2017

Add flag to signal that video frame must be drawn using an overlay.

Some textures must be put into overlays, so add a flag to YUVVideoDrawQuad
to signal that to the renderer.

BUG= 729238 
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel

Review-Url: https://codereview.chromium.org/2919863004
Cr-Commit-Position: refs/heads/master@{#479155}

[modify] https://crrev.com/6abe558714692485d29e724beea91d641f98bdb7/cc/ipc/cc_param_traits_unittest.cc
[modify] https://crrev.com/6abe558714692485d29e724beea91d641f98bdb7/cc/ipc/quads.mojom
[modify] https://crrev.com/6abe558714692485d29e724beea91d641f98bdb7/cc/ipc/quads_struct_traits.cc
[modify] https://crrev.com/6abe558714692485d29e724beea91d641f98bdb7/cc/ipc/quads_struct_traits.h
[modify] https://crrev.com/6abe558714692485d29e724beea91d641f98bdb7/cc/ipc/struct_traits_unittest.cc
[modify] https://crrev.com/6abe558714692485d29e724beea91d641f98bdb7/cc/layers/video_layer_impl.cc
[modify] https://crrev.com/6abe558714692485d29e724beea91d641f98bdb7/cc/layers/video_layer_impl_unittest.cc
[modify] https://crrev.com/6abe558714692485d29e724beea91d641f98bdb7/cc/quads/draw_quad_unittest.cc
[modify] https://crrev.com/6abe558714692485d29e724beea91d641f98bdb7/cc/quads/yuv_video_draw_quad.cc
[modify] https://crrev.com/6abe558714692485d29e724beea91d641f98bdb7/cc/quads/yuv_video_draw_quad.h
[modify] https://crrev.com/6abe558714692485d29e724beea91d641f98bdb7/media/base/video_frame_metadata.h

Project Member

Comment 3 by bugdroid1@chromium.org, Jun 27 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/96927e55783a3f369b57f4011954302292395b0b

commit 96927e55783a3f369b57f4011954302292395b0b
Author: jbauman <jbauman@chromium.org>
Date: Tue Jun 27 01:33:28 2017

Add support to GLRenderer for different blending for solid color quads

kDstOut is a useful blending type for the hole-punching needed to draw
overlays, and we want to be able to apply it to solid color quads.

BUG= 729238 
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel

Review-Url: https://codereview.chromium.org/2936343002
Cr-Commit-Position: refs/heads/master@{#482504}

[modify] https://crrev.com/96927e55783a3f369b57f4011954302292395b0b/cc/output/gl_renderer.cc
[modify] https://crrev.com/96927e55783a3f369b57f4011954302292395b0b/cc/output/renderer_pixeltest.cc

Project Member

Comment 4 by bugdroid1@chromium.org, Jul 11 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/fc666dc7bc9d5141a6457ee08b0004c705463140

commit fc666dc7bc9d5141a6457ee08b0004c705463140
Author: jbauman <jbauman@chromium.org>
Date: Tue Jul 11 22:31:50 2017

Allow presenting DXGI share handles as overlays.

Create a new type of GLImage representing an NV12 DXGI share handle (and
array level) and support displaying it in an overlay.

BUG= 729238 
CQ_INCLUDE_TRYBOTS=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/2968503003
Cr-Commit-Position: refs/heads/master@{#485701}

[modify] https://crrev.com/fc666dc7bc9d5141a6457ee08b0004c705463140/gpu/ipc/service/direct_composition_surface_win.cc
[modify] https://crrev.com/fc666dc7bc9d5141a6457ee08b0004c705463140/gpu/ipc/service/direct_composition_surface_win_unittest.cc
[modify] https://crrev.com/fc666dc7bc9d5141a6457ee08b0004c705463140/media/gpu/dxva_picture_buffer_win.cc
[modify] https://crrev.com/fc666dc7bc9d5141a6457ee08b0004c705463140/ui/gl/gl_image_dxgi.cc
[modify] https://crrev.com/fc666dc7bc9d5141a6457ee08b0004c705463140/ui/gl/gl_image_dxgi.h

Project Member

Comment 5 by bugdroid1@chromium.org, Jul 12 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7d74c8949d47bf12272c0057d1656179349ee485

commit 7d74c8949d47bf12272c0057d1656179349ee485
Author: jbauman <jbauman@chromium.org>
Date: Wed Jul 12 22:08:27 2017

Revert of Allow presenting DXGI share handles as overlays. (patchset #5 id:80001 of https://codereview.chromium.org/2968503003/ )

Reason for revert:
On NVIDIA drivers it causes an error -
 [396:4308:0711/184358.172:ERROR:direct_composition_surface_win.cc(640)] Error acquiring keyed mutex: 887a0001

See https://luci-logdog.appspot.com/v/?s=chromium%2Fbb%2Fchromium.gpu.fyi%2FWin10_Debug__NVIDIA_%2F1504%2F%2B%2Frecipes%2Fsteps%2Fpixel_test_on_NVIDIA_GPU_on_Windows_on_Windows-10%2F0%2Fstdout

Original issue's description:
> Allow presenting DXGI share handles as overlays.
>
> Create a new type of GLImage representing an NV12 DXGI share handle (and
> array level) and support displaying it in an overlay.
>
> BUG= 729238 
> CQ_INCLUDE_TRYBOTS=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/2968503003
> Cr-Commit-Position: refs/heads/master@{#485701}
> Committed: https://chromium.googlesource.com/chromium/src/+/fc666dc7bc9d5141a6457ee08b0004c705463140

TBR=sunnyps@chromium.org,sandersd@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG= 729238 

Review-Url: https://codereview.chromium.org/2981713002
Cr-Commit-Position: refs/heads/master@{#486128}

[modify] https://crrev.com/7d74c8949d47bf12272c0057d1656179349ee485/gpu/ipc/service/direct_composition_surface_win.cc
[modify] https://crrev.com/7d74c8949d47bf12272c0057d1656179349ee485/gpu/ipc/service/direct_composition_surface_win_unittest.cc
[modify] https://crrev.com/7d74c8949d47bf12272c0057d1656179349ee485/media/gpu/dxva_picture_buffer_win.cc
[modify] https://crrev.com/7d74c8949d47bf12272c0057d1656179349ee485/ui/gl/gl_image_dxgi.cc
[modify] https://crrev.com/7d74c8949d47bf12272c0057d1656179349ee485/ui/gl/gl_image_dxgi.h

Project Member

Comment 6 by bugdroid1@chromium.org, Jul 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c4700d5a444904d53a5b576ff3cfb7fcff55890e

commit c4700d5a444904d53a5b576ff3cfb7fcff55890e
Author: jbauman <jbauman@chromium.org>
Date: Thu Jul 20 19:36:18 2017

Allow presenting DXGI share handles as overlays.

Create a new type of GLImage representing an NV12 DXGI share handle (and
array level) and support displaying it in an overlay.

BUG= 729238 
CQ_INCLUDE_TRYBOTS=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/2968503003
Cr-Original-Commit-Position: refs/heads/master@{#485701}
Committed: https://chromium.googlesource.com/chromium/src/+/fc666dc7bc9d5141a6457ee08b0004c705463140
Review-Url: https://codereview.chromium.org/2968503003
Cr-Commit-Position: refs/heads/master@{#488354}

[modify] https://crrev.com/c4700d5a444904d53a5b576ff3cfb7fcff55890e/gpu/ipc/service/direct_composition_surface_win.cc
[modify] https://crrev.com/c4700d5a444904d53a5b576ff3cfb7fcff55890e/gpu/ipc/service/direct_composition_surface_win_unittest.cc
[modify] https://crrev.com/c4700d5a444904d53a5b576ff3cfb7fcff55890e/media/gpu/dxva_picture_buffer_win.cc
[modify] https://crrev.com/c4700d5a444904d53a5b576ff3cfb7fcff55890e/ui/gl/gl_image_dxgi.cc
[modify] https://crrev.com/c4700d5a444904d53a5b576ff3cfb7fcff55890e/ui/gl/gl_image_dxgi.h

Project Member

Comment 7 by bugdroid1@chromium.org, Jul 26 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/226fdf11486f75e360a9ccb1414a33992f747b72

commit 226fdf11486f75e360a9ccb1414a33992f747b72
Author: John Bauman <jbauman@chromium.org>
Date: Wed Jul 26 00:47:56 2017

Allow DCLayerOverlayProcessor to process all RenderPasses

In the future we'll have protected textures that must be promoted to
overlays, even if they're not in the root renderpass. This patch doesn't
include code to promote non-root renderpasses to overlays, but just
ensures that all the passes are given to the DCLayerOverlayProcessor so
it could iterate over them.

Bug:  729238 
Change-Id: I00503fd14799611630c0ae82fa3d94c1cfd10057
Reviewed-on: https://chromium-review.googlesource.com/581989
Reviewed-by: ccameron chromium <ccameron@chromium.org>
Commit-Queue: John Bauman <jbauman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#489501}
[modify] https://crrev.com/226fdf11486f75e360a9ccb1414a33992f747b72/cc/output/dc_layer_overlay.cc
[modify] https://crrev.com/226fdf11486f75e360a9ccb1414a33992f747b72/cc/output/dc_layer_overlay.h
[modify] https://crrev.com/226fdf11486f75e360a9ccb1414a33992f747b72/cc/output/direct_renderer.cc
[modify] https://crrev.com/226fdf11486f75e360a9ccb1414a33992f747b72/cc/output/overlay_processor.cc
[modify] https://crrev.com/226fdf11486f75e360a9ccb1414a33992f747b72/cc/output/overlay_processor.h
[modify] https://crrev.com/226fdf11486f75e360a9ccb1414a33992f747b72/cc/output/overlay_unittest.cc

Project Member

Comment 8 by bugdroid1@chromium.org, Aug 4 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0527df0ef97eb668b92eb7953550d83a106604e0

commit 0527df0ef97eb668b92eb7953550d83a106604e0
Author: John Bauman <jbauman@chromium.org>
Date: Fri Aug 04 22:45:31 2017

Add support for putting textures outside the root pass into overlays.

Protected textures can't be accessed with GL and must be drawn using
overlays, even if the results aren't perfect.

Add a new feature flag to support textures that require overlays, but
are in a child renderpass. Punch-through rectangles will be placed in
the parent renderpasses, so the contents won't respect pixel-moving
filters or other more complex situations, but should still be visible.
All the area for all punch-through rectangles will be marked as damaged
every frame, because this case should be very rare and performance is
not as important as displaying the video at all.

Bug:  729238 
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
Change-Id: I47d9c1a220198e0a0119a6dfd3b35178195136b2
Reviewed-on: https://chromium-review.googlesource.com/592397
Reviewed-by: ccameron chromium <ccameron@chromium.org>
Commit-Queue: John Bauman <jbauman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#492159}
[modify] https://crrev.com/0527df0ef97eb668b92eb7953550d83a106604e0/cc/output/dc_layer_overlay.cc
[modify] https://crrev.com/0527df0ef97eb668b92eb7953550d83a106604e0/cc/output/dc_layer_overlay.h
[modify] https://crrev.com/0527df0ef97eb668b92eb7953550d83a106604e0/cc/output/overlay_unittest.cc
[modify] https://crrev.com/0527df0ef97eb668b92eb7953550d83a106604e0/tools/metrics/histograms/enums.xml
[modify] https://crrev.com/0527df0ef97eb668b92eb7953550d83a106604e0/ui/gl/gl_switches.cc
[modify] https://crrev.com/0527df0ef97eb668b92eb7953550d83a106604e0/ui/gl/gl_switches.h

Blocking: 641132
Owner: ----
Status: Available (was: Started)
Now, textures that must be promoted to overlays should mostly work if the REQUIRE_OVERLAY flag is set on the VideoFrame, Chrome detects that overlays are enabled on the system, and the DirectCompositionNonrootOverlays feature flag is enabled.

If the textures need to come from outside the GPU process we'll need something like https://codereview.chromium.org/2970353002/

Project Member

Comment 12 by sheriffbot@chromium.org, Aug 13

Labels: Hotlist-Recharge-Cold
Status: Untriaged (was: Available)
This issue has been Available for over a year. If it's no longer important or seems unlikely to be fixed, please consider closing it out. If it is important, please re-triage the issue.

Sorry for the inconvenience if the bug really should have been left as Available.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Status: Fixed (was: Untriaged)

Sign in to add a comment