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

Issue 877694 link

Starred by 2 users

Issue metadata

Status: Started
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 3
Type: Feature

Blocked on:
issue 868400



Sign in to add a comment

Consider supporting WebP accelerated image decoding using Va-API

Project Member Reported by mcasas@chromium.org, Aug 24

Issue description

Consider supporting WebP accelerated image decoding using Va-API.
See goo.gl/Exq5z9 for more info.
 
Blockedon: 868400
Project Member

Comment 2 by bugdroid1@chromium.org, Aug 27

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

commit 3bbbf83a3dc2d114c4c98ab1855e963b6924a9f5
Author: Miguel Casas <mcasas@chromium.org>
Date: Mon Aug 27 23:53:59 2018

Blink Image Decoding: add UMA histogram for WebP type

This CL adds a UMA for the WebP file format - see [1] but,
essentially, those are Lossy - lossless - w/ alpha and
animation.

This CL is part of an effort to support hw-accelerated WebP
decoding. The Hw accelerator would support only lossy,
which we suspect to be the largest type in the wild, this
CL would prove (and monitor) that assumption.

[1] https://developers.google.com/speed/webp/docs/riff_container

Bug: 877694
Change-Id: I339fb05edec2777af63d2f3ae37a3df0ee02792b
Reviewed-on: https://chromium-review.googlesource.com/1189062
Reviewed-by: Gayane Petrosyan <gayane@chromium.org>
Reviewed-by: Leon Scroggins <scroggo@chromium.org>
Commit-Queue: Miguel Casas <mcasas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#586502}
[modify] https://crrev.com/3bbbf83a3dc2d114c4c98ab1855e963b6924a9f5/third_party/blink/renderer/platform/image-decoders/DEPS
[modify] https://crrev.com/3bbbf83a3dc2d114c4c98ab1855e963b6924a9f5/third_party/blink/renderer/platform/image-decoders/webp/webp_image_decoder.cc
[modify] https://crrev.com/3bbbf83a3dc2d114c4c98ab1855e963b6924a9f5/tools/metrics/histograms/enums.xml
[modify] https://crrev.com/3bbbf83a3dc2d114c4c98ab1855e963b6924a9f5/tools/metrics/histograms/histograms.xml

Project Member

Comment 3 by bugdroid1@chromium.org, Aug 31

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

commit 61aa180e3283f3f7e495f068b9a34dd3981232d6
Author: Miguel Casas <mcasas@chromium.org>
Date: Fri Aug 31 20:34:23 2018

jpeg_decode_accelerator_unittest: cleanup

This CL cleans up a bit the jpeg_decode_accelerator_unittest file;
singleton JpegDecodeAcceleratorTestEnvironment created a number of
temporary files on SetUp() (via CreateTestJpegImage() method) that
were removed on TearDown(). It also created by hand the content of
TestImageFile objects. All this logic is moved to the struct
TestImagefile (renamed to ParsedJpegImage), so that a) the struct
is better defined in terms of what it holds and how is it initialized
(CreateFromFile() and CreateBlackImage() are the factory methods),
b) there's one place only to fill in its sizes (InitializeSizes())
and c) there's no need for temporary files written to disk and
deleted.

Also for good measure:

- GetOriginalOrTestDataFilePath() is simplified and folded inline.
- Couple of consts/constexprs here and there.
- Initialize members in ctor initialization lists (ISO ctor body).

Test: compile and run j_d_a_unittest on nautilus

Bug: 877694
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: Ib2cb4ba218df84955757298e7d0cd85503ee1c98
Reviewed-on: https://chromium-review.googlesource.com/1197372
Commit-Queue: Miguel Casas <mcasas@chromium.org>
Reviewed-by: Daniele Castagna <dcastagna@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588153}
[modify] https://crrev.com/61aa180e3283f3f7e495f068b9a34dd3981232d6/media/gpu/jpeg_decode_accelerator_unittest.cc

Project Member

Comment 4 by bugdroid1@chromium.org, Sep 5

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

commit 58e1347031d3d01dd2671cb5933cb9323702a3a7
Author: Miguel Casas <mcasas@chromium.org>
Date: Tue Sep 04 20:29:31 2018

Enable jpeg_decode_accelerator_unittest in chromiumos_preflight

jpeg_decode_accelerator_unittest is compiled and run on the CrOs
autotest infra, but is not compiled on the bots, when it possibly
should. This CL adds that target to the chromiumos_preflight of
the top level BUILD.gn.

Bug: 732531, 877694

Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: Iee1c95a4c0c12d3a0e55451447d6d862e1cb1484
Reviewed-on: https://chromium-review.googlesource.com/1199580
Reviewed-by: Ben Pastene <bpastene@chromium.org>
Reviewed-by: Dan Sanders <sandersd@chromium.org>
Reviewed-by: John Budorick <jbudorick@chromium.org>
Commit-Queue: Miguel Casas <mcasas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#588635}
[modify] https://crrev.com/58e1347031d3d01dd2671cb5933cb9323702a3a7/BUILD.gn
[modify] https://crrev.com/58e1347031d3d01dd2671cb5933cb9323702a3a7/media/gpu/BUILD.gn

Project Member

Comment 5 by bugdroid1@chromium.org, Sep 5

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

commit f7cc370e948265fe0f617d943544cda51b1f5239
Author: Findit <findit-for-me@appspot.gserviceaccount.com>
Date: Tue Sep 04 21:19:23 2018

Revert "Enable jpeg_decode_accelerator_unittest in chromiumos_preflight"

This reverts commit 58e1347031d3d01dd2671cb5933cb9323702a3a7.

Reason for revert:

Findit (https://goo.gl/kROfz5) identified CL at revision 588635 as the
culprit for failures in the build cycles as shown on:
https://findit-for-me.appspot.com/waterfall/culprit?key=ag9zfmZpbmRpdC1mb3ItbWVyRAsSDVdmU3VzcGVjdGVkQ0wiMWNocm9taXVtLzU4ZTEzNDcwMzFkM2QwMWRkMjY3MWNiNTkzM2NiOTMyMzcwMmEzYTcM

Sample Failed Build: https://ci.chromium.org/buildbot/chromium/win-rel/2001

Sample Failed Step: compile

Original change's description:
> Enable jpeg_decode_accelerator_unittest in chromiumos_preflight
> 
> jpeg_decode_accelerator_unittest is compiled and run on the CrOs
> autotest infra, but is not compiled on the bots, when it possibly
> should. This CL adds that target to the chromiumos_preflight of
> the top level BUILD.gn.
> 
> Bug: 732531, 877694
> 
> Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
> Change-Id: Iee1c95a4c0c12d3a0e55451447d6d862e1cb1484
> Reviewed-on: https://chromium-review.googlesource.com/1199580
> Reviewed-by: Ben Pastene <bpastene@chromium.org>
> Reviewed-by: Dan Sanders <sandersd@chromium.org>
> Reviewed-by: John Budorick <jbudorick@chromium.org>
> Commit-Queue: Miguel Casas <mcasas@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#588635}

Change-Id: I0092e01151c3e9700ef64be7646849ff90066b01
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 732531, 877694
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Reviewed-on: https://chromium-review.googlesource.com/1204599
Cr-Commit-Position: refs/heads/master@{#588642}
[modify] https://crrev.com/f7cc370e948265fe0f617d943544cda51b1f5239/BUILD.gn
[modify] https://crrev.com/f7cc370e948265fe0f617d943544cda51b1f5239/media/gpu/BUILD.gn

Project Member

Comment 6 by bugdroid1@chromium.org, Sep 5

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

commit 6ed9272ad6d696731eb440d30bac9366715a9267
Author: Miguel Casas <mcasas@chromium.org>
Date: Wed Sep 05 23:07:25 2018

jpeg_decode_accelerator_unittest: add time info

This CL :
- Adds some LOG() info of the average time taken for image decoding
for sw & hw, (see e.g https://pastebin.com/raw/RKiGqjBS)
- Removes unnecessary {}

Bug: 877694
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: Id2147989456a0cb3cb2a64c3e89c355c0e736fa5
Reviewed-on: https://chromium-review.googlesource.com/1198524
Commit-Queue: Miguel Casas <mcasas@chromium.org>
Reviewed-by: Dan Sanders <sandersd@chromium.org>
Cr-Commit-Position: refs/heads/master@{#589048}
[modify] https://crrev.com/6ed9272ad6d696731eb440d30bac9366715a9267/media/gpu/jpeg_decode_accelerator_unittest.cc
[modify] https://crrev.com/6ed9272ad6d696731eb440d30bac9366715a9267/media/gpu/vaapi/vaapi_wrapper.cc

Project Member

Comment 7 by bugdroid1@chromium.org, Sep 5

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

commit 4dcce853f96a2def66b860afe65c1a333d98f778
Author: Miguel Casas <mcasas@chromium.org>
Date: Wed Sep 05 23:13:36 2018

RELAND: Enable jpeg_decode_accelerator_unittest in chromiumos_preflight

The original CL crrev.com/c/1199580 was reverted in crrev.com/c/1204599
because it broke windows compilation (File path literals etc).
This CL limits the compilation to linux and chromeos: the new changes
can be seen in crrev.com/c/1206675/1..2

TBR=jbudorick@chromium.org, sandersd@chromium.org since the changes
are trivial re. the previous CL.

Original CL description -----------------------------------------------

jpeg_decode_accelerator_unittest is compiled and run on the CrOs
autotest infra, but is not compiled on the bots, when it possibly
should. This CL adds that target to the chromiumos_preflight of
the top level BUILD.gn.

Bug: 732531, 877694

Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Reviewed-on: https://chromium-review.googlesource.com/1199580
Reviewed-by: Ben Pastene <bpastene@chromium.org>
Reviewed-by: Dan Sanders <sandersd@chromium.org>
Reviewed-by: John Budorick <jbudorick@chromium.org>
Commit-Queue: Miguel Casas <mcasas@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#588635}
Change-Id: Ic71fc5076484d30dda90654cd5501aa802258feb
Reviewed-on: https://chromium-review.googlesource.com/1206675
Reviewed-by: Miguel Casas <mcasas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#589051}
[modify] https://crrev.com/4dcce853f96a2def66b860afe65c1a333d98f778/BUILD.gn
[modify] https://crrev.com/4dcce853f96a2def66b860afe65c1a333d98f778/media/gpu/BUILD.gn

Project Member

Comment 8 by bugdroid1@chromium.org, Sep 6

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

commit ec92aa02114cddc7ae83fe8b2b5fb12615cada57
Author: Miguel Casas <mcasas@chromium.org>
Date: Thu Sep 06 16:52:19 2018

jpeg_decode_accelerator_unittest: move static class upwards

This CL moves JpegDecodeAcceleratorTestEnvironment upwards so that
the test-specific classes and the static classes are grouped together.

No new code whatsoever.

Bug: 877694
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: Ida2c6024526baf62933f058b3539bbb51306406e
Reviewed-on: https://chromium-review.googlesource.com/1204772
Reviewed-by: Daniele Castagna <dcastagna@chromium.org>
Commit-Queue: Miguel Casas <mcasas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#589194}
[modify] https://crrev.com/ec92aa02114cddc7ae83fe8b2b5fb12615cada57/media/gpu/jpeg_decode_accelerator_unittest.cc

Project Member

Comment 9 by bugdroid1@chromium.org, Sep 7

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

commit 9a7eacc1b023f253b9fe91b431d8a1083ecaa265
Author: Miguel Casas <mcasas@chromium.org>
Date: Fri Sep 07 16:46:08 2018

jpeg_decode_accelerator_unittest: transform members into parameters

This test removes the member variables |test_image_files_| and
|expected_status_| and makes them into method parameters instead,
which is more explicit and will make the methods more customisable
down the line.

Bug: 877694
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: If1c63e32b7e3bf52f988bad76dd401324fd28a32
Reviewed-on: https://chromium-review.googlesource.com/1205312
Reviewed-by: Daniele Castagna <dcastagna@chromium.org>
Commit-Queue: Miguel Casas <mcasas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#589549}
[modify] https://crrev.com/9a7eacc1b023f253b9fe91b431d8a1083ecaa265/media/gpu/jpeg_decode_accelerator_unittest.cc

Project Member

Comment 10 by bugdroid1@chromium.org, Sep 14

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

commit c87a53a5ef801623540681c3b365b83aaea1363f
Author: Miguel Casas <mcasas@chromium.org>
Date: Fri Sep 14 00:41:16 2018

VaAPI: introduce ScopedVABufferMapping and ScopedVAImage

VaapiWrapper:

- uses the pattern vaMapBuffer(() - vaUnmapBuffer() in 4
 methods: this CL makes it ScopedVABufferMapping to simplify
 its use.

- provides methods GetVaImage() -- ReturnVaImage() to create
 and destroy a VaAPI VAImage; this VAImage is mapped and
 unmapped following the pattern described before.  This CL
 wraps this pattern into a ScopedVAImage to clarify and
 simplify its use and lifetime. (This is only used from
 VaapiJpegDecodeAccelerator).

Test: jpeg_decode_accelerator_unittest OK on nautilus;
 added unittests.

Bug: 877694
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I0717bd3c64bb1bffc7df5b4b09643f3bb5ecb1a4
Reviewed-on: https://chromium-review.googlesource.com/1195822
Commit-Queue: Miguel Casas <mcasas@chromium.org>
Reviewed-by: Dan Sanders <sandersd@chromium.org>
Cr-Commit-Position: refs/heads/master@{#591233}
[modify] https://crrev.com/c87a53a5ef801623540681c3b365b83aaea1363f/media/gpu/BUILD.gn
[modify] https://crrev.com/c87a53a5ef801623540681c3b365b83aaea1363f/media/gpu/vaapi/BUILD.gn
[modify] https://crrev.com/c87a53a5ef801623540681c3b365b83aaea1363f/media/gpu/vaapi/vaapi_jpeg_decode_accelerator.cc
[modify] https://crrev.com/c87a53a5ef801623540681c3b365b83aaea1363f/media/gpu/vaapi/vaapi_jpeg_decode_accelerator_unittest.cc
[add] https://crrev.com/c87a53a5ef801623540681c3b365b83aaea1363f/media/gpu/vaapi/vaapi_utils.cc
[add] https://crrev.com/c87a53a5ef801623540681c3b365b83aaea1363f/media/gpu/vaapi/vaapi_utils.h
[modify] https://crrev.com/c87a53a5ef801623540681c3b365b83aaea1363f/media/gpu/vaapi/vaapi_wrapper.cc
[modify] https://crrev.com/c87a53a5ef801623540681c3b365b83aaea1363f/media/gpu/vaapi/vaapi_wrapper.h

Project Member

Comment 11 by bugdroid1@chromium.org, Oct 9

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

commit 6ed4194e54635b9bdb0109d670438fd983cb51b2
Author: Miguel Casas <mcasas@chromium.org>
Date: Tue Oct 09 14:40:42 2018

vaapi: extract common parts of VaapiVP8Accelerator::SubmitDecode()

This CL extracts the bulk of VaapiVP8Accelerator::SubmitDecode() into
a new service function FillVP8DataStructuresAndPassToVaapiWrapper()
in vaapi_utils, so that it can be used for WebP decode (see the
playground in crrev.com/c/1185754).

It also:
- replaces the ARRAY_MEMCPY_CHECKED() with a templated function.
- replaces uses of arraysize() with base::size() ( crbug.com/837308 )

Aside from those compile-time changes, the code itself should be
unchanged.

Test: video_decode_accelerator_unittest and VP8 playback working on nautilus
Bug: 877694
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: Icb4a10721705464747ef4743b51aea6801dc3171
Reviewed-on: https://chromium-review.googlesource.com/c/1269315
Commit-Queue: Miguel Casas <mcasas@chromium.org>
Reviewed-by: Hirokazu Honda <hiroh@chromium.org>
Cr-Commit-Position: refs/heads/master@{#597906}
[modify] https://crrev.com/6ed4194e54635b9bdb0109d670438fd983cb51b2/media/gpu/vaapi/vaapi_utils.cc
[modify] https://crrev.com/6ed4194e54635b9bdb0109d670438fd983cb51b2/media/gpu/vaapi/vaapi_utils.h
[modify] https://crrev.com/6ed4194e54635b9bdb0109d670438fd983cb51b2/media/gpu/vaapi/vaapi_vp8_accelerator.cc

Sign in to add a comment