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

Issue 599975 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Jul 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 1
Type: Bug-Regression



Sign in to add a comment

media/video-autoplay.html fails on WebKit Android (Nexus4)

Project Member Reported by lukasza@chromium.org, Apr 1 2016

Issue description

It seems that the first failure in this particular test was in https://build.chromium.org/p/chromium.webkit/builders/WebKit%20Android%20%28Nexus4%29/builds/45048
The failure mode is:
  media/video-autoplay.html [ Timeout ]

So - I wonder if this test is simply slow... (OTOH, I don't see this test in the "slowest tests" section in https://build.chromium.org/p/chromium.webkit/builders/WebKit%20Android%20%28Nexus4%29/builds/45047/steps/webkit_tests/logs/stdio)
Cc: kbr@chromium.org zmo@chromium.org
Labels: -Type-Bug-Regression Type-Bug
kbr@ / zmo@ - I wonder if you could take a look?  (since this is media-related and I saw some of your CLs on the blamelist for 45048)
Labels: -Type-Bug -Pri-3 Pri-1 Type-Bug-Regression
Bumping priority since this makes one of the bots red.

Comment 5 by kbr@chromium.org, Apr 1 2016

Owner: dalecur...@chromium.org
Status: Assigned (was: Untriaged)
Almost certainly https://chromium.googlesource.com/chromium/src/+/7defc181e284d5e24a00a9254d4dc7ac3f2c15cb .

Looking.
Ah, I bet this test is now finding a .ogv file with theora in it -- that android can't play. Just need to be switched to use a webm file.
Sorry for slow progress goma has been having issues. GPU process seems be dying in the test harness -- though the file plays fine locally, the gpu process death causes a decoder error. I'm not seeing any information on what's going wrong here. I'm guessing that something about how dump-renderer-tree works doesn't like the OES texture being returned by hardware video decoder.

E/chromium(14432): [14432:14451:0401/172815:12307128679:ERROR:gles2_cmd_decoder_autogen.h(136)] [.CommandBufferContext.RenderWorker-0x78e5c108]GL ERROR :GL_INVALID_ENUM : glBindTexture: target was GL_TEXTURE_EXTERNAL_OES
E/chromium(14432): [14432:14451:0401/172815:12307129076:ERROR:gles2_cmd_decoder_autogen.h(2849)] [.CommandBufferContext.RenderWorker-0x78e5c108]GL ERROR :GL_INVALID_ENUM : glTexParameteri: target was GL_TEXTURE_EXTERNAL_OES
E/chromium(14432): [14432:14451:0401/172815:12307129472:ERROR:gles2_cmd_decoder_autogen.h(2849)] [.CommandBufferContext.RenderWorker-0x78e5c108]GL ERROR :GL_INVALID_ENUM : glTexParameteri: target was GL_TEXTURE_EXTERNAL_OES
E/chromium(14432): [14432:14451:0401/172815:12307130174:ERROR:gles2_cmd_decoder_autogen.h(2849)] [.CommandBufferContext.RenderWorker-0x78e5c108]GL ERROR :GL_INVALID_ENUM : glTexParameteri: target was GL_TEXTURE_EXTERNAL_OES
E/chromium(14432): [14432:14451:0401/172815:12307130998:ERROR:gles2_cmd_decoder_autogen.h(2849)] [.CommandBufferContext.RenderWorker-0x78e5c108]GL ERROR :GL_INVALID_ENUM : glTexParameteri: target was GL_TEXTURE_EXTERNAL_OES
E/chromium(14432): [14432:14451:0401/172815:12307131456:ERROR:gles2_cmd_decoder_autogen.h(4499)] [.CommandBufferContext.RenderWorker-0x78e5c108]GL ERROR :GL_INVALID_ENUM : glProduceTextureCHROMIUM: target was GL_TEXTURE_EXTERNAL_OES
E/chromium(14432): [14432:14451:0401/172815:12307133959:ERROR:gles2_cmd_decoder_autogen.h(136)] [.CommandBufferContext.RenderWorker-0x78e5c108]GL ERROR :GL_INVALID_ENUM : glBindTexture: target was GL_TEXTURE_EXTERNAL_OES
E/chromium(14432): [14432:14451:0401/172815:12307134142:ERROR:gles2_cmd_decoder_autogen.h(2849)] [.CommandBufferContext.RenderWorker-0x78e5c108]GL ERROR :GL_INVALID_ENUM : glTexParameteri: target was GL_TEXTURE_EXTERNAL_OES
E/chromium(14432): [14432:14451:0401/172815:12307134264:ERROR:gles2_cmd_decoder_autogen.h(2849)] [.CommandBufferContext.RenderWorker-0x78e5c108]GL ERROR :GL_INVALID_ENUM : glTexParameteri: target was GL_TEXTURE_EXTERNAL_OES
E/chromium(14432): [14432:14451:0401/172815:12307134386:ERROR:gles2_cmd_decoder_autogen.h(2849)] [.CommandBufferContext.RenderWorker-0x78e5c108]GL ERROR :GL_INVALID_ENUM : glTexParameteri: target was GL_TEXTURE_EXTERNAL_OES
E/chromium(14432): [14432:14451:0401/172815:12307134508:ERROR:gles2_cmd_decoder_autogen.h(2849)] [.CommandBufferContext.RenderWorker-0x78e5c108]GL ERROR :GL_INVALID_ENUM : glTexParameteri: target was GL_TEXTURE_EXTERNAL_OES
E/chromium(14432): [14432:14451:0401/172815:12307134661:ERROR:gles2_cmd_decoder_autogen.h(4499)] [.CommandBufferContext.RenderWorker-0x78e5c108]GL ERROR :GL_INVALID_ENUM : glProduceTextureCHROMIUM: target was GL_TEXTURE_EXTERNAL_OES
E/chromium(14432): [14432:14451:0401/172815:12307134783:ERROR:gles2_cmd_decoder_autogen.h(136)] [.CommandBufferContext.RenderWorker-0x78e5c108]GL ERROR :GL_INVALID_ENUM : glBindTexture: target was GL_TEXTURE_EXTERNAL_OES
E/chromium(14432): [14432:14451:0401/172815:12307134905:ERROR:gles2_cmd_decoder_autogen.h(2849)] [.CommandBufferContext.RenderWorker-0x78e5c108]GL ERROR :GL_INVALID_ENUM : glTexParameteri: target was GL_TEXTURE_EXTERNAL_OES
E/chromium(14432): [14432:14451:0401/172815:12307135027:ERROR:gles2_cmd_decoder_autogen.h(2849)] [.CommandBufferContext.RenderWorker-0x78e5c108]GL ERROR :GL_INVALID_ENUM : glTexParameteri: target was GL_TEXTURE_EXTERNAL_OES
E/chromium(14432): [14432:14451:0401/172815:12307135210:ERROR:gles2_cmd_decoder_autogen.h(2849)] [.CommandBufferContext.RenderWorker-0x78e5c108]GL ERROR :GL_INVALID_ENUM : glTexParameteri: target was GL_TEXTURE_EXTERNAL_OES
E/chromium(14432): [14432:14451:0401/172815:12307135332:ERROR:gles2_cmd_decoder_autogen.h(2849)] [.CommandBufferContext.RenderWorker-0x78e5c108]GL ERROR :GL_INVALID_ENUM : glTexParameteri: target was GL_TEXTURE_EXTERNAL_OES
E/chromium(14432): [14432:14451:0401/172815:12307135485:ERROR:gles2_cmd_decoder_autogen.h(4499)] [.CommandBufferContext.RenderWorker-0x78e5c108]GL ERROR :GL_INVALID_ENUM : glProduceTextureCHROMIUM: target was GL_TEXTURE_EXTERNAL_OES
E/chromium(14432): [14432:14451:0401/172815:12307136095:ERROR:gles2_cmd_decoder_autogen.h(136)] [.CommandBufferContext.RenderWorker-0x78e5c108]GL ERROR :GL_INVALID_ENUM : glBindTexture: target was GL_TEXTURE_EXTERNAL_OES
E/chromium(14432): [14432:14451:0401/172815:12307137652:ERROR:gles2_cmd_decoder_autogen.h(2849)] [.CommandBufferContext.RenderWorker-0x78e5c108]GL ERROR :GL_INVALID_ENUM : glTexParameteri: target was GL_TEXTURE_EXTERNAL_OES
E/chromium(14432): [14432:14451:0401/172815:12307138049:ERROR:gles2_cmd_decoder_autogen.h(2849)] [.CommandBufferContext.RenderWorker-0x78e5c108]GL ERROR :GL_INVALID_ENUM : glTexParameteri: target was GL_TEXTURE_EXTERNAL_OES
E/chromium(14432): [14432:14451:0401/172815:12307138415:ERROR:gles2_cmd_decoder_autogen.h(2849)] [.CommandBufferContext.RenderWorker-0x78e5c108]GL ERROR :GL_INVALID_ENUM : glTexParameteri: target was GL_TEXTURE_EXTERNAL_OES
E/chromium(14432): [14432:14451:0401/172815:12307138873:ERROR:gles2_cmd_decoder_autogen.h(2849)] [.CommandBufferContext.RenderWorker-0x78e5c108]GL ERROR :GL_INVALID_ENUM : glTexParameteri: target was GL_TEXTURE_EXTERNAL_OES
E/chromium(14432): [14432:14451:0401/172815:12307139147:ERROR:gles2_cmd_decoder_autogen.h(4499)] [.CommandBufferContext.RenderWorker-0x78e5c108]GL ERROR :GL_INVALID_ENUM : glProduceTextureCHROMIUM: target was GL_TEXTURE_EXTERNAL_OES
E/chromium(14432): [14432:14451:0401/172815:12307139422:ERROR:gles2_cmd_decoder_autogen.h(136)] [.CommandBufferContext.RenderWorker-0x78e5c108]GL ERROR :GL_INVALID_ENUM : glBindTexture: target was GL_TEXTURE_EXTERNAL_OES
E/chromium(14432): [14432:14451:0401/172815:12307139636:ERROR:gles2_cmd_decoder_autogen.h(2849)] [.CommandBufferContext.RenderWorker-0x78e5c108]GL ERROR :GL_INVALID_ENUM : glTexParameteri: target was GL_TEXTURE_EXTERNAL_OES
E/chromium(14432): [14432:14451:0401/172815:12307139880:ERROR:gles2_cmd_decoder_autogen.h(2849)] [.CommandBufferContext.RenderWorker-0x78e5c108]GL ERROR :GL_INVALID_ENUM : glTexParameteri: target was GL_TEXTURE_EXTERNAL_OES
E/chromium(14432): [14432:14451:0401/172815:12307140154:ERROR:gles2_cmd_decoder_autogen.h(2849)] [.CommandBufferContext.RenderWorker-0x78e5c108]GL ERROR :GL_INVALID_ENUM : glTexParameteri: target was GL_TEXTURE_EXTERNAL_OES
E/chromium(14432): [14432:14451:0401/172815:12307140460:ERROR:gles2_cmd_decoder_autogen.h(2849)] [.CommandBufferContext.RenderWorker-0x78e5c108]GL ERROR :GL_INVALID_ENUM : glTexParameteri: target was GL_TEXTURE_EXTERNAL_OES
E/chromium(14432): [14432:14451:0401/172815:12307140826:ERROR:gles2_cmd_decoder_autogen.h(4499)] [.CommandBufferContext.RenderWorker-0x78e5c108]GL ERROR :GL_INVALID_ENUM : glProduceTextureCHROMIUM: target was GL_TEXTURE_EXTERNAL_OES

Cc: w...@chromium.org sande...@chromium.org liber...@chromium.org
cc: liberato. actually looks like gvd isn't dying, it's returning an invalid argument error. The log spam is coming from:

https://code.google.com/p/chromium/codesearch#chromium/src/content/renderer/media/renderer_gpu_video_accelerator_factories.cc&l=142

GVD then throws an error here:

https://code.google.com/p/chromium/codesearch#chromium/src/content/common/gpu/media/gpu_video_decode_accelerator.cc&l=541
I suspect this has something to do with layout tests not displaying any output, but I can't get the flag which is supposed to enable pixel output to work:

https://code.google.com/p/chromium/codesearch#chromium/src/ui/compositor/compositor_switches.cc&l=16

Probably we should just disable this test for now, since the test passes in a normal harness, just not in the layout test runner for some reason.
Support for EXTERNAL texture targets is toggled by an extension (https://code.google.com/p/chromium/codesearch#chromium/src/gpu/command_buffer/service/feature_info.cc&l=927); perhaps this extension is unavailable (or purposefully disabled) in the test environment.

The probable solution is that we should check for this support in AVDA and fall back on the copying strategy if external textures are not available.

gpu_info contains a copy of the extension list (https://code.google.com/p/chromium/codesearch#chromium/src/gpu/config/gpu_info_collector.cc&l=121), so that may be the easiest way to test for support.
Cc: siev...@chromium.org
+sievers@, kbr@ do either of you know why Android layout tests have disabled external textures? Also if that's not something that can be changed, any advice about the best way to detect this and fallback to our 2D texture copy path? We check GpuPreferences during startup, but I don't see anything in there pertaining to external texture.s
Do these run with mesa or real GL?

Comment 15 by kbr@chromium.org, Apr 4 2016

LayoutTests/VirtualTestSuites defines which flags are passed to content_shell for which directories under LayoutTests/virtual/ .

I don't think any of them are guaranteed to run on bots with real GPUs at this point, so if this layout test now requires that on this platform, it may need to be disabled, or added to a new virtual test suite that overrides the default --use-gl=osmesa flag that was pointed out by @dalecurtis above.

Cc: chcunningham@chromium.org
+chcunningham who had just asked me about somehow making certain layout tests on Android only use real GL for video needs (potentially through kUseGpuInTests).
I'll try the virtual test suites approach. Alternatively if there's an easy way to tell if we're using osmesa from the GPU process we can easily fallback to the 2D texture copy-back strategy.

What --use-gl does Android default to?
It should be kGLImplementationEGLName basically. Or rather by default it would end up using kGLImplementationEGLGLES2.
Hmm, this is trickier than expected. It looks like the OSMesa implementation can't even use the 2D texture path.  The only way for the test to pass with either implementation is to set --use-gl=egl.

It looks like there's more to using a virtual test suite than is obvious though since copying media/video-autoplay.html to a new virtual test suite just resulted in failures that look like it can't load any of the associated javascript or video files.

For now I'll just disable the test until I can figure out the virtual test suite.
Project Member

Comment 20 by bugdroid1@chromium.org, Apr 5 2016

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

commit 5d4867547ce37875c1b2e5becb0acf26fc087fb7
Author: dalecurtis <dalecurtis@chromium.org>
Date: Tue Apr 05 22:24:44 2016

Mark video-autoplay as timing out on Android.

BUG= 599975 
TEST=passes
TBR=watk

Review URL: https://codereview.chromium.org/1858773003

Cr-Commit-Position: refs/heads/master@{#385304}

[modify] https://crrev.com/5d4867547ce37875c1b2e5becb0acf26fc087fb7/third_party/WebKit/LayoutTests/TestExpectations

Project Member

Comment 21 by bugdroid1@chromium.org, May 3 2016

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

commit 5a2ef10346f289adac0e58bb5504c19feffd8754
Author: dpranke <dpranke@chromium.org>
Date: Tue May 03 03:03:07 2016

Mark media/video-autoplay.html as Crashing as well as Timing out on Android.

TBR=dalecurtis@chromium.org
BUG= 599975 

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

[modify] https://crrev.com/5a2ef10346f289adac0e58bb5504c19feffd8754/third_party/WebKit/LayoutTests/TestExpectations

Labels: Test-Layout
Components: -Blink>LayoutTests
Deprecating component:Blink>LayoutTests, to use label Test=Layout instead.
Cc: -chcunningham@chromium.org dalecur...@chromium.org
Owner: chcunningham@chromium.org
=>chcunningham@ who just fixed some similar config change tests.
We can add this to the virtual tests I created in https://codereview.chromium.org/1644763002.

My guess is that when it happens to work (using mesa) it is because libvpx is used and it fails whenever the particular device uses avda due to having hardware support. I encountered similar behavior for the mediasource-play.html test and it is now passing consistently using the virtual test flags to disable mesa. 
Project Member

Comment 26 by bugdroid1@chromium.org, Jul 28 2016

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

commit 4172ea2c032994879605fdc6f68ba466a946d8cd
Author: chcunningham <chcunningham@chromium.org>
Date: Thu Jul 28 21:34:46 2016

Make video-auotplay layout test use gpu acceleration.

Test is failing with logs complaining about GL. Suspected to be the same
issue as encountered with other android tests that attempt to use hw
acceleration. Mesa is not compatible with Android's SurfaceTexture.

BUG= 599975 
TEST=New virtual test passes.

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

[modify] https://crrev.com/4172ea2c032994879605fdc6f68ba466a946d8cd/third_party/WebKit/LayoutTests/SmokeTests
[modify] https://crrev.com/4172ea2c032994879605fdc6f68ba466a946d8cd/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/4172ea2c032994879605fdc6f68ba466a946d8cd/third_party/WebKit/LayoutTests/VirtualTestSuites
[add] https://crrev.com/4172ea2c032994879605fdc6f68ba466a946d8cd/third_party/WebKit/LayoutTests/virtual/media-gpu-accelerated/media/README.txt

Project Member

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

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

commit 3e5e86cfeea0cf627b5655b16e57f117fe46c341
Author: Matt Wolenetz <wolenetz@chromium.org>
Date: Mon Sep 11 23:35:47 2017

Re-enable media-gpu-accelerated SmokeTests

It looks like https://chromium-review.googlesource.com/c/chromium/src/+/481042
accidentally undid chcunningham@'s additions of all of these tests to
SmokeTests.

This is surprising, since running those specific tests was the primary
reason for the media-gpu-accelerated virtual test suite.

BUG= 763528 , 599975 , 555703 

Change-Id: Ia02f8c144dccd8709b6cda854089a166c667a8b9
Reviewed-on: https://chromium-review.googlesource.com/658356
Commit-Queue: Matthew Wolenetz <wolenetz@chromium.org>
Reviewed-by: Chrome Cunningham <chcunningham@chromium.org>
Reviewed-by: Quinten Yearsley <qyearsley@chromium.org>
Cr-Commit-Position: refs/heads/master@{#501098}
[modify] https://crrev.com/3e5e86cfeea0cf627b5655b16e57f117fe46c341/third_party/WebKit/LayoutTests/SmokeTests
[add] https://crrev.com/3e5e86cfeea0cf627b5655b16e57f117fe46c341/third_party/WebKit/LayoutTests/platform/android/http/tests/media/media-source/mediasource-config-change-mp4-av-audio-bitrate-expected.txt
[add] https://crrev.com/3e5e86cfeea0cf627b5655b16e57f117fe46c341/third_party/WebKit/LayoutTests/platform/android/http/tests/media/media-source/mediasource-config-change-mp4-av-framesize-expected.txt
[add] https://crrev.com/3e5e86cfeea0cf627b5655b16e57f117fe46c341/third_party/WebKit/LayoutTests/platform/android/http/tests/media/media-source/mediasource-config-change-mp4-v-framerate-expected.txt

Sign in to add a comment