Commit f8a99004 authored by Christopher Cameron's avatar Christopher Cameron Committed by Commit Bot

Mac zero copy capture: Update SCANOUT_VEA_READ_CAMERA_AND_CPU_READ_WRITE

This constant is used for buffers used by video capture. On macOS, these
buffers are only evern written to in the capture process, directly as
IOSurfaces. Once they are sent to other processes, no CPU writes are
performed.

To that end, use the flag kIOSurfaceLockReadOnly to prevent unnecessary
synchronization between CPU access (e.g, for software encode) and GPU
access (e.g, for compositing).

Bug: 1130101, 1125879
Change-Id: I108f15e5cf4aa0dc92bf24fffce907accdeb57de
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2419715Reviewed-by: default avatarRobert Sesek <rsesek@chromium.org>
Reviewed-by: default avatarDaniele Castagna <dcastagna@chromium.org>
Commit-Queue: ccameron <ccameron@chromium.org>
Cr-Commit-Position: refs/heads/master@{#809054}
parent e6dc3ecc
......@@ -24,13 +24,20 @@ uint32_t LockFlags(gfx::BufferUsage usage) {
switch (usage) {
case gfx::BufferUsage::GPU_READ_CPU_READ_WRITE:
return kIOSurfaceLockAvoidSync;
case gfx::BufferUsage::SCANOUT_VEA_READ_CAMERA_AND_CPU_READ_WRITE:
// This constant is used for buffers used by video capture. On macOS,
// these buffers are only ever written to in the capture process,
// directly as IOSurfaces. Once they are sent to other processes, no CPU
// writes are performed.
// TODO(https://crbug.com/1130101): A more accurate usage constant may be
// appropriate.
return kIOSurfaceLockReadOnly;
case gfx::BufferUsage::GPU_READ:
case gfx::BufferUsage::SCANOUT:
case gfx::BufferUsage::SCANOUT_CAMERA_READ_WRITE:
case gfx::BufferUsage::CAMERA_AND_CPU_READ_WRITE:
case gfx::BufferUsage::SCANOUT_CPU_READ_WRITE:
case gfx::BufferUsage::SCANOUT_VDA_WRITE:
case gfx::BufferUsage::SCANOUT_VEA_READ_CAMERA_AND_CPU_READ_WRITE:
return 0;
}
NOTREACHED();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment