New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 683347 link

Starred by 9 users

Issue metadata

Status: Verified
Owner:
Last visit 21 days ago
Closed: Mar 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 3
Type: Feature

Blocked on:
issue 510252
issue 524582
issue 607241
issue 702750
issue 741833
issue 786842

Blocking:
issue 370522
issue 587130
issue 813250



Sign in to add a comment

YUV video overlay support in Chrome OS IA

Project Member Reported by dongseon...@intel.com, Jan 20 2017

Issue description

Skylake or newer generation can support YUV video overlay.
The available format is YUYV, because it's common denominator over all stack.
* minigbm supports YUYV and UYVY. refer to src/platform/minigbm/i915.c
* mesa supports YUYV. refer to src/third_party/mesa/src/mesa/drivers/dri/i965/intel_screen.c
* linux supports YUYV and UYVY overlay. refer to src/third_party/kernel/v4.4/drivers/gpu/drm/i915/intel_sprite.c
* vaapi/intel-driver supports YUYV and UYVY decode. refer to src/i965_drv_video.c in https://cgit.freedesktop.org/vaapi/intel-driver

to be short, it's because MESA EGL support not UYVY but YUYV for EGL_EXT_image_dma_buf_import extensions.

I measure power consumption on prototype. YUYV with overlay saves 8.8% power consumption compared to as-is.
I use Skylake Acer Chromebook 14 with upstream kernel (due to atomic page flip) on http://browsertests.herokuapp.com/media/h264.html
The test compares between current (BGRA) and new (YUYV) gpu decoding with and without overlay
* BGRA: 6.6462 W
* BGRA with overlay: 6.1734 W
* YUYV: 6.1729 W
* YUYV with overlay: 6.0593 W

Say in English
* BGRA with overlay saves 7.1% power compared to BGRA
* YUYV saves 7.1% power compared to BGRA
* YUYV with overlay saves 1.8% power compared to YUYV
* YUYV with overlay saves 8.8% power compared to BGRA
 
Blockedon: 510252 524582
Blocking: 370522 587130
Cc: dnicoara@chromium.org reve...@chromium.org ccameron@chromium.org dcasta...@chromium.org marc...@chromium.org kalyan.k...@intel.com spang@chromium.org
Here's main CL: https://codereview.chromium.org/2648633005
It shows 8.8% power saving.

In detail, how to measure power consumption:
I use power_supply_info command line tool.
Full charge chromebook and plug out. Chromebook uses battery and I read "energy rate", which indicate energy rate between battery and chromebook.
Set brightness is 1 (not turn off monitor, but lowest level). If turn off monitor, vsync event isn't fired.
Cc: johnson....@intel.com
Cc: posciak@chromium.org
Components: OS>Kernel>Video

Comment 4 by enne@chromium.org, Jan 31 2017

Status: Assigned (was: Untriaged)
As reviewer requested, I'm splitting CLs

cc: UYVY video is not premultiplied rgba https://codereview.chromium.org/2684073006/
Introduce gfx::BufferFormat::YUYV_422 https://codereview.chromium.org/2689453002
Make OverlayCandidate use gfx::BufferFormat instead of cc::ResourceFormat https://codereview.chromium.org/2683763003/
gpu: merge gpu/ipc/host/gpu_memory_buffer_support.cc to gpu/ipc/common/ https://codereview.chromium.org/2649553003/
chromeos: gpu video decoder on Intel decodes video in YUYV format, instead of RGBA. https://codereview.chromium.org/2678343011/
ozone: prefer YUYV format for overlay. https://codereview.chromium.org/2686903003/
cros: Enable YUYV GPU memory buffer video frames https://codereview.chromium.org/2648633005/

There are so many CLs, so it's burdensome to check in. So it's temporary all merged CL for testing.
(NotForReview) Enable YUV video overlay on Skylake ChromeOS. https://codereview.chromium.org/2684993005
Project Member

Comment 6 by bugdroid1@chromium.org, Mar 14 2017

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

commit 8b03b3715b4f951d87890c6ef9f6cbe027f777f0
Author: dcastagna <dcastagna@chromium.org>
Date: Tue Mar 14 19:29:59 2017

cc: Make OverlayCandidate use gfx::BufferFormat instead of cc::ResourceFormat.

Use gfx::BufferFormat instead of cc::ResourceFormat in OverlayCandidate.

With crrev.com/2748903002 gfx::BufferFormat has been added to Resource.
OverlayCandidate can now use that gfx::BufferFormat instead of using
and hardcoded RGBA Resource format.

This patch was pulled from crrev.com/2683763003 patch 1. The original author is dongseong.hwang.

BUG= 695296 , 683347 
CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_trusty_blink_rel

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

[modify] https://crrev.com/8b03b3715b4f951d87890c6ef9f6cbe027f777f0/cc/output/overlay_candidate.cc
[modify] https://crrev.com/8b03b3715b4f951d87890c6ef9f6cbe027f777f0/cc/output/overlay_candidate.h
[modify] https://crrev.com/8b03b3715b4f951d87890c6ef9f6cbe027f777f0/components/display_compositor/compositor_overlay_candidate_validator_ozone.cc

Blockedon: 702750
#5 - as we fixed dma-buf issue, let me resume video overlay work.

We are working in progress to backport atomic mode setting to v4.4. We will be able to enable hardware overlay on new generation IA chromebook soon. I think it's good to make it ready from chromium side meanwhile.
Project Member

Comment 9 by bugdroid1@chromium.org, Jun 7 2017

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

commit 16c230301025a487d69f2233c4b1bf305367bb96
Author: dongseong.hwang <dongseong.hwang@intel.com>
Date: Wed Jun 07 21:13:18 2017

cc: make texture draw quad of video overlay candidate.

|overlay_resources.size_in_pixels| in TextureDrawQuad must have a value to
be promoted as overlay candidate.

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

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

[modify] https://crrev.com/16c230301025a487d69f2233c4b1bf305367bb96/cc/layers/video_layer_impl.cc
[modify] https://crrev.com/16c230301025a487d69f2233c4b1bf305367bb96/cc/layers/video_layer_impl_unittest.cc

Project Member

Comment 10 by bugdroid1@chromium.org, Jun 23 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/minigbm/+/750e0b9f71867900b27536c0fa80f25502e2b8c9

commit 750e0b9f71867900b27536c0fa80f25502e2b8c9
Author: Dongseong Hwang <dongseong.hwang@intel.com>
Date: Fri Jun 23 00:03:57 2017

minigbm: i915: add NV12 for EGLImage.

GPU decoder will use it. Unfortunately, IA doesn't support NV12 scanout plane
yet.

TEST=run mapped_texture_test -f NV12 of drm-tests package on amd64-generic
BUG= chromium:683347 

Change-Id: If83f961d59fff1d174926df0d96b665aef8b6048
Reviewed-on: https://chromium-review.googlesource.com/527701
Commit-Ready: Dongseong Hwang <dongseong.hwang@intel.com>
Tested-by: Dongseong Hwang <dongseong.hwang@intel.com>
Reviewed-by: Dongseong Hwang <dongseong.hwang@intel.com>
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>

[modify] https://crrev.com/750e0b9f71867900b27536c0fa80f25502e2b8c9/i915.c

Project Member

Comment 11 by bugdroid1@chromium.org, Jun 28 2017

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

commit a9bb336f1ec642759d6c1348cbff82f706d6e598
Author: Dongseong Hwang <dongseong.hwang@intel.com>
Date: Wed Jun 28 18:58:24 2017

cros, gbm: scale a overlay plane by native scaler, instead of VPP

Currently, for Intel, VPP (video processing hardware)[1] scales a overlay plane,
instead of display controller [2].

[1] https://software.intel.com/en-us/node/628415
[2] https://01.org/sites/default/files/documentation/intel-gfx-prm-osrc-skl-vol12-display.pdf

VPP scaler was introduced to support hardware overlay for old Intel SoCs.
However VPP scaling doesn't make sense because it consumes more bandwidth
(results in power) than GPU compositing. VPP needs to read the given buffer and
then write to new temp buffer. It already consumes similar bandwidth to GPU
compositing, but hardware overlay path still needs to send the overlay plane
to display controller. This CL removes this incorrect legacy, and make
scaling rely on the native scaler which atomic modeset API natively supports,
which finally display controller scales the plane by itself. For Intel, Skylake
or newer SoCs support it. [2]

In the code side, only Intel sets OverlayPlane::ProcessBufferCallback,
which points out VPP scaler.
HardwareDisplayPlaneManager already uses native scaler (i.e. display controller
scaler) via |crtc_w| and |crtc_h| value on drmModeAtomicAddProperty() call,
only if OverlayPlane::ProcessBufferCallback isn't set.

ARM and Rockchip don't set the callback and rely on native scaler already. cc
checks if display controller can support scale via OverlayCandidateValidator.
If not, cc composites the layer by GPU.

BUG= 683347 
TEST=run https://www.quirksmode.org/html5/tests/video.html on reef and eve
using cros kernel intel-graphics/syncfence_ams_npf_mst_607_r2 branch

Change-Id: Id492c0317313fe6a905ee96797ceefbb9746d798
Reviewed-on: https://chromium-review.googlesource.com/544617
Commit-Queue: Dongseong Hwang <dongseong.hwang@intel.com>
Reviewed-by: Daniel Nicoara <dnicoara@chromium.org>
Reviewed-by: Dongseong Hwang <dongseong.hwang@intel.com>
Cr-Commit-Position: refs/heads/master@{#483086}
[modify] https://crrev.com/a9bb336f1ec642759d6c1348cbff82f706d6e598/ui/ozone/platform/drm/gpu/drm_overlay_validator.cc
[modify] https://crrev.com/a9bb336f1ec642759d6c1348cbff82f706d6e598/ui/ozone/platform/drm/gpu/drm_overlay_validator.h
[modify] https://crrev.com/a9bb336f1ec642759d6c1348cbff82f706d6e598/ui/ozone/platform/drm/gpu/drm_overlay_validator_unittest.cc
[modify] https://crrev.com/a9bb336f1ec642759d6c1348cbff82f706d6e598/ui/ozone/platform/drm/gpu/drm_window.cc
[modify] https://crrev.com/a9bb336f1ec642759d6c1348cbff82f706d6e598/ui/ozone/platform/drm/gpu/overlay_plane.h

Project Member

Comment 12 by bugdroid1@chromium.org, Jun 29 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/minigbm/+/3909dc011bf32c13858fb80c33a3cce68769cb26

commit 3909dc011bf32c13858fb80c33a3cce68769cb26
Author: Dongseong Hwang <dongseong.hwang@intel.com>
Date: Thu Jun 29 21:16:37 2017

minigbm: add GBM_BO_USE_TEXTURING

Chromium passes in no flags to gbm_bo_create() to indicate the buffer will be
used as a texture. This convention has caused confusion in the past.

CL:448251 introduced BO_USE_TEXTURE, so it makes sense to match the more
explicit internal semantics.

TEST=run mapped_texture_test -f NV12 of drm-tests package on amd64-generic
BUG= chromium:683347 

Change-Id: I40782763d125e640b4bb6a157035b17ebc32cc8c
Reviewed-on: https://chromium-review.googlesource.com/546884
Commit-Ready: Dongseong Hwang <dongseong.hwang@intel.com>
Tested-by: Dongseong Hwang <dongseong.hwang@intel.com>
Reviewed-by: Dongseong Hwang <dongseong.hwang@intel.com>
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>

[modify] https://crrev.com/3909dc011bf32c13858fb80c33a3cce68769cb26/gbm_helpers.c
[modify] https://crrev.com/3909dc011bf32c13858fb80c33a3cce68769cb26/gbm.h

Project Member

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

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

commit aec223497e2e513f6385d61bb70bff90707dbee5
Author: Dongseong Hwang <dongseong.hwang@intel.com>
Date: Thu Jul 06 16:39:34 2017

Roll src/third_party/minigbm 878fed40..3909dc01

git log 878fed40..3909dc01 --date=short --no-merges --format='%ad %ae %s'
2017-06-23 dongseong.hwang@intel.com minigbm: add GBM_BO_USE_TEXTURING
2017-06-28 djmk@google.com Add tegra_bo_import to query tile format.
2017-05-31 gurchetansingh@chromium.org minigbm: cros_gralloc: refactor for future HALs
2017-06-07 dongseong.hwang@intel.com minigbm: i915: add NV12 for EGLImage.
2017-06-05 owenlin@google.com minigbm: Ensure DRM_FORMAT_YVU420_ANDROID meets Android requirements.
2017-06-14 dongseong.hwang@intel.com minigbm: i915: pass the right size to drv_add_combinations().
2017-04-18 shirish.s@amd.com minigbm: amdgpu: enable handling of NV12 & NV21 format
2017-05-26 gurchetansingh@google.com minigbm: cros_gralloc: fix incorrect handle calculations
2017-05-15 gurchetansingh@google.com minigbm: remove BO_USE_RENDERING from certain formats
2017-05-12 djkurtz@chromium.org minigbm: cros_gralloc: Do not lock gralloc_close
2017-05-15 gurchetansingh@google.com minigbm: fix typo in PRESUBMIT.cfg
2017-05-09 tfiga@chromium.org minigbm: cros_gralloc: Use pkg-config for LIBS
2017-05-03 lhchavez@google.com minigbm: cros_gralloc: Use pkg-config
2017-04-27 henryhsu@chromium.org Add HAL_PIXEL_FORMAT_BLOB format in cros gralloc
2017-01-18 gurchetansingh@chromium.org minigbm: i915: use explicit cache flush to maintain coherency
2017-01-05 gurchetansingh@chromium.org minigbm: i915: use DRM_IOCTL_I915_GEM_MMAP when needed
2017-01-17 gurchetansingh@chromium.org Revert "minigbm: i915: libdrm-ize backend"
2017-04-26 tfiga@chromium.org minigbm: cros_gralloc: Fix type mismatch on 64-bit builds
2017-04-19 sadmac@google.com minigbm: Add a LICENSE file
2017-04-07 gurchetansingh@google.com minigbm: virtio-gpu: add more supported formats
2017-04-04 gurchetansingh@chromium.org minigbm: disable default Chromium style checks
2017-04-04 gurchetansingh@chromium.org minigbm: vgem: add more supported formats
2017-03-20 gurchetansingh@chromium.org minigbm: cros_gralloc: fix modifier serialization/de-serialization
2017-03-20 gurchetansingh@chromium.org minigbm: cros_gralloc: remove constexpr functions
2017-03-20 gurchetansingh@chromium.org minigbm: cros_gralloc: remove memsets
2017-03-20 gurchetansingh@chromium.org minigbm: fix long lines missed by clang-format
2017-03-10 gurchetansingh@chromium.org minigbm: add clang-format and presubmit hooks
2017-03-23 gurchetansingh@chromium.org minigbm: rockchip: align to 128 bytes
2017-03-29 gurchetansingh@chromium.org minigbm: work with strides, not widths
2017-03-23 gurchetansingh@chromium.org minigbm: add bytes per pixel function
2017-03-29 gurchetansingh@chromium.org minigbm: fix stride logic
2017-03-21 gurchetansingh@chromium.org minigbm: rockchip: add NV12 back in as supported format
2017-03-16 gurchetansingh@chromium.org vgem: support DRM_FORMAT_YVU420_ANDROID
2017-03-16 gurchetansingh@chromium.org minigbm: i915: align YV12 to HW requirements
2017-02-08 gurchetansingh@chromium.org minigbm: add DRM_FORMAT_YVU420_ANDROID
2017-02-14 gurchetansingh@chromium.org minigbm: deal with ArcCodec use case by exposing struct map_info
2017-02-03 gurchetansingh@chromium.org minigbm: fix renderscipt allocation
2017-03-15 gurchetansingh@chromium.org minigbm: cros_gralloc: make HW_FB a no-op
2017-03-01 gurchetansingh@chromium.org minigbm: rework flag API
2017-03-08 gurchetansingh@chromium.org minigbm: cros_gralloc: back out of scanout flag with more clarity
2017-03-02 gurchetansingh@chromium.org minigbm: add BO_USE_TEXTURE
2017-02-04 kalyan.kondapally@intel.com Add support to build with Android.
2017-02-08 gurchetansingh@chromium.org minigbm: align first plane to 64 bytes
2017-02-13 gurchetansingh@chromium.org minigbm: add map_info to proper table
2017-01-23 gurchetansingh@chromium.org minigbm: rockchip: use height to calculate h_mbs

BUG= 683347 

Change-Id: Ia03954a516c4266a543cc69952985912796ae051
Reviewed-on: https://chromium-review.googlesource.com/556999
Reviewed-by: Dongseong Hwang <dongseong.hwang@intel.com>
Reviewed-by: Jochen Eisinger <jochen@chromium.org>
Commit-Queue: Dongseong Hwang <dongseong.hwang@intel.com>
Cr-Commit-Position: refs/heads/master@{#484631}
[modify] https://crrev.com/aec223497e2e513f6385d61bb70bff90707dbee5/DEPS

Blockedon: 741833
Project Member

Comment 15 by bugdroid1@chromium.org, Jul 14 2017

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

commit 5333b7b252d560643f7902aec5ea08ba550461b1
Author: Dongseong Hwang <dongseong.hwang@intel.com>
Date: Fri Jul 14 19:24:23 2017

ozone: remove unused ProcessBufferCallback.

It's used to scale an overlay plane using external hardware (e.g. video
processing), but not anymore. Chrome makes display controller scale by itself.

Note: this code never shipped on any devices because it requires
--enable-hardware-overlays flags on Intel, which never used by a product.

TBR=danakj@chromium.org
TEST=run chrome with --enable-hardware-overlays using amd64-generic
BUG= 683347 

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
Change-Id: I32f2b1384f4a64510aa5d692c628e874255ea6b8
Reviewed-on: https://chromium-review.googlesource.com/552926
Commit-Queue: Dongseong Hwang <dongseong.hwang@intel.com>
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Reviewed-by: Robert Kroeger <rjkroege@chromium.org>
Reviewed-by: David Reveman <reveman@chromium.org>
Reviewed-by: Dongseong Hwang <dongseong.hwang@intel.com>
Reviewed-by: Daniel Nicoara <dnicoara@chromium.org>
Reviewed-by: Daniele Castagna <dcastagna@chromium.org>
Cr-Commit-Position: refs/heads/master@{#486841}
[modify] https://crrev.com/5333b7b252d560643f7902aec5ea08ba550461b1/media/gpu/vaapi_drm_picture.cc
[modify] https://crrev.com/5333b7b252d560643f7902aec5ea08ba550461b1/media/gpu/vaapi_wrapper.cc
[modify] https://crrev.com/5333b7b252d560643f7902aec5ea08ba550461b1/media/gpu/vaapi_wrapper.h
[modify] https://crrev.com/5333b7b252d560643f7902aec5ea08ba550461b1/ui/gfx/native_pixmap.h
[modify] https://crrev.com/5333b7b252d560643f7902aec5ea08ba550461b1/ui/ozone/platform/cast/surface_factory_cast.cc
[modify] https://crrev.com/5333b7b252d560643f7902aec5ea08ba550461b1/ui/ozone/platform/drm/gpu/drm_overlay_validator_unittest.cc
[modify] https://crrev.com/5333b7b252d560643f7902aec5ea08ba550461b1/ui/ozone/platform/drm/gpu/gbm_buffer.cc
[modify] https://crrev.com/5333b7b252d560643f7902aec5ea08ba550461b1/ui/ozone/platform/drm/gpu/gbm_buffer.h
[modify] https://crrev.com/5333b7b252d560643f7902aec5ea08ba550461b1/ui/ozone/platform/drm/gpu/overlay_plane.cc
[modify] https://crrev.com/5333b7b252d560643f7902aec5ea08ba550461b1/ui/ozone/platform/drm/gpu/overlay_plane.h
[modify] https://crrev.com/5333b7b252d560643f7902aec5ea08ba550461b1/ui/ozone/platform/headless/headless_surface_factory.cc

Project Member

Comment 16 by bugdroid1@chromium.org, Jul 21 2017

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

commit 63874f8d3f0cf7daee9c2b584232c0dfa7510ee5
Author: Dongseong Hwang <dongseong.hwang@intel.com>
Date: Fri Jul 21 00:10:04 2017

Reland "Fix HTML5 video blurry"

Original CL: https://codereview.chromium.org/2418173002/

Revert CL: https://codereview.chromium.org/2463103002/
https://codereview.chromium.org/2474073004
https://codereview.chromium.org/2544893006

Since it was reverted long time ago, reimplement it from the scratch.

HW decoded video is blurry, because  crbug.com/575587  shinked visual rect by 1
pixel, if coded rect is larger than visual rect. This fixed bleeding texture,
but caused blurry issue.

Meanwhile,  crbug.com/429640  fixed bleeding texture for software YUV video in
the elegant way. It clamps all texture coordinates to this maximum value in the
fragment shader.

This CL removes the 1 pixel hack and applies the way to TextureDrawQuad and
StreamVideoDrawQuad.

In addition, Video overlay requires this fix because there is noticible
transition between GPU composition and hardware overlay.

TEST=cc_unittests PrecisionSamplerShadersCompile/PrecisionSamplerShaderPixelTest.ShadersCompile
chrome on http://browsertests.herokuapp.com/media/sharpness.html using amd64-generic
BUG= 615325 ,  683347 

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: I63c8736a365f0024513bfe1e999bc7beb7321da5
Reviewed-on: https://chromium-review.googlesource.com/567809
Commit-Queue: Dongseong Hwang <dongseong.hwang@intel.com>
Reviewed-by: ccameron chromium <ccameron@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Dongseong Hwang <dongseong.hwang@intel.com>
Reviewed-by: Dan Sanders <sandersd@chromium.org>
Cr-Commit-Position: refs/heads/master@{#488504}
[modify] https://crrev.com/63874f8d3f0cf7daee9c2b584232c0dfa7510ee5/cc/layers/video_layer_impl.cc
[modify] https://crrev.com/63874f8d3f0cf7daee9c2b584232c0dfa7510ee5/cc/output/gl_renderer.cc
[modify] https://crrev.com/63874f8d3f0cf7daee9c2b584232c0dfa7510ee5/cc/output/gl_renderer_draw_cache.h
[modify] https://crrev.com/63874f8d3f0cf7daee9c2b584232c0dfa7510ee5/cc/output/gl_renderer_unittest.cc
[modify] https://crrev.com/63874f8d3f0cf7daee9c2b584232c0dfa7510ee5/cc/output/program_binding.cc
[modify] https://crrev.com/63874f8d3f0cf7daee9c2b584232c0dfa7510ee5/cc/output/program_binding.h
[modify] https://crrev.com/63874f8d3f0cf7daee9c2b584232c0dfa7510ee5/cc/output/shader.cc
[modify] https://crrev.com/63874f8d3f0cf7daee9c2b584232c0dfa7510ee5/cc/output/shader.h
[modify] https://crrev.com/63874f8d3f0cf7daee9c2b584232c0dfa7510ee5/content/test/gpu/gpu_tests/pixel_expectations.py
[modify] https://crrev.com/63874f8d3f0cf7daee9c2b584232c0dfa7510ee5/content/test/gpu/gpu_tests/pixel_test_pages.py

Project Member

Comment 17 by bugdroid1@chromium.org, Jul 21 2017

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

commit 2e75e890f790868fdb72a4b1c26b6cb6f1e82042
Author: Dongseong Hwang <dongseong.hwang@intel.com>
Date: Fri Jul 21 18:12:57 2017

ozone: set the right GBM_BO_ flags

minigbm doesn't allow to pass no flags to gbm_bo_create(). GBM_BO_USE_TEXTURING
implies texture, so use GBM_BO_USE_TEXTURING to create texture buffer.

GBM_BO_USE_TEXTURING implies GPU_READ. GBM_BO_USE_RENDERING implies GPU_WRITE.
BufferUsage::SCANOUT needs both of them because it implies GPU_READ_WRITE.

TEST=run chrome on amd64-generic
BUG= 683347 

Change-Id: I7431be6f5b4a8d95e6be11d86cfbf0c14b919668
Reviewed-on: https://chromium-review.googlesource.com/549095
Reviewed-by: Daniel Nicoara <dnicoara@chromium.org>
Reviewed-by: Daniele Castagna <dcastagna@chromium.org>
Reviewed-by: David Reveman <reveman@chromium.org>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>
Reviewed-by: Dongseong Hwang <dongseong.hwang@intel.com>
Commit-Queue: Dongseong Hwang <dongseong.hwang@intel.com>
Cr-Commit-Position: refs/heads/master@{#488709}
[modify] https://crrev.com/2e75e890f790868fdb72a4b1c26b6cb6f1e82042/ui/ozone/platform/drm/gpu/drm_thread.cc

Project Member

Comment 18 by bugdroid1@chromium.org, Jul 21 2017

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

commit 752bf7505381af242ded2d8c01a54f31176fa1cf
Author: Kyle Horimoto <khorimoto@chromium.org>
Date: Fri Jul 21 21:41:25 2017

Revert "ozone: set the right GBM_BO_ flags"

This reverts commit 2e75e890f790868fdb72a4b1c26b6cb6f1e82042.

Reason for revert: Breaks build for veyron_minnie and probably other devices. Sample of the compiler errors below:

../../ui/ozone/platform/drm/gpu/drm_thread.cc:120:15: error: use of undeclared identifier 'GBM_BO_USE_TEXTURING'; did you mean 'GBM_BO_USE_RENDERING'?
      flags = GBM_BO_USE_TEXTURING;
              ^~~~~~~~~~~~~~~~~~~~
              GBM_BO_USE_RENDERING
../../../.cros_cache/chrome-sdk/tarballs/veyron_minnie+9588.0.0+sysroot_chromeos-base_chromeos-chrome.tar.xz/usr/include/gbm.h:230:4: note: 'GBM_BO_USE_RENDERING' declared here
   GBM_BO_USE_RENDERING    = (1 << 2),
   ^


Original change's description:
> ozone: set the right GBM_BO_ flags
> 
> minigbm doesn't allow to pass no flags to gbm_bo_create(). GBM_BO_USE_TEXTURING
> implies texture, so use GBM_BO_USE_TEXTURING to create texture buffer.
> 
> GBM_BO_USE_TEXTURING implies GPU_READ. GBM_BO_USE_RENDERING implies GPU_WRITE.
> BufferUsage::SCANOUT needs both of them because it implies GPU_READ_WRITE.
> 
> TEST=run chrome on amd64-generic
> BUG= 683347 
> 
> Change-Id: I7431be6f5b4a8d95e6be11d86cfbf0c14b919668
> Reviewed-on: https://chromium-review.googlesource.com/549095
> Reviewed-by: Daniel Nicoara <dnicoara@chromium.org>
> Reviewed-by: Daniele Castagna <dcastagna@chromium.org>
> Reviewed-by: David Reveman <reveman@chromium.org>
> Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>
> Reviewed-by: Dongseong Hwang <dongseong.hwang@intel.com>
> Commit-Queue: Dongseong Hwang <dongseong.hwang@intel.com>
> Cr-Commit-Position: refs/heads/master@{#488709}

TBR=marcheu@chromium.org,reveman@chromium.org,dnicoara@chromium.org,dongseong.hwang@intel.com,glevin@chromium.org,dcastagna@chromium.org,gurchetansingh@chromium.org

Change-Id: I2a8327004c3ba78ca406d08b02b28515c2b2dcf0
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  683347 
Reviewed-on: https://chromium-review.googlesource.com/582347
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#488762}
[modify] https://crrev.com/752bf7505381af242ded2d8c01a54f31176fa1cf/ui/ozone/platform/drm/gpu/drm_thread.cc

Project Member

Comment 19 by bugdroid1@chromium.org, Jul 21 2017

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

commit 8a00f87cc094d59f08ca24be9ee6b5c484af70a6
Author: Kyle Horimoto <khorimoto@chromium.org>
Date: Fri Jul 21 22:15:40 2017

Revert "Revert "ozone: set the right GBM_BO_ flags""

This reverts commit 752bf7505381af242ded2d8c01a54f31176fa1cf.

Reason for revert: Original CL was correct.

Original change's description:
> Revert "ozone: set the right GBM_BO_ flags"
> 
> This reverts commit 2e75e890f790868fdb72a4b1c26b6cb6f1e82042.
> 
> Reason for revert: Breaks build for veyron_minnie and probably other devices. Sample of the compiler errors below:
> 
> ../../ui/ozone/platform/drm/gpu/drm_thread.cc:120:15: error: use of undeclared identifier 'GBM_BO_USE_TEXTURING'; did you mean 'GBM_BO_USE_RENDERING'?
>       flags = GBM_BO_USE_TEXTURING;
>               ^~~~~~~~~~~~~~~~~~~~
>               GBM_BO_USE_RENDERING
> ../../../.cros_cache/chrome-sdk/tarballs/veyron_minnie+9588.0.0+sysroot_chromeos-base_chromeos-chrome.tar.xz/usr/include/gbm.h:230:4: note: 'GBM_BO_USE_RENDERING' declared here
>    GBM_BO_USE_RENDERING    = (1 << 2),
>    ^
> 
> 
> Original change's description:
> > ozone: set the right GBM_BO_ flags
> > 
> > minigbm doesn't allow to pass no flags to gbm_bo_create(). GBM_BO_USE_TEXTURING
> > implies texture, so use GBM_BO_USE_TEXTURING to create texture buffer.
> > 
> > GBM_BO_USE_TEXTURING implies GPU_READ. GBM_BO_USE_RENDERING implies GPU_WRITE.
> > BufferUsage::SCANOUT needs both of them because it implies GPU_READ_WRITE.
> > 
> > TEST=run chrome on amd64-generic
> > BUG= 683347 
> > 
> > Change-Id: I7431be6f5b4a8d95e6be11d86cfbf0c14b919668
> > Reviewed-on: https://chromium-review.googlesource.com/549095
> > Reviewed-by: Daniel Nicoara <dnicoara@chromium.org>
> > Reviewed-by: Daniele Castagna <dcastagna@chromium.org>
> > Reviewed-by: David Reveman <reveman@chromium.org>
> > Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>
> > Reviewed-by: Dongseong Hwang <dongseong.hwang@intel.com>
> > Commit-Queue: Dongseong Hwang <dongseong.hwang@intel.com>
> > Cr-Commit-Position: refs/heads/master@{#488709}
> 
> TBR=marcheu@chromium.org,reveman@chromium.org,dnicoara@chromium.org,dongseong.hwang@intel.com,glevin@chromium.org,dcastagna@chromium.org,gurchetansingh@chromium.org
> 
> Change-Id: I2a8327004c3ba78ca406d08b02b28515c2b2dcf0
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Bug:  683347 
> Reviewed-on: https://chromium-review.googlesource.com/582347
> Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
> Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#488762}

TBR=marcheu@chromium.org,reveman@chromium.org,khorimoto@chromium.org,dnicoara@chromium.org,dongseong.hwang@intel.com,glevin@chromium.org,dcastagna@chromium.org,gurchetansingh@chromium.org

Change-Id: I1b8d898a5184dfe17d8f33eda533a39400c78a44
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  683347 
Reviewed-on: https://chromium-review.googlesource.com/582310
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#488773}
[modify] https://crrev.com/8a00f87cc094d59f08ca24be9ee6b5c484af70a6/ui/ozone/platform/drm/gpu/drm_thread.cc

Project Member

Comment 20 by bugdroid1@chromium.org, Aug 14 2017

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

commit f439921f66e6f3a51a95426e7dcb5e240c0eabef
Author: Daniele Castagna <dcastagna@chromium.org>
Date: Mon Aug 14 17:36:27 2017

ui: Add gfx::BufferUsage::SCANOUT_VDA_WRITE.

This adds a buffer usage that produces buffers that can be written from
hardware video decoder, and can be read by the compositor or, possibly,
by the display controller.

This is needed for formats like NV12 when the content is produced
by VAAPI decoders and the buffers are then sent to the compositor.

Additionally, if a KMS framebuffer can't be added for the new buffer,
the allocation will still succeed, and the buffer can still be used
for compositing, but not as an HW overlay.

Bug:  683347 
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
Change-Id: Iab5c23c3e15fc235a375c9889085dda9d4816862
Reviewed-on: https://chromium-review.googlesource.com/612761
Reviewed-by: David Reveman <reveman@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Commit-Queue: Daniele Castagna <dcastagna@chromium.org>
Cr-Commit-Position: refs/heads/master@{#494089}
[modify] https://crrev.com/f439921f66e6f3a51a95426e7dcb5e240c0eabef/content/browser/gpu/gpu_internals_ui.cc
[modify] https://crrev.com/f439921f66e6f3a51a95426e7dcb5e240c0eabef/gpu/ipc/client/gpu_memory_buffer_impl_io_surface.cc
[modify] https://crrev.com/f439921f66e6f3a51a95426e7dcb5e240c0eabef/gpu/ipc/client/gpu_memory_buffer_impl_shared_memory.cc
[modify] https://crrev.com/f439921f66e6f3a51a95426e7dcb5e240c0eabef/gpu/ipc/client/gpu_memory_buffer_impl_test_template.h
[modify] https://crrev.com/f439921f66e6f3a51a95426e7dcb5e240c0eabef/gpu/ipc/common/gpu_memory_buffer_support.cc
[modify] https://crrev.com/f439921f66e6f3a51a95426e7dcb5e240c0eabef/gpu/ipc/host/gpu_memory_buffer_support.cc
[modify] https://crrev.com/f439921f66e6f3a51a95426e7dcb5e240c0eabef/gpu/ipc/service/gpu_memory_buffer_factory_test_template.h
[modify] https://crrev.com/f439921f66e6f3a51a95426e7dcb5e240c0eabef/ui/gfx/buffer_types.h
[modify] https://crrev.com/f439921f66e6f3a51a95426e7dcb5e240c0eabef/ui/gfx/linux/client_native_pixmap_factory_dmabuf.cc
[modify] https://crrev.com/f439921f66e6f3a51a95426e7dcb5e240c0eabef/ui/gfx/mojo/buffer_types.mojom
[modify] https://crrev.com/f439921f66e6f3a51a95426e7dcb5e240c0eabef/ui/gfx/mojo/buffer_types_struct_traits.h
[modify] https://crrev.com/f439921f66e6f3a51a95426e7dcb5e240c0eabef/ui/ozone/platform/drm/gpu/drm_thread.cc

Project Member

Comment 21 by bugdroid1@chromium.org, Aug 14 2017

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

commit 40e00af506421cb58b7354d697cd8bc8d7836113
Author: David Reveman <reveman@chromium.org>
Date: Mon Aug 14 20:24:19 2017

Revert "ui: Add gfx::BufferUsage::SCANOUT_VDA_WRITE."

This reverts commit f439921f66e6f3a51a95426e7dcb5e240c0eabef.

Reason for revert: Broke fast ink support

Original change's description:
> ui: Add gfx::BufferUsage::SCANOUT_VDA_WRITE.
> 
> This adds a buffer usage that produces buffers that can be written from
> hardware video decoder, and can be read by the compositor or, possibly,
> by the display controller.
> 
> This is needed for formats like NV12 when the content is produced
> by VAAPI decoders and the buffers are then sent to the compositor.
> 
> Additionally, if a KMS framebuffer can't be added for the new buffer,
> the allocation will still succeed, and the buffer can still be used
> for compositing, but not as an HW overlay.
> 
> Bug:  683347 
> 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
> Change-Id: Iab5c23c3e15fc235a375c9889085dda9d4816862
> Reviewed-on: https://chromium-review.googlesource.com/612761
> Reviewed-by: David Reveman <reveman@chromium.org>
> Reviewed-by: Avi Drissman <avi@chromium.org>
> Reviewed-by: Robert Sesek <rsesek@chromium.org>
> Commit-Queue: Daniele Castagna <dcastagna@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#494089}

TBR=avi@chromium.org,reveman@chromium.org,dcastagna@chromium.org,rsesek@chromium.org

Change-Id: I878805e0c5a994ffbd76f1093941d699598f88a1
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  683347 
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
Reviewed-on: https://chromium-review.googlesource.com/614420
Reviewed-by: David Reveman <reveman@chromium.org>
Commit-Queue: David Reveman <reveman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#494166}
[modify] https://crrev.com/40e00af506421cb58b7354d697cd8bc8d7836113/content/browser/gpu/gpu_internals_ui.cc
[modify] https://crrev.com/40e00af506421cb58b7354d697cd8bc8d7836113/gpu/ipc/client/gpu_memory_buffer_impl_io_surface.cc
[modify] https://crrev.com/40e00af506421cb58b7354d697cd8bc8d7836113/gpu/ipc/client/gpu_memory_buffer_impl_shared_memory.cc
[modify] https://crrev.com/40e00af506421cb58b7354d697cd8bc8d7836113/gpu/ipc/client/gpu_memory_buffer_impl_test_template.h
[modify] https://crrev.com/40e00af506421cb58b7354d697cd8bc8d7836113/gpu/ipc/common/gpu_memory_buffer_support.cc
[modify] https://crrev.com/40e00af506421cb58b7354d697cd8bc8d7836113/gpu/ipc/host/gpu_memory_buffer_support.cc
[modify] https://crrev.com/40e00af506421cb58b7354d697cd8bc8d7836113/gpu/ipc/service/gpu_memory_buffer_factory_test_template.h
[modify] https://crrev.com/40e00af506421cb58b7354d697cd8bc8d7836113/ui/gfx/buffer_types.h
[modify] https://crrev.com/40e00af506421cb58b7354d697cd8bc8d7836113/ui/gfx/linux/client_native_pixmap_factory_dmabuf.cc
[modify] https://crrev.com/40e00af506421cb58b7354d697cd8bc8d7836113/ui/gfx/mojo/buffer_types.mojom
[modify] https://crrev.com/40e00af506421cb58b7354d697cd8bc8d7836113/ui/gfx/mojo/buffer_types_struct_traits.h
[modify] https://crrev.com/40e00af506421cb58b7354d697cd8bc8d7836113/ui/ozone/platform/drm/gpu/drm_thread.cc

Project Member

Comment 22 by bugdroid1@chromium.org, Aug 14 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/board-overlays/+/9fe23aedb3be9c81a91cd548825371ac0ebe8684

commit 9fe23aedb3be9c81a91cd548825371ac0ebe8684
Author: Dongseong Hwang <dongseong.hwang@intel.com>
Date: Mon Aug 14 21:57:30 2017

Add 'drm_atomic' use flag on apl.

Enable atomic page flip and overlays on apl boards.

BUG= 683347 
TEST=We've been running reef with drm-atomic flags for 3 weeks.

Change-Id: I35ce67d847b09895c9140082ca6227cfb8ab8b28
Reviewed-on: https://chromium-review.googlesource.com/592493
Commit-Ready: Dongseong Hwang <dongseong.hwang@intel.com>
Tested-by: Dongseong Hwang <dongseong.hwang@intel.com>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>
Reviewed-by: Dongseong Hwang <dongseong.hwang@intel.com>
Reviewed-by: Daniele Castagna <dcastagna@chromium.org>

[modify] https://crrev.com/9fe23aedb3be9c81a91cd548825371ac0ebe8684/chipset-apl/profiles/base/make.defaults

Project Member

Comment 23 by bugdroid1@chromium.org, Aug 15 2017

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

commit a24e977a265686cc300471ab7b2371764d58f735
Author: Daniele Castagna <dcastagna@chromium.org>
Date: Tue Aug 15 01:14:10 2017

Reland "ui: Add gfx::BufferUsage::SCANOUT_VDA_WRITE."

This is a reland of f439921f66e6f3a51a95426e7dcb5e240c0eabef
Original change's description:
> ui: Add gfx::BufferUsage::SCANOUT_VDA_WRITE.
> 
> This adds a buffer usage that produces buffers that can be written from
> hardware video decoder, and can be read by the compositor or, possibly,
> by the display controller.
> 
> This is needed for formats like NV12 when the content is produced
> by VAAPI decoders and the buffers are then sent to the compositor.
> 
> Additionally, if a KMS framebuffer can't be added for the new buffer,
> the allocation will still succeed, and the buffer can still be used
> for compositing, but not as an HW overlay.
> 
> Bug:  683347 
> 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
> Change-Id: Iab5c23c3e15fc235a375c9889085dda9d4816862
> Reviewed-on: https://chromium-review.googlesource.com/612761
> Reviewed-by: David Reveman <reveman@chromium.org>
> Reviewed-by: Avi Drissman <avi@chromium.org>
> Reviewed-by: Robert Sesek <rsesek@chromium.org>
> Commit-Queue: Daniele Castagna <dcastagna@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#494089}

Bug:  683347 
TBR: rsesek@chromium.org, avi@chromium.org, reveman@chromium.org
Change-Id: I35765cf59ec93435403e36dfa392ce906ab3cdf4
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
Reviewed-on: https://chromium-review.googlesource.com/614540
Commit-Queue: Daniele Castagna <dcastagna@chromium.org>
Reviewed-by: Daniele Castagna <dcastagna@chromium.org>
Cr-Commit-Position: refs/heads/master@{#494286}
[modify] https://crrev.com/a24e977a265686cc300471ab7b2371764d58f735/content/browser/gpu/gpu_internals_ui.cc
[modify] https://crrev.com/a24e977a265686cc300471ab7b2371764d58f735/gpu/ipc/client/gpu_memory_buffer_impl_io_surface.cc
[modify] https://crrev.com/a24e977a265686cc300471ab7b2371764d58f735/gpu/ipc/client/gpu_memory_buffer_impl_shared_memory.cc
[modify] https://crrev.com/a24e977a265686cc300471ab7b2371764d58f735/gpu/ipc/client/gpu_memory_buffer_impl_test_template.h
[modify] https://crrev.com/a24e977a265686cc300471ab7b2371764d58f735/gpu/ipc/common/gpu_memory_buffer_support.cc
[modify] https://crrev.com/a24e977a265686cc300471ab7b2371764d58f735/gpu/ipc/host/gpu_memory_buffer_support.cc
[modify] https://crrev.com/a24e977a265686cc300471ab7b2371764d58f735/gpu/ipc/service/gpu_memory_buffer_factory_test_template.h
[modify] https://crrev.com/a24e977a265686cc300471ab7b2371764d58f735/ui/gfx/buffer_types.h
[modify] https://crrev.com/a24e977a265686cc300471ab7b2371764d58f735/ui/gfx/linux/client_native_pixmap_factory_dmabuf.cc
[modify] https://crrev.com/a24e977a265686cc300471ab7b2371764d58f735/ui/gfx/mojo/buffer_types.mojom
[modify] https://crrev.com/a24e977a265686cc300471ab7b2371764d58f735/ui/gfx/mojo/buffer_types_struct_traits.h
[modify] https://crrev.com/a24e977a265686cc300471ab7b2371764d58f735/ui/ozone/platform/drm/gpu/drm_thread.cc

Cc: acourbot@chromium.org

Comment 25 Deleted

Comment 26 Deleted

Project Member

Comment 27 by bugdroid1@chromium.org, Oct 23 2017

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

commit 62e2e57b1d70dafad060d270ecd88e86a936ab1f
Author: Daniele Castagna <dcastagna@chromium.org>
Date: Mon Oct 23 01:50:04 2017

ui: Add an admissible error in GL image tests.

When testing YUV images, initially we picked an RGB color so that
RGB -> YVU on the CPU converted back to RGB on the GPU produced the
original RGB values without any error.

Unfortunately this doesn't work on all the devices.

This CL adds an admissible per component error in image tests, so
that YUV tests pass on all the devices.

Bug:  683347 
Test: ozone_gl_unittests --gtest_also_run_disabled_tests on eve
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
Change-Id: I1cd16316557ca9e827d684fa8fe031282bebffff
Reviewed-on: https://chromium-review.googlesource.com/729760
Reviewed-by: Avi Drissman <avi@chromium.org>
Reviewed-by: David Reveman <reveman@chromium.org>
Reviewed-by: Miguel Casas <mcasas@chromium.org>
Commit-Queue: Daniele Castagna <dcastagna@chromium.org>
Cr-Commit-Position: refs/heads/master@{#510719}
[modify] https://crrev.com/62e2e57b1d70dafad060d270ecd88e86a936ab1f/ui/gl/gl_image_io_surface_unittest.cc
[modify] https://crrev.com/62e2e57b1d70dafad060d270ecd88e86a936ab1f/ui/gl/gl_image_ref_counted_memory_unittest.cc
[modify] https://crrev.com/62e2e57b1d70dafad060d270ecd88e86a936ab1f/ui/gl/gl_image_shared_memory_unittest.cc
[modify] https://crrev.com/62e2e57b1d70dafad060d270ecd88e86a936ab1f/ui/gl/test/gl_image_test_template.h
[modify] https://crrev.com/62e2e57b1d70dafad060d270ecd88e86a936ab1f/ui/gl/test/gl_test_helper.cc
[modify] https://crrev.com/62e2e57b1d70dafad060d270ecd88e86a936ab1f/ui/gl/test/gl_test_helper.h
[modify] https://crrev.com/62e2e57b1d70dafad060d270ecd88e86a936ab1f/ui/ozone/gl/gl_image_ozone_native_pixmap_unittest.cc

Project Member

Comment 28 by bugdroid1@chromium.org, Nov 11 2017

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

commit dd60cda111c0b668b43726268ea4b8902a35c814
Author: Daniele Castagna <dcastagna@chromium.org>
Date: Sat Nov 11 22:34:05 2017

Use NV12 VideoFrames for software decoder on x86.

NV12 has been supported on CrOS x86 mesa for a while.
Mapping an NV12 dmabuf has also been supported and test for a while.

This CL simply advertises that NV12 images can be used and that
NV12 dmabuffs buffers can be mmaped on the renderer side.

In this way, software decoded video frames will be converted to NV12.

Bug:  683347 
Test: youtube on eve with HW video decoder disabled.

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
Change-Id: I74e5991ed57acf87d9d0a5ff0c3b6839e8b47b8d
Reviewed-on: https://chromium-review.googlesource.com/756217
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: David Reveman <reveman@chromium.org>
Commit-Queue: Daniele Castagna <dcastagna@chromium.org>
Cr-Commit-Position: refs/heads/master@{#515855}
[modify] https://crrev.com/dd60cda111c0b668b43726268ea4b8902a35c814/gpu/command_buffer/service/feature_info.cc
[modify] https://crrev.com/dd60cda111c0b668b43726268ea4b8902a35c814/ui/gfx/linux/client_native_pixmap_factory_dmabuf.cc

Cc: julien.isorce@chromium.org

Comment 30 by kbr@chromium.org, Nov 22 2017

Blockedon: 786842
Project Member

Comment 31 by bugdroid1@chromium.org, Nov 22 2017

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

commit 013fd01fafc9c3bda0539f405d27c72eb4caf258
Author: Daniele Castagna <dcastagna@chromium.org>
Date: Wed Nov 22 05:15:41 2017

Revert "Use NV12 VideoFrames for software decoder on x86."

This reverts commit dd60cda111c0b668b43726268ea4b8902a35c814.

Reason for revert: it regressed SW video decoding on KBL. crbug.com/786842

Original change's description:
> Use NV12 VideoFrames for software decoder on x86.
> 
> NV12 has been supported on CrOS x86 mesa for a while.
> Mapping an NV12 dmabuf has also been supported and test for a while.
> 
> This CL simply advertises that NV12 images can be used and that
> NV12 dmabuffs buffers can be mmaped on the renderer side.
> 
> In this way, software decoded video frames will be converted to NV12.
> 
> Bug:  683347 
> Test: youtube on eve with HW video decoder disabled.
> 
> 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
> Change-Id: I74e5991ed57acf87d9d0a5ff0c3b6839e8b47b8d
> Reviewed-on: https://chromium-review.googlesource.com/756217
> Reviewed-by: Kenneth Russell <kbr@chromium.org>
> Reviewed-by: David Reveman <reveman@chromium.org>
> Commit-Queue: Daniele Castagna <dcastagna@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#515855}

TBR=reveman@chromium.org,kbr@chromium.org,dcastagna@chromium.org

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug:  683347 
Change-Id: I3019bc7b71ccfb81167b0b811230d2dc42ba85cb
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
Reviewed-on: https://chromium-review.googlesource.com/784330
Reviewed-by: Daniele Castagna <dcastagna@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Daniele Castagna <dcastagna@chromium.org>
Cr-Commit-Position: refs/heads/master@{#518539}
[modify] https://crrev.com/013fd01fafc9c3bda0539f405d27c72eb4caf258/gpu/command_buffer/service/feature_info.cc
[modify] https://crrev.com/013fd01fafc9c3bda0539f405d27c72eb4caf258/ui/gfx/linux/client_native_pixmap_factory_dmabuf.cc

Project Member

Comment 32 by bugdroid1@chromium.org, Dec 5 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/board-overlays/+/5a609ce3284b8a957866b0a9c7f9e66192020c8e

commit 5a609ce3284b8a957866b0a9c7f9e66192020c8e
Author: Dongseong Hwang <dongseong.hwang@intel.com>
Date: Tue Dec 05 04:02:52 2017

Add 'drm_atomic' use flag on cnl and glk.

Enable atomic page flip and overlays on cnl and glk boards.
There is not any reasons not to enable it on these boards, because it was
enabled and well tested on apl and kbl.

BUG= 683347 

Change-Id: Iede641577b2a14cba65dff8fcbb16df2b837353a
Reviewed-on: https://chromium-review.googlesource.com/713757
Commit-Ready: Dongseong Hwang <dongseong.hwang@intel.com>
Tested-by: Dongseong Hwang <dongseong.hwang@intel.com>
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>
Reviewed-by: Dongseong Hwang <dongseong.hwang@intel.com>
Reviewed-by: Daniele Castagna <dcastagna@chromium.org>

[modify] https://crrev.com/5a609ce3284b8a957866b0a9c7f9e66192020c8e/chipset-glk/profiles/base/make.defaults
[modify] https://crrev.com/5a609ce3284b8a957866b0a9c7f9e66192020c8e/chipset-cnl/profiles/base/make.defaults

Project Member

Comment 33 by bugdroid1@chromium.org, Dec 22 2017

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

commit 0d58af6fc31ca16210c8a0c475fce91fff516ab2
Author: Miguel Casas-Sanchez <mcasas@chromium.org>
Date: Fri Dec 22 03:29:02 2017

Reland: Use NV12 VideoFrames for software decoder on x86

This CL relands crrev.com/c/756217 after fixing the issue with
previous generation boards by adding a new member to
GpuPreferences
  disable_biplanar_gpu_memory_buffers_for_video_frames
that is sent from Browser to GPU process, where it's connected
to a new gles2 decoder Capabilities member:
  image_ycbcr_420v_disabled_for_video_frames
which is then used in GpuVideoAcceleratorFactoriesImpl in the
Renderer process.

This flag and Feature indicates if biplanar VideoFrames (e.g.
NV12) may be stored in single GpuMemoryBuffers (also called here
biplanar for consistency) or not, for performance reasons.

Test: crosvideo.appspot.com?codec=vp9 on scarlet (no hw decoding
for VP9) and on Soraka (with hw decoding explicitly disabled).
Both use the best they can for video_resource_updater, i.e. scarlet
uses two buffers for upload (R_8 and RG_88), whereas soraka uses a
single YUV420_BIPLANAR one.

Bug:  791676 

Original CL description -------------------------------------------
Use NV12 VideoFrames for software decoder on x86.

NV12 has been supported on CrOS x86 mesa for a while.
Mapping an NV12 dmabuf has also been supported and test for a while.

This CL simply advertises that NV12 images can be used and that
NV12 dmabuffs buffers can be mmaped on the renderer side.

In this way, software decoded video frames will be converted to NV12.

Bug:  683347 
Test: youtube on eve with HW video decoder disabled.

--------------------------------------------------------------------

Reviewed-on: https://chromium-review.googlesource.com/756217
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Reviewed-by: David Reveman <reveman@chromium.org>
Commit-Queue: Daniele Castagna <dcastagna@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#515855}
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: I3b07cad358bd3219ad3ebdc45582e7b5213050e8
Reviewed-on: https://chromium-review.googlesource.com/838101
Commit-Queue: Miguel Casas <mcasas@chromium.org>
Reviewed-by: Ken Buchanan <kenrb@chromium.org>
Reviewed-by: Daniele Castagna <dcastagna@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#525919}
[modify] https://crrev.com/0d58af6fc31ca16210c8a0c475fce91fff516ab2/content/browser/gpu/gpu_data_manager_impl_private.cc
[modify] https://crrev.com/0d58af6fc31ca16210c8a0c475fce91fff516ab2/content/renderer/media/gpu/gpu_video_accelerator_factories_impl.cc
[modify] https://crrev.com/0d58af6fc31ca16210c8a0c475fce91fff516ab2/gpu/command_buffer/common/capabilities.h
[modify] https://crrev.com/0d58af6fc31ca16210c8a0c475fce91fff516ab2/gpu/command_buffer/service/feature_info.cc
[modify] https://crrev.com/0d58af6fc31ca16210c8a0c475fce91fff516ab2/gpu/command_buffer/service/gles2_cmd_decoder.cc
[modify] https://crrev.com/0d58af6fc31ca16210c8a0c475fce91fff516ab2/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc
[modify] https://crrev.com/0d58af6fc31ca16210c8a0c475fce91fff516ab2/gpu/command_buffer/service/gpu_preferences.h
[modify] https://crrev.com/0d58af6fc31ca16210c8a0c475fce91fff516ab2/gpu/ipc/common/gpu_preferences.mojom
[modify] https://crrev.com/0d58af6fc31ca16210c8a0c475fce91fff516ab2/gpu/ipc/common/gpu_preferences_struct_traits.h
[modify] https://crrev.com/0d58af6fc31ca16210c8a0c475fce91fff516ab2/ui/gfx/linux/client_native_pixmap_factory_dmabuf.cc

Blocking: 813250
Status: Fixed (was: Assigned)
We have a lot of overlay between this and bug 813250, but either way, most of the work is done here. I'll close this and keep 813250 open for tracking the remaining upstream work on the i915.ko NV12 patches.
Cc: avkodipelli@chromium.org
Status: Verified (was: Fixed)
Project Member

Comment 37 by bugdroid1@chromium.org, May 4 2018

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

commit 2380d0bf3b9ffec28cb6f7501dcb8efd066fde80
Author: Dongseong Hwang <dongseong.hwang@intel.com>
Date: Fri May 04 00:39:31 2018

ozone, cros: allow fullscreen overlay when the aspect ratio of the video is same to display.

In the case, the fullscreen strategy is used for scanning out fullscreen
scaled buffers (i.e. fullscreen youtube), instead of single on top strategy.
It makes the case not submit the unnecessary primary plane to display engine.

TEST=Youtube https://youtu.be/w8RN8T13rjE on soraka
BUG= 683347 

Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I8c82c7dd6182c34c0420ff4819ba37d5881039f0
Reviewed-on: https://chromium-review.googlesource.com/656222
Commit-Queue: Dongseong Hwang <dongseong.hwang@intel.com>
Reviewed-by: Kristian H. Kristensen <hoegsberg@chromium.org>
Reviewed-by: Daniele Castagna <dcastagna@chromium.org>
Reviewed-by: Dongseong Hwang <dongseong.hwang@intel.com>
Cr-Commit-Position: refs/heads/master@{#555930}
[modify] https://crrev.com/2380d0bf3b9ffec28cb6f7501dcb8efd066fde80/components/viz/service/display/overlay_strategy_fullscreen.cc
[modify] https://crrev.com/2380d0bf3b9ffec28cb6f7501dcb8efd066fde80/components/viz/service/display/overlay_unittest.cc

Sign in to add a comment