[MappableSI] Enabled MappableSI in RenderableGpuMemoryBufferVideoFramePool. [chromium/src : main]

0 views
Skip to first unread message

vikas soni (Gerrit)

unread,
Jul 24, 2024, 3:03:53 PM (3 days ago) Jul 24
to Vasiliy Telezhnikov, Dale Curtis, Eugene Zemtsov, Dirk Schulze, Stephen Chenney, AyeAye, Chromium LUCI CQ, chromium...@chromium.org, kinuko...@chromium.org, blink-reviews-p...@chromium.org, fmalit...@chromium.org, fserb...@chromium.org, blink-...@chromium.org, drott+bl...@chromium.org, blundell+...@chromium.org, cc-...@chromium.org, feature-me...@chromium.org, jophba...@chromium.org, mfoltz...@chromium.org
Attention needed from Dale Curtis and Vasiliy Telezhnikov

vikas soni added 1 comment

Patchset-level comments
File-level comment, Patchset 4 (Latest):
vikas soni . resolved

Sending out this CL to kickoff review (% a webcodecs test hang which was recently added and is being suppressed shortly by eugene@)

Open in Gerrit

Related details

Attention is currently required from:
  • Dale Curtis
  • Vasiliy Telezhnikov
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Review
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: I3d57b9ccf474469846eeb404b4788a8665cc7156
Gerrit-Change-Number: 5735155
Gerrit-PatchSet: 4
Gerrit-Owner: vikas soni <vika...@chromium.org>
Gerrit-Reviewer: Dale Curtis <dalec...@chromium.org>
Gerrit-Reviewer: Vasiliy Telezhnikov <vas...@chromium.org>
Gerrit-Reviewer: vikas soni <vika...@chromium.org>
Gerrit-CC: Dirk Schulze <dsch...@chromium.org>
Gerrit-CC: Eugene Zemtsov <eug...@chromium.org>
Gerrit-CC: Stephen Chenney <sche...@chromium.org>
Gerrit-Attention: Dale Curtis <dalec...@chromium.org>
Gerrit-Attention: Vasiliy Telezhnikov <vas...@chromium.org>
Gerrit-Comment-Date: Wed, 24 Jul 2024 19:03:38 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Dale Curtis (Gerrit)

unread,
Jul 24, 2024, 6:25:58 PM (3 days ago) Jul 24
to vikas soni, Vasiliy Telezhnikov, Eugene Zemtsov, Dirk Schulze, Stephen Chenney, AyeAye, Chromium LUCI CQ, chromium...@chromium.org, kinuko...@chromium.org, blink-reviews-p...@chromium.org, fmalit...@chromium.org, fserb...@chromium.org, blink-...@chromium.org, drott+bl...@chromium.org, blundell+...@chromium.org, cc-...@chromium.org, feature-me...@chromium.org, jophba...@chromium.org, mfoltz...@chromium.org
Attention needed from Vasiliy Telezhnikov and vikas soni

Dale Curtis voted and added 2 comments

Votes added by Dale Curtis

Code-Review+1

2 comments

File media/video/renderable_gpu_memory_buffer_video_frame_pool.cc
Line 37, Patchset 4 (Latest): "AlwaysUseMappablSIForRenderableGpuMemoryBufferVideoFramePool",
Dale Curtis . unresolved

s/Always// also spelling is wrong.

Line 301, Patchset 4 (Latest): if (base::FeatureList::IsEnabled(
Dale Curtis . unresolved

Should this be injected based on the bool?

Open in Gerrit

Related details

Attention is currently required from:
  • Vasiliy Telezhnikov
  • vikas soni
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement satisfiedCode-Review
  • requirement is not satisfiedNo-Unresolved-Comments
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: I3d57b9ccf474469846eeb404b4788a8665cc7156
Gerrit-Change-Number: 5735155
Gerrit-PatchSet: 4
Gerrit-Owner: vikas soni <vika...@chromium.org>
Gerrit-Reviewer: Dale Curtis <dalec...@chromium.org>
Gerrit-Reviewer: Vasiliy Telezhnikov <vas...@chromium.org>
Gerrit-Reviewer: vikas soni <vika...@chromium.org>
Gerrit-CC: Dirk Schulze <dsch...@chromium.org>
Gerrit-CC: Eugene Zemtsov <eug...@chromium.org>
Gerrit-CC: Stephen Chenney <sche...@chromium.org>
Gerrit-Attention: Vasiliy Telezhnikov <vas...@chromium.org>
Gerrit-Attention: vikas soni <vika...@chromium.org>
Gerrit-Comment-Date: Wed, 24 Jul 2024 22:25:45 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: Yes
satisfied_requirement
unsatisfied_requirement
open
diffy

vikas soni (Gerrit)

unread,
Jul 25, 2024, 11:51:10 AM (2 days ago) Jul 25
to Dale Curtis, Vasiliy Telezhnikov, Eugene Zemtsov, Dirk Schulze, Stephen Chenney, AyeAye, Chromium LUCI CQ, chromium...@chromium.org, kinuko...@chromium.org, blink-reviews-p...@chromium.org, fmalit...@chromium.org, fserb...@chromium.org, blink-...@chromium.org, drott+bl...@chromium.org, blundell+...@chromium.org, cc-...@chromium.org, feature-me...@chromium.org, jophba...@chromium.org, mfoltz...@chromium.org
Attention needed from Vasiliy Telezhnikov

vikas soni voted and added 2 comments

Votes added by vikas soni

Commit-Queue+1

2 comments

File media/video/renderable_gpu_memory_buffer_video_frame_pool.cc
Line 37, Patchset 4: "AlwaysUseMappablSIForRenderableGpuMemoryBufferVideoFramePool",
Dale Curtis . resolved

s/Always// also spelling is wrong.

vikas soni

Done

Line 301, Patchset 4: if (base::FeatureList::IsEnabled(
Dale Curtis . resolved

Should this be injected based on the bool?

vikas soni

updated code to remove passing and caching the bool in Frameresource since we actually don't need it and can just use FeatureList::IsEnabled() here.

Open in Gerrit

Related details

Attention is currently required from:
  • Vasiliy Telezhnikov
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement satisfiedCode-Review
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: I3d57b9ccf474469846eeb404b4788a8665cc7156
Gerrit-Change-Number: 5735155
Gerrit-PatchSet: 5
Gerrit-Owner: vikas soni <vika...@chromium.org>
Gerrit-Reviewer: Dale Curtis <dalec...@chromium.org>
Gerrit-Reviewer: Vasiliy Telezhnikov <vas...@chromium.org>
Gerrit-Reviewer: vikas soni <vika...@chromium.org>
Gerrit-CC: Dirk Schulze <dsch...@chromium.org>
Gerrit-CC: Eugene Zemtsov <eug...@chromium.org>
Gerrit-CC: Stephen Chenney <sche...@chromium.org>
Gerrit-Attention: Vasiliy Telezhnikov <vas...@chromium.org>
Gerrit-Comment-Date: Thu, 25 Jul 2024 15:50:58 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: Yes
Comment-In-Reply-To: Dale Curtis <dalec...@chromium.org>
satisfied_requirement
open
diffy

Vasiliy Telezhnikov (Gerrit)

unread,
Jul 25, 2024, 1:07:29 PM (2 days ago) Jul 25
to vikas soni, Dale Curtis, Eugene Zemtsov, Dirk Schulze, Stephen Chenney, AyeAye, Chromium LUCI CQ, chromium...@chromium.org, kinuko...@chromium.org, blink-reviews-p...@chromium.org, fmalit...@chromium.org, fserb...@chromium.org, blink-...@chromium.org, drott+bl...@chromium.org, blundell+...@chromium.org, cc-...@chromium.org, feature-me...@chromium.org, jophba...@chromium.org, mfoltz...@chromium.org
Attention needed from vikas soni

Vasiliy Telezhnikov added 1 comment

Patchset-level comments
File-level comment, Patchset 5 (Latest):
Vasiliy Telezhnikov . resolved

Question: We don't serialize native buffer inside CSI over mojo yet, how does it work?

Do we never send these VideoFrames over mojo or they didn't need to be mappable in a first place? Or we need them to be mappable only in the same process?

Open in Gerrit

Related details

Attention is currently required from:
  • vikas soni
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement satisfiedCode-Review
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: I3d57b9ccf474469846eeb404b4788a8665cc7156
Gerrit-Change-Number: 5735155
Gerrit-PatchSet: 5
Gerrit-Owner: vikas soni <vika...@chromium.org>
Gerrit-Reviewer: Dale Curtis <dalec...@chromium.org>
Gerrit-Reviewer: Vasiliy Telezhnikov <vas...@chromium.org>
Gerrit-Reviewer: vikas soni <vika...@chromium.org>
Gerrit-CC: Dirk Schulze <dsch...@chromium.org>
Gerrit-CC: Eugene Zemtsov <eug...@chromium.org>
Gerrit-CC: Stephen Chenney <sche...@chromium.org>
Gerrit-Attention: vikas soni <vika...@chromium.org>
Gerrit-Comment-Date: Thu, 25 Jul 2024 17:07:15 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
open
diffy

vikas soni (Gerrit)

unread,
Jul 25, 2024, 3:49:31 PM (2 days ago) Jul 25
to Dale Curtis, Vasiliy Telezhnikov, Eugene Zemtsov, Dirk Schulze, Stephen Chenney, AyeAye, Chromium LUCI CQ, chromium...@chromium.org, kinuko...@chromium.org, blink-reviews-p...@chromium.org, fmalit...@chromium.org, fserb...@chromium.org, blink-...@chromium.org, drott+bl...@chromium.org, blundell+...@chromium.org, cc-...@chromium.org, feature-me...@chromium.org, jophba...@chromium.org, mfoltz...@chromium.org
Attention needed from Vasiliy Telezhnikov

vikas soni added 1 comment

Patchset-level comments
Vasiliy Telezhnikov . resolved

Question: We don't serialize native buffer inside CSI over mojo yet, how does it work?

Do we never send these VideoFrames over mojo or they didn't need to be mappable in a first place? Or we need them to be mappable only in the same process?

vikas soni

I looked into all the client which uses RenderableGpuMemoryBufferVideoFramePool.

1. Webrtc uses it in its readback path [1]
webrtc gets a VF backed by gmb from this pool and then does a readback from source texture to this GMB. GMB is always mapped in the renderer/same process.

2. WebGraphicsContext3DProvider uses it to blit shared images into the GpuMemoryBuffer backed VideoFrames coming from pool [2].

it seems like we never use vf csi across process to map in any of above cases.

[1] https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/platform/webrtc/webrtc_video_frame_adapter.cc;drc=4268052f5025da8b928c9e59a04493b396acaad3;l=271

[2] https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/platform/graphics/web_graphics_context_3d_video_frame_pool.cc;drc=4268052f5025da8b928c9e59a04493b396acaad3;l=313

Open in Gerrit

Related details

Attention is currently required from:
  • Vasiliy Telezhnikov
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement satisfiedCode-Review
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: I3d57b9ccf474469846eeb404b4788a8665cc7156
Gerrit-Change-Number: 5735155
Gerrit-PatchSet: 5
Gerrit-Owner: vikas soni <vika...@chromium.org>
Gerrit-Reviewer: Dale Curtis <dalec...@chromium.org>
Gerrit-Reviewer: Vasiliy Telezhnikov <vas...@chromium.org>
Gerrit-Reviewer: vikas soni <vika...@chromium.org>
Gerrit-CC: Dirk Schulze <dsch...@chromium.org>
Gerrit-CC: Eugene Zemtsov <eug...@chromium.org>
Gerrit-CC: Stephen Chenney <sche...@chromium.org>
Gerrit-Attention: Vasiliy Telezhnikov <vas...@chromium.org>
Gerrit-Comment-Date: Thu, 25 Jul 2024 19:49:20 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Vasiliy Telezhnikov <vas...@chromium.org>
satisfied_requirement
open
diffy

Vasiliy Telezhnikov (Gerrit)

unread,
Jul 25, 2024, 4:13:19 PM (2 days ago) Jul 25
to vikas soni, Dale Curtis, Eugene Zemtsov, Dirk Schulze, Stephen Chenney, AyeAye, Chromium LUCI CQ, chromium...@chromium.org, kinuko...@chromium.org, blink-reviews-p...@chromium.org, fmalit...@chromium.org, fserb...@chromium.org, blink-...@chromium.org, drott+bl...@chromium.org, blundell+...@chromium.org, cc-...@chromium.org, feature-me...@chromium.org, jophba...@chromium.org, mfoltz...@chromium.org
Attention needed from vikas soni

Vasiliy Telezhnikov added 1 comment

Patchset-level comments
Vasiliy Telezhnikov . resolved

Question: We don't serialize native buffer inside CSI over mojo yet, how does it work?

Do we never send these VideoFrames over mojo or they didn't need to be mappable in a first place? Or we need them to be mappable only in the same process?

vikas soni

I looked into all the client which uses RenderableGpuMemoryBufferVideoFramePool.

1. Webrtc uses it in its readback path [1]
webrtc gets a VF backed by gmb from this pool and then does a readback from source texture to this GMB. GMB is always mapped in the renderer/same process.

2. WebGraphicsContext3DProvider uses it to blit shared images into the GpuMemoryBuffer backed VideoFrames coming from pool [2].

it seems like we never use vf csi across process to map in any of above cases.

[1] https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/platform/webrtc/webrtc_video_frame_adapter.cc;drc=4268052f5025da8b928c9e59a04493b396acaad3;l=271

[2] https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/platform/graphics/web_graphics_context_3d_video_frame_pool.cc;drc=4268052f5025da8b928c9e59a04493b396acaad3;l=313

Vasiliy Telezhnikov

[2] Passes frame to the [callback](https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/platform/graphics/web_graphics_context_3d_video_frame_pool.cc;drc=4268052f5025da8b928c9e59a04493b396acaad3;l=340) after that, so that VideoFrame can end up in many places.

I think it should be on a meet path, and meet was using hardware encoders sometimes. But it's hard to track all destinations of the VideoFrame.

Open in Gerrit

Related details

Attention is currently required from:
  • vikas soni
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement satisfiedCode-Review
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: I3d57b9ccf474469846eeb404b4788a8665cc7156
Gerrit-Change-Number: 5735155
Gerrit-PatchSet: 5
Gerrit-Owner: vikas soni <vika...@chromium.org>
Gerrit-Reviewer: Dale Curtis <dalec...@chromium.org>
Gerrit-Reviewer: Vasiliy Telezhnikov <vas...@chromium.org>
Gerrit-Reviewer: vikas soni <vika...@chromium.org>
Gerrit-CC: Dirk Schulze <dsch...@chromium.org>
Gerrit-CC: Eugene Zemtsov <eug...@chromium.org>
Gerrit-CC: Stephen Chenney <sche...@chromium.org>
Gerrit-Attention: vikas soni <vika...@chromium.org>
Gerrit-Comment-Date: Thu, 25 Jul 2024 20:13:06 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Vasiliy Telezhnikov <vas...@chromium.org>
Comment-In-Reply-To: vikas soni <vika...@chromium.org>
satisfied_requirement
open
diffy

vikas soni (Gerrit)

unread,
Jul 25, 2024, 4:28:25 PM (2 days ago) Jul 25
to Dale Curtis, Vasiliy Telezhnikov, Eugene Zemtsov, Dirk Schulze, Stephen Chenney, AyeAye, Chromium LUCI CQ, chromium...@chromium.org, kinuko...@chromium.org, blink-reviews-p...@chromium.org, fmalit...@chromium.org, fserb...@chromium.org, blink-...@chromium.org, drott+bl...@chromium.org, blundell+...@chromium.org, cc-...@chromium.org, feature-me...@chromium.org, jophba...@chromium.org, mfoltz...@chromium.org
Attention needed from Vasiliy Telezhnikov

vikas soni added 1 comment

Patchset-level comments
Vasiliy Telezhnikov . resolved

Question: We don't serialize native buffer inside CSI over mojo yet, how does it work?

Do we never send these VideoFrames over mojo or they didn't need to be mappable in a first place? Or we need them to be mappable only in the same process?

vikas soni

I looked into all the client which uses RenderableGpuMemoryBufferVideoFramePool.

1. Webrtc uses it in its readback path [1]
webrtc gets a VF backed by gmb from this pool and then does a readback from source texture to this GMB. GMB is always mapped in the renderer/same process.

2. WebGraphicsContext3DProvider uses it to blit shared images into the GpuMemoryBuffer backed VideoFrames coming from pool [2].

it seems like we never use vf csi across process to map in any of above cases.

[1] https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/platform/webrtc/webrtc_video_frame_adapter.cc;drc=4268052f5025da8b928c9e59a04493b396acaad3;l=271

[2] https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/platform/graphics/web_graphics_context_3d_video_frame_pool.cc;drc=4268052f5025da8b928c9e59a04493b396acaad3;l=313

Vasiliy Telezhnikov

[2] Passes frame to the [callback](https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/platform/graphics/web_graphics_context_3d_video_frame_pool.cc;drc=4268052f5025da8b928c9e59a04493b396acaad3;l=340) after that, so that VideoFrame can end up in many places.

I think it should be on a meet path, and meet was using hardware encoders sometimes. But it's hard to track all destinations of the VideoFrame.

vikas soni

yes the callback goes to gpu process and then its difficult to track all the destinations after it. i guess we have a kill-switch here in case test doesnt cover some use case which we are missing. we can disable it if needed.

Open in Gerrit

Related details

Attention is currently required from:
  • Vasiliy Telezhnikov
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement satisfiedCode-Review
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: I3d57b9ccf474469846eeb404b4788a8665cc7156
Gerrit-Change-Number: 5735155
Gerrit-PatchSet: 5
Gerrit-Owner: vikas soni <vika...@chromium.org>
Gerrit-Reviewer: Dale Curtis <dalec...@chromium.org>
Gerrit-Reviewer: Vasiliy Telezhnikov <vas...@chromium.org>
Gerrit-Reviewer: vikas soni <vika...@chromium.org>
Gerrit-CC: Dirk Schulze <dsch...@chromium.org>
Gerrit-CC: Eugene Zemtsov <eug...@chromium.org>
Gerrit-CC: Stephen Chenney <sche...@chromium.org>
Gerrit-Attention: Vasiliy Telezhnikov <vas...@chromium.org>
Gerrit-Comment-Date: Thu, 25 Jul 2024 20:28:12 +0000
satisfied_requirement
open
diffy

vikas soni (Gerrit)

unread,
Jul 25, 2024, 4:37:26 PM (2 days ago) Jul 25
to Dale Curtis, Vasiliy Telezhnikov, Eugene Zemtsov, Dirk Schulze, Stephen Chenney, AyeAye, Chromium LUCI CQ, chromium...@chromium.org, kinuko...@chromium.org, blink-reviews-p...@chromium.org, fmalit...@chromium.org, fserb...@chromium.org, blink-...@chromium.org, drott+bl...@chromium.org, blundell+...@chromium.org, cc-...@chromium.org, feature-me...@chromium.org, jophba...@chromium.org, mfoltz...@chromium.org
Attention needed from Vasiliy Telezhnikov

vikas soni added 1 comment

Patchset-level comments
Vasiliy Telezhnikov . resolved

Question: We don't serialize native buffer inside CSI over mojo yet, how does it work?

Do we never send these VideoFrames over mojo or they didn't need to be mappable in a first place? Or we need them to be mappable only in the same process?

vikas soni

I looked into all the client which uses RenderableGpuMemoryBufferVideoFramePool.

1. Webrtc uses it in its readback path [1]
webrtc gets a VF backed by gmb from this pool and then does a readback from source texture to this GMB. GMB is always mapped in the renderer/same process.

2. WebGraphicsContext3DProvider uses it to blit shared images into the GpuMemoryBuffer backed VideoFrames coming from pool [2].

it seems like we never use vf csi across process to map in any of above cases.

[1] https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/platform/webrtc/webrtc_video_frame_adapter.cc;drc=4268052f5025da8b928c9e59a04493b396acaad3;l=271

[2] https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/platform/graphics/web_graphics_context_3d_video_frame_pool.cc;drc=4268052f5025da8b928c9e59a04493b396acaad3;l=313

Vasiliy Telezhnikov

[2] Passes frame to the [callback](https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/platform/graphics/web_graphics_context_3d_video_frame_pool.cc;drc=4268052f5025da8b928c9e59a04493b396acaad3;l=340) after that, so that VideoFrame can end up in many places.

I think it should be on a meet path, and meet was using hardware encoders sometimes. But it's hard to track all destinations of the VideoFrame.

vikas soni

yes the callback goes to gpu process and then its difficult to track all the destinations after it. i guess we have a kill-switch here in case test doesnt cover some use case which we are missing. we can disable it if needed.

vikas soni

atleast from looking at VideoFrame::MapGMBOrSharedImage() [1], it doesnt seems like we might be mapping cross process.

[1] https://source.chromium.org/chromium/chromium/src/+/main:media/base/video_frame.cc;drc=4268052f5025da8b928c9e59a04493b396acaad3;l=1358

Gerrit-Comment-Date: Thu, 25 Jul 2024 20:37:10 +0000
satisfied_requirement
open
diffy

vikas soni (Gerrit)

unread,
Jul 25, 2024, 4:38:38 PM (2 days ago) Jul 25
to Dale Curtis, Vasiliy Telezhnikov, Eugene Zemtsov, Dirk Schulze, Stephen Chenney, AyeAye, Chromium LUCI CQ, chromium...@chromium.org, kinuko...@chromium.org, blink-reviews-p...@chromium.org, fmalit...@chromium.org, fserb...@chromium.org, blink-...@chromium.org, drott+bl...@chromium.org, blundell+...@chromium.org, cc-...@chromium.org, feature-me...@chromium.org, jophba...@chromium.org, mfoltz...@chromium.org
Attention needed from Vasiliy Telezhnikov

vikas soni added 1 comment

Patchset-level comments
Vasiliy Telezhnikov . resolved

Question: We don't serialize native buffer inside CSI over mojo yet, how does it work?

Do we never send these VideoFrames over mojo or they didn't need to be mappable in a first place? Or we need them to be mappable only in the same process?

vikas soni

I looked into all the client which uses RenderableGpuMemoryBufferVideoFramePool.

1. Webrtc uses it in its readback path [1]
webrtc gets a VF backed by gmb from this pool and then does a readback from source texture to this GMB. GMB is always mapped in the renderer/same process.

2. WebGraphicsContext3DProvider uses it to blit shared images into the GpuMemoryBuffer backed VideoFrames coming from pool [2].

it seems like we never use vf csi across process to map in any of above cases.

[1] https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/platform/webrtc/webrtc_video_frame_adapter.cc;drc=4268052f5025da8b928c9e59a04493b396acaad3;l=271

[2] https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/platform/graphics/web_graphics_context_3d_video_frame_pool.cc;drc=4268052f5025da8b928c9e59a04493b396acaad3;l=313

Vasiliy Telezhnikov

[2] Passes frame to the [callback](https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/platform/graphics/web_graphics_context_3d_video_frame_pool.cc;drc=4268052f5025da8b928c9e59a04493b396acaad3;l=340) after that, so that VideoFrame can end up in many places.

I think it should be on a meet path, and meet was using hardware encoders sometimes. But it's hard to track all destinations of the VideoFrame.

vikas soni

yes the callback goes to gpu process and then its difficult to track all the destinations after it. i guess we have a kill-switch here in case test doesnt cover some use case which we are missing. we can disable it if needed.

vikas soni

atleast from looking at VideoFrame::MapGMBOrSharedImage() [1], it doesnt seems like we might be mapping cross process.

[1] https://source.chromium.org/chromium/chromium/src/+/main:media/base/video_frame.cc;drc=4268052f5025da8b928c9e59a04493b396acaad3;l=1358

vikas soni

except chromsOS probably

Gerrit-Comment-Date: Thu, 25 Jul 2024 20:38:25 +0000
satisfied_requirement
open
diffy

vikas soni (Gerrit)

unread,
Jul 25, 2024, 7:16:40 PM (2 days ago) Jul 25
to Dale Curtis, Vasiliy Telezhnikov, Eugene Zemtsov, Dirk Schulze, Stephen Chenney, AyeAye, Chromium LUCI CQ, chromium...@chromium.org, kinuko...@chromium.org, blink-reviews-p...@chromium.org, fmalit...@chromium.org, fserb...@chromium.org, blink-...@chromium.org, drott+bl...@chromium.org, blundell+...@chromium.org, cc-...@chromium.org, feature-me...@chromium.org, jophba...@chromium.org, mfoltz...@chromium.org
Patchset-level comments
vikas soni

ok. i was looking into adding support for passing gmb handles in ExportedSharedImage and just realized that we already send the gmb handle in mojo for VideoFrames via VideoFrame::GetGpuMemoryBufferHandle() here [1] which is very nice. It grabs the handle from mappableSI.
so ideally we can convert all use of VideoFrame::WrapExternalGpuMemoryBuffer() first and update this mojo site as last client.
wdyt?

[1] https://source.chromium.org/chromium/chromium/src/+/main:media/mojo/mojom/video_frame_mojom_traits.cc;drc=4268052f5025da8b928c9e59a04493b396acaad3;l=132

Gerrit-Comment-Date: Thu, 25 Jul 2024 23:16:27 +0000
satisfied_requirement
open
diffy

Vasiliy Telezhnikov (Gerrit)

unread,
Jul 26, 2024, 9:11:56 AM (23 hours ago) Jul 26
to vikas soni, Dale Curtis, Eugene Zemtsov, Dirk Schulze, Stephen Chenney, AyeAye, Chromium LUCI CQ, chromium...@chromium.org, kinuko...@chromium.org, blink-reviews-p...@chromium.org, fmalit...@chromium.org, fserb...@chromium.org, blink-...@chromium.org, drott+bl...@chromium.org, blundell+...@chromium.org, cc-...@chromium.org, feature-me...@chromium.org, jophba...@chromium.org, mfoltz...@chromium.org
Attention needed from vikas soni

Vasiliy Telezhnikov voted and added 2 comments

Votes added by Vasiliy Telezhnikov

Code-Review+1

2 comments

Patchset-level comments
Vasiliy Telezhnikov . resolved

lgtm, thanks.

Vasiliy Telezhnikov

Ah, that's how it works. VideoFrame is still mappable, but just using old path. Then we can convert in any order, I guess.

Open in Gerrit

Related details

Attention is currently required from:
  • vikas soni
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement satisfiedCode-Review
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: I3d57b9ccf474469846eeb404b4788a8665cc7156
Gerrit-Change-Number: 5735155
Gerrit-PatchSet: 5
Gerrit-Owner: vikas soni <vika...@chromium.org>
Gerrit-Reviewer: Dale Curtis <dalec...@chromium.org>
Gerrit-Reviewer: Vasiliy Telezhnikov <vas...@chromium.org>
Gerrit-Reviewer: vikas soni <vika...@chromium.org>
Gerrit-CC: Dirk Schulze <dsch...@chromium.org>
Gerrit-CC: Eugene Zemtsov <eug...@chromium.org>
Gerrit-CC: Stephen Chenney <sche...@chromium.org>
Gerrit-Attention: vikas soni <vika...@chromium.org>
Gerrit-Comment-Date: Fri, 26 Jul 2024 13:11:45 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: Yes
satisfied_requirement
open
diffy

vikas soni (Gerrit)

unread,
Jul 26, 2024, 9:33:13 AM (23 hours ago) Jul 26
to Khushal Sagar, Vasiliy Telezhnikov, Dale Curtis, Eugene Zemtsov, Dirk Schulze, Stephen Chenney, AyeAye, Chromium LUCI CQ, chromium...@chromium.org, kinuko...@chromium.org, blink-reviews-p...@chromium.org, fmalit...@chromium.org, fserb...@chromium.org, blink-...@chromium.org, drott+bl...@chromium.org, blundell+...@chromium.org, cc-...@chromium.org, feature-me...@chromium.org, jophba...@chromium.org, mfoltz...@chromium.org
Attention needed from Khushal Sagar

vikas soni voted and added 1 comment

Votes added by vikas soni

Auto-Submit+1

1 comment

Patchset-level comments
vikas soni . resolved

+Khushal for blink/

Open in Gerrit

Related details

Attention is currently required from:
  • Khushal Sagar
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement satisfiedCode-Review
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: I3d57b9ccf474469846eeb404b4788a8665cc7156
Gerrit-Change-Number: 5735155
Gerrit-PatchSet: 5
Gerrit-Owner: vikas soni <vika...@chromium.org>
Gerrit-Reviewer: Dale Curtis <dalec...@chromium.org>
Gerrit-Reviewer: Khushal Sagar <khusha...@chromium.org>
Gerrit-Reviewer: Vasiliy Telezhnikov <vas...@chromium.org>
Gerrit-Reviewer: vikas soni <vika...@chromium.org>
Gerrit-CC: Dirk Schulze <dsch...@chromium.org>
Gerrit-CC: Eugene Zemtsov <eug...@chromium.org>
Gerrit-CC: Stephen Chenney <sche...@chromium.org>
Gerrit-Attention: Khushal Sagar <khusha...@chromium.org>
Gerrit-Comment-Date: Fri, 26 Jul 2024 13:33:01 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: Yes
satisfied_requirement
open
diffy

Khushal Sagar (Gerrit)

unread,
Jul 26, 2024, 4:57:42 PM (15 hours ago) Jul 26
to vikas soni, Vasiliy Telezhnikov, Dale Curtis, Eugene Zemtsov, Dirk Schulze, Stephen Chenney, AyeAye, Chromium LUCI CQ, chromium...@chromium.org, kinuko...@chromium.org, blink-reviews-p...@chromium.org, fmalit...@chromium.org, fserb...@chromium.org, blink-...@chromium.org, drott+bl...@chromium.org, blundell+...@chromium.org, cc-...@chromium.org, feature-me...@chromium.org, jophba...@chromium.org, mfoltz...@chromium.org
Attention needed from vikas soni

Khushal Sagar voted

Code-Review+1
Commit-Queue+2
Open in Gerrit

Related details

Attention is currently required from:
  • vikas soni
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement satisfiedCode-Review
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: I3d57b9ccf474469846eeb404b4788a8665cc7156
Gerrit-Change-Number: 5735155
Gerrit-PatchSet: 5
Gerrit-Owner: vikas soni <vika...@chromium.org>
Gerrit-Reviewer: Dale Curtis <dalec...@chromium.org>
Gerrit-Reviewer: Khushal Sagar <khusha...@chromium.org>
Gerrit-Reviewer: Vasiliy Telezhnikov <vas...@chromium.org>
Gerrit-Reviewer: vikas soni <vika...@chromium.org>
Gerrit-CC: Dirk Schulze <dsch...@chromium.org>
Gerrit-CC: Eugene Zemtsov <eug...@chromium.org>
Gerrit-CC: Stephen Chenney <sche...@chromium.org>
Gerrit-Attention: vikas soni <vika...@chromium.org>
Gerrit-Comment-Date: Fri, 26 Jul 2024 20:57:29 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
satisfied_requirement
open
diffy

Chromium LUCI CQ (Gerrit)

unread,
Jul 26, 2024, 6:36:00 PM (14 hours ago) Jul 26
to vikas soni, Khushal Sagar, Vasiliy Telezhnikov, Dale Curtis, Eugene Zemtsov, Dirk Schulze, Stephen Chenney, AyeAye, chromium...@chromium.org, kinuko...@chromium.org, blink-reviews-p...@chromium.org, fmalit...@chromium.org, fserb...@chromium.org, blink-...@chromium.org, drott+bl...@chromium.org, blundell+...@chromium.org, cc-...@chromium.org, feature-me...@chromium.org, jophba...@chromium.org, mfoltz...@chromium.org

Chromium LUCI CQ submitted the change

Change information

Commit message:
[MappableSI] Enabled MappableSI in
RenderableGpuMemoryBufferVideoFramePool.

1. Enable MappableSI in RenderableGpuMemoryBufferVideoFramePool.
2. Add a kill-switch for it.
3. Update relevant unittests.
Bug: 40263579
Change-Id: I3d57b9ccf474469846eeb404b4788a8665cc7156
Commit-Queue: Khushal Sagar <khusha...@chromium.org>
Auto-Submit: vikas soni <vika...@chromium.org>
Reviewed-by: Dale Curtis <dalec...@chromium.org>
Reviewed-by: Vasiliy Telezhnikov <vas...@chromium.org>
Reviewed-by: Khushal Sagar <khusha...@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1333812}
Files:
  • M components/viz/service/frame_sinks/gmb_video_frame_pool_context_provider_impl.cc
  • M components/viz/service/frame_sinks/video_capture/frame_sink_video_capturer_impl_unittest.cc
  • M media/video/renderable_gpu_memory_buffer_video_frame_pool.cc
  • M media/video/renderable_gpu_memory_buffer_video_frame_pool.h
  • M media/video/renderable_gpu_memory_buffer_video_frame_pool_unittest.cc
  • M third_party/blink/renderer/platform/graphics/web_graphics_context_3d_video_frame_pool.cc
  • M third_party/blink/renderer/platform/webrtc/webrtc_video_frame_adapter.cc
Change size: L
Delta: 7 files changed, 230 insertions(+), 84 deletions(-)
Branch: refs/heads/main
Submit Requirements:
  • requirement satisfiedCode-Review: +1 by Vasiliy Telezhnikov, +1 by Dale Curtis, +1 by Khushal Sagar
Open in Gerrit
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: merged
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: I3d57b9ccf474469846eeb404b4788a8665cc7156
Gerrit-Change-Number: 5735155
Gerrit-PatchSet: 6
Gerrit-Owner: vikas soni <vika...@chromium.org>
Gerrit-Reviewer: Chromium LUCI CQ <chromiu...@luci-project-accounts.iam.gserviceaccount.com>
Gerrit-Reviewer: Dale Curtis <dalec...@chromium.org>
Gerrit-Reviewer: Khushal Sagar <khusha...@chromium.org>
Gerrit-Reviewer: Vasiliy Telezhnikov <vas...@chromium.org>
Gerrit-Reviewer: vikas soni <vika...@chromium.org>
open
diffy
satisfied_requirement
Reply all
Reply to author
Forward
0 new messages