New issue
Advanced search Search tips

Issue 790904 link

Starred by 3 users

Issue metadata

Status: Verified
Owner:
Closed: Dec 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug-Regression



Sign in to add a comment

Multiple failures on video_JpegDecodeAccelerator, video_VEAPerf and video_VideoEncodeAccelerator

Project Member Reported by acourbot@chromium.org, Dec 1 2017

Issue description

All x86 boards are failing these tests on 10172.0.0. Origin always seems to be a failure to initialize the encoder or decoder:

<JpegDecodeAcceleratorTest.Abort>:
../../../../../../../home/chrome-bot/chrome_root/src/media/gpu/jpeg_decode_accelerator_unittest.cc:501; Expected: notes[i]->Wait(); Which is: 3; To be equal to: CS_INITIALIZED; 

<EncoderPerf/VideoEncodeAcceleratorTest.TestSimpleEncode/0>: ../../../../../../../home/chrome-bot/chrome_root/src/media/gpu/video_encode_accelerator_unittest.cc:2298; Expected: state; Which is: 1; To be equal to: notes[i]->Wait(); Which is: 5

<CacheLineUnalignedInputTest/VideoEncodeAcceleratorSimpleTest.TestSimpleEncode/0>: ../../../../../../../home/chrome-bot/chrome_root/src/media/gpu/video_encode_accelerator_unittest.cc:2339; Expected: state; Which is: 1; To be equal to: note->Wait(); Which is: 5;

Links to failing dashboards:

https://cros-goldeneye.corp.google.com/chromeos/healthmonitoring/testDetails?milestone=64&daysBack=30&testName=video_JpegDecodeAccelerator

https://cros-goldeneye.corp.google.com/chromeos/healthmonitoring/testDetails?milestone=64&daysBack=30&testName=video_VEAPerf

https://cros-goldeneye.corp.google.com/chromeos/healthmonitoring/testDetails?milestone=64&daysBack=30&testName=video_VideoEncodeAccelerator
 
Description: Show this description
Cc: -acourbot@chromium.org henryhsu@chromium.org
Owner: acourbot@chromium.org
Status: Started (was: Untriaged)
Taking ownership as this may have been caused by a CL of mine.
Description: Show this description
https://pantheon.corp.google.com/storage/browser/chromeos-autotest-results/159409183-chromeos-test/chromeos4-row12-rack5-host7/video_JpegDecodeAccelerator/sysinfo/var/log/

2017-11-30T08:23:05.945744+00:00 NOTICE autotest[28986]: 00:23:05.943 ERROR|             utils:0280| [stderr] [1130/002305.943355:VERBOSE2:vaapi_jpeg_decode_accelerator.cc(134)] Initialize(): 
2017-11-30T08:23:05.951533+00:00 NOTICE autotest[28991]: 00:23:05.949 ERROR|             utils:0280| [stderr] [1130/002305.943803:WARNING:vaapi_wrapper.cc(257)] HW video decode acceleration not available for unknown
2017-11-30T08:23:05.953324+00:00 NOTICE autotest[28992]: 00:23:05.952 ERROR|             utils:0280| [stderr] [1130/002305.943819:VERBOSE1:vaapi_jpeg_decode_accelerator.cc(144)] Initialize(): Failed initializing VAAPI
2017-11-30T08:23:05.955038+00:00 NOTICE autotest[28993]: 00:23:05.953 ERROR|             utils:0280| [stderr] [1130/002305.943825:ERROR:jpeg_decode_accelerator_unittest.cc(163)] JpegDecodeAccelerator::Initialize() failed
This is from messages in https://pantheon.corp.google.com/storage/browser/chromeos-autotest-results/159402061-chromeos-test/chromeos4-row6-rack13-host9/video_VideoEncodeAccelerator.h264/sysinfo/

2017-11-29T21:39:23.044379-08:00 NOTICE autotest[4216]: 21:39:23.041 ERROR|             utils:0280| [stderr] [1129/213923.037077:VERBOSE2:vaapi_video_encode_accelerator.cc(143)] VaapiVideoEncodeAccelerator(): 
2017-11-29T21:39:23.047242-08:00 NOTICE autotest[4217]: 21:39:23.045 ERROR|             utils:0280| [stderr] [1129/213923.037172:VERBOSE2:vaapi_video_encode_accelerator.cc(168)] Initialize(): Initializing VAVEA, input_format: PIXEL_FORMAT_I420, input_visible_size: 320x192, output_profile: h264 main, initial_bitrate: 200000
2017-11-29T21:39:23.049901-08:00 NOTICE autotest[4218]: 21:39:23.047 ERROR|             utils:0280| [stderr] [1129/213923.037788:WARNING:vaapi_wrapper.cc(257)] HW video decode acceleration not available for unknown
2017-11-29T21:39:23.052588-08:00 NOTICE autotest[4219]: 21:39:23.050 ERROR|             utils:0280| [stderr] [1129/213923.037818:VERBOSE1:vaapi_video_encode_accelerator.cc(183)] Initialize(): Unsupported output profile h264 main
2017-11-29T21:39:23.055248-08:00 NOTICE autotest[4220]: 21:39:23.053 ERROR|             utils:0280| [stderr] [1129/213923.037840:VERBOSE2:vaapi_video_encode_accelerator.cc(153)] ~VaapiVideoEncodeAccelerator(): 
2017-11-29T21:39:23.057872-08:00 NOTICE autotest[4221]: 21:39:23.055 ERROR|             utils:0280| [stderr] [1129/213923.037856:ERROR:video_encode_accelerator_unittest.cc(1433)] Failed creating a VideoEncodeAccelerator.
video_VideoDecodeAccelerator passed in 10172.0.0.
From https://00e9e64bacd78bb3c4a468257f281d8ec6a074065c8fc45856-apidata.googleusercontent.com/download/storage/v1/b/chromeos-autotest-results/o/159410706-chromeos-test%2Fchromeos6-row2-rack23-host12%2Fvideo_VEAPerf.h264%2Fdebug%2Fvideo_VEAPerf.h264.ERROR?qk=AD5uMEtya-SP760FzPf60yL3CQhE_RgQt_rC4-OkQ3gcsEHZIEKne4cwh5b8SGJWdIjmQik2kbGpAYPvyKCI9zxDkbrJqU1WOmPpPZLDuP0VX_qs067NacIKfH3hkrj-qoeN6w2zu05riSvnT02c9bWfxzQZW9MNCbtWNzqW91_NoQNRrUGYZxWCHAzw3Th-e3StTt4O-9d1WmC344p27s_-rPtlcSLK8jRJrGL8mXJdSIwRRIuAnw58NR0iBfi-aylDKwSGNIAc8vzsOU-1I96oEtdhX0lxnJW_bZk-yJFCPuS_-OLU2s6Lfp6sibIlpnvovfOOcgCtCK7fAXAOW-ETXhkqNKXkUJLZQTkbXowdJnLbP3wrB49IW4Q5I9oFaldExdDb3094VnpgL351lDB2D4IqO6S7kaS35jLkE0hSH-ygv0p4mMW3fZdT8O00Se11miJk9PAO0PGmcjgxLZ3CkcBLUebsIQq9jgXdtPAiNDkzFo3ClJ1qJualf9p1O1lFxQM9L5ea-zebqWfZS5BV1OUe1VOAbEHcvqMBLvSDwTb9mSKHB6lnKoy5wSVX-JB0UV1Y86We1AJDmQD8tHRz1Yplqnff_Hq8oPxHqodpqqyUWtzytSzJ9kpGprcGRj-W14cJN92mHoKK8dRAccifNoQz1V9b7iGNj7f2bUTWQlhTNy6Rr1EegpHvJrRhB4hvxLXtMaHAz6nz_iCiJrfGE-cO4M7_mlb1k9oPpyVlc5BiNOXzNi28BKjuSnrupm4_c-Z6FnYIye1xfncGUchJTP4kMubRkSX3mIuvjn8E0JSijl0xJTBdn9RX5LC58UYgYpin-37C3ZUCZLxOeTkcQQJnAoI1rkg2IrC571YOvIg0iXvt7ah_TeXX_N-kJzktQyrLfUbY:

11/29 22:40:41.915 ERROR|             utils:0280| [stderr] [1129/224041.908423:VERBOSE2:vaapi_video_encode_accelerator.cc(143)] VaapiVideoEncodeAccelerator(): 
11/29 22:40:41.919 ERROR|             utils:0280| [stderr] [1129/224041.908513:VERBOSE2:vaapi_video_encode_accelerator.cc(168)] Initialize(): Initializing VAVEA, input_format: PIXEL_FORMAT_I420, input_visible_size: 320x192, output_profile: h264 main, initial_bitrate: 200000
11/29 22:40:41.923 ERROR|             utils:0280| [stderr] [1129/224041.909106:WARNING:vaapi_wrapper.cc(257)] HW video decode acceleration not available for unknown
11/29 22:40:41.928 ERROR|             utils:0280| [stderr] [1129/224041.909148:VERBOSE1:vaapi_video_encode_accelerator.cc(183)] Initialize(): Unsupported output profile h264 main
11/29 22:40:41.933 ERROR|             utils:0280| [stderr] [1129/224041.909188:VERBOSE2:vaapi_video_encode_accelerator.cc(153)] ~VaapiVideoEncodeAccelerator(): 
11/29 22:40:41.937 ERROR|             utils:0280| [stderr] [1129/224041.909209:ERROR:video_encode_accelerator_unittest.cc(1433)] Failed creating a VideoEncodeAccelerator.
11/29 22:40:41.942 ERROR|     video_VEAPerf:0334| 1 failures; <EncoderPerf/VideoEncodeAcceleratorTest.TestSimpleEncode/0>: ../../../../../../../home/chrome-bot/chrome_root/src/media/gpu/video_encode_accelerator_unittest.cc:2298;       Expected: state;       Which is: 1; To be equal to: notes[i]->Wait();       Which is: 5

Very likely to have been introduced by https://chromium-review.googlesource.com/c/chromium/src/+/785690
Seems like this newly-introduced switch case does not handle Chrome OS:

  switch (gl::GetGLImplementation()) {
    case gl::kGLImplementationEGLGLES2:
      va_display_ = vaGetDisplayDRM(drm_fd_.get());
      break;
    case gl::kGLImplementationDesktopGL:
 #if defined(USE_X11)
      va_display_ = vaGetDisplay(gfx::GetXDisplay());
 #else
      LOG(WARNING) << "HW video decode acceleration not available without "
                      "DesktopGL (GLX).";
 #endif  // USE_X11
      break;

    default:
      LOG(WARNING) << "HW video decode acceleration not available for "
                   << gl::GetGLImplementationName(gl::GetGLImplementation());
      return false;
  }

Original code would run the following in the Ozone case:

  va_display_ = vaGetDisplayDRM(drm_fd_.get());

So if that is all there is to it, it should be able to devise a fix vs. just reverting the patch.
gl::GetGlImplementation() return 0 (kGLImplementationNone) when running from these tests. Interestingly Chrome as video_decode_accelerator_unittest both return the expected value (kGLImplementationEGLGLES2).

I suppose the issue we have here is that the failing tests are renderless, we are not using GL.

Adding kGLImplementationNone to the first case (which is what the original code would have done) results in jpeg_decode_accelerator_unittest passing again on my local build, so I will post that as a fix.
Project Member

Comment 12 by bugdroid1@chromium.org, Dec 1 2017

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

commit 041dca89c23713dcebdc72c3f247f626f105e7a2
Author: Alexandre Courbot <acourbot@chromium.org>
Date: Fri Dec 01 09:11:24 2017

vaapi_wrapper: support non-GL apps

Some unit tests make use of vaapi but do not render anything and do not
initialize GL. In this case, gl::GetGLImplementation() will return
gl::kGLImplementationNone, which was not handled and caused
VADisplayState's initialization to fail. Consider this case, trying to
open an X display first, then falling back to DRM if the returned
display is not valid.

Note that this is more a workaround than a fix ; chosing which VA
display to open should have nothing to do with GL.

BUG= chromium:790904 
FIXES=CL:785690
TEST=verified that video_JpegDecodeAccelerator passes again with this
patch.

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: I589fe53ee953850b454cf2085f00590ff08e4ba4
Reviewed-on: https://chromium-review.googlesource.com/802669
Reviewed-by: Wu-Cheng Li <wuchengli@chromium.org>
Commit-Queue: Alexandre Courbot <acourbot@chromium.org>
Cr-Commit-Position: refs/heads/master@{#520893}
[modify] https://crrev.com/041dca89c23713dcebdc72c3f247f626f105e7a2/media/gpu/vaapi_wrapper.cc

Cc: julien.isorce@chromium.org
Labels: Merge-Request-64
Status: Fixed (was: Started)
This needs to be backported to M64.
Status: Started (was: Fixed)
Project Member

Comment 16 by sheriffbot@chromium.org, Dec 5 2017

Labels: -Merge-Request-64 Hotlist-Merge-Approved Merge-Approved-64
Your change meets the bar and is auto-approved for M64. Please go ahead and merge the CL to branch 3282 manually. Please contact milestone owner if you have questions.
Owners: cmasso@(Android), cmasso@(iOS), kbleicher@(ChromeOS), abdulsyed@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Labels: -Pri-0 Pri-1
Backport to M64: https://chromium-review.googlesource.com/c/chromium/src/+/813394
Project Member

Comment 18 by bugdroid1@chromium.org, Dec 7 2017

Labels: -merge-approved-64 merge-merged-3282
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b64e37ee96899ac915812906e53b94c6430ef7b8

commit b64e37ee96899ac915812906e53b94c6430ef7b8
Author: Alexandre Courbot <acourbot@chromium.org>
Date: Thu Dec 07 04:32:09 2017

vaapi_wrapper: support non-GL apps

Some unit tests make use of vaapi but do not render anything and do not
initialize GL. In this case, gl::GetGLImplementation() will return
gl::kGLImplementationNone, which was not handled and caused
VADisplayState's initialization to fail. Consider this case, trying to
open an X display first, then falling back to DRM if the returned
display is not valid.

Note that this is more a workaround than a fix ; chosing which VA
display to open should have nothing to do with GL.

BUG= chromium:790904 
FIXES=CL:785690
TEST=verified that video_JpegDecodeAccelerator passes again with this
patch.

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: I589fe53ee953850b454cf2085f00590ff08e4ba4
Reviewed-on: https://chromium-review.googlesource.com/802669
Reviewed-by: Wu-Cheng Li <wuchengli@chromium.org>
Commit-Queue: Alexandre Courbot <acourbot@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#520893}(cherry picked from commit 041dca89c23713dcebdc72c3f247f626f105e7a2)
Reviewed-on: https://chromium-review.googlesource.com/813394
Reviewed-by: Pawel Osciak <posciak@chromium.org>
Cr-Commit-Position: refs/branch-heads/3282@{#69}
Cr-Branched-From: 5fdc0fab22ce7efd32532ee989b223fa12f8171e-refs/heads/master@{#520840}
[modify] https://crrev.com/b64e37ee96899ac915812906e53b94c6430ef7b8/media/gpu/vaapi_wrapper.cc

Status: Fixed (was: Started)
All required fixes merged, marking as fixed.

Sign in to add a comment