New issue
Advanced search Search tips

Issue 865957 link

Starred by 0 users

Issue metadata

Status: Fixed
Owner:
Closed: Nov 1
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 1
Type: Bug

Blocking:
issue 788439



Sign in to add a comment

LowLatency 2d canvas pixel tests crashing on android

Project Member Reported by junov@chromium.org, Jul 20

Issue description

After landing https://chromium-review.googlesource.com/c/chromium/src/+/1144602

The following gpu pixel tests crash on the android marshmallow bot:
gpu_tests.pixel_integration_test.PixelIntegrationTest.Pixel_CanvasLowLatency2D
gpu_tests.pixel_integration_test.PixelIntegrationTest.Pixel_CanvasUnacceleratedLowLatency2D
 
Blocking: 788439
Owner: fs...@chromium.org
Status: Assigned (was: Untriaged)
Cc: fs...@chromium.org
Owner: ----
Status: Available (was: Assigned)
Labels: LowLatency
Owner: mcasas@chromium.org
Status: Assigned (was: Available)
Still failing on e.g. chromium.gpu.fyi's Android FYI Release (Nexus 5)



Downloading gs://chromium-gpu-archive/reference-images/Pixel_CanvasLowLatency2D_v2_android_Qualcomm_Adreno (TM) 330_Nexus 5_non_msaa.png to /b/swarming/w/it6A4nyL/tmpgX9w5P.png
Uploading /b/swarming/w/it6A4nyL/tmpps4yMl.png to gs://chromium-browser-gpu-tests/runs/d3a261db3e8c90e8a40615f44d40420758088f60_Android_FYI_Release_Nexus_5__telemetry/gen/Pixel_CanvasLowLatency2D_d3a261db3e8c90e8a40615f44d40420758088f60.png (publicly readable)
Uploading /b/swarming/w/it6A4nyL/tmpDVuF4w.png to gs://chromium-browser-gpu-tests/runs/d3a261db3e8c90e8a40615f44d40420758088f60_Android_FYI_Release_Nexus_5__telemetry/ref/Pixel_CanvasLowLatency2D_d3a261db3e8c90e8a40615f44d40420758088f60.png (publicly readable)
Uploading /b/swarming/w/it6A4nyL/tmp4RnZ2v.png to gs://chromium-browser-gpu-tests/runs/d3a261db3e8c90e8a40615f44d40420758088f60_Android_FYI_Release_Nexus_5__telemetry/diff/Pixel_CanvasLowLatency2D_d3a261db3e8c90e8a40615f44d40420758088f60.png (publicly readable)

Expected exception while running Pixel_CanvasLowLatency2D

Traceback (most recent call last):
  _RunGpuTest at content/test/gpu/gpu_tests/gpu_integration_test.py:138
    self.RunActualGpuTest(url, *args)
  RunActualGpuTest at content/test/gpu/gpu_tests/pixel_integration_test.py:197
    self.fail('Reference image did not match captured screen')
  fail at .swarming_module/lib/python2.7/unittest/case.py:410
    raise self.failureException(msg)
AssertionError: Reference image did not match captured screen

Locals:
  msg : 'Reference image did not match captured screen'


...

See http://chromium-browser-gpu-tests.commondatastorage.googleapis.com/view_test_results.html?d3a261db3e8c90e8a40615f44d40420758088f60_Android_FYI_Release_Nexus_5__telemetry for this run's test results
[13/48] gpu_tests.pixel_integration_test.PixelIntegrationTest.Pixel_CanvasLowLatency2D passed 23.8367s
2D LL contexts seem to hit some strange error:

E chromium: [ERROR:browser_child_process_host_impl.cc(643)] Terminating child process for bad Mojo message: Received bad user message: Validation failed for GpuService::CreateGpuMemoryBuffer response deserializer [VALIDATION_ERROR_DESERIALIZATION_FAILED

Note that LL 3D contexts work fine.
Project Member

Comment 10 by bugdroid1@chromium.org, Oct 23

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

commit a7b800f047e6e5d02b8feb9c56a4f246bc34ef62
Author: Miguel Casas <mcasas@chromium.org>
Date: Tue Oct 23 02:00:56 2018

GMB FactoryAndroid: handle nullptr

GpuMemoryBufferImplAndroidHardwareBuffer::Create() can return a
nullptr [1], this CL handles that situation appropriately.

I found this path while investigating the bug below. It might be
related or not -- my android got into some metastate and it won't
install clankium images, but in the meantime this fix seems
legit to me.

[1] https://cs.chromium.org/chromium/src/gpu/ipc/common/gpu_memory_buffer_impl_android_hardware_buffer.cc?type=cs&sq=package:chromium&g=0&l=85

Bug:  865957 
Change-Id: I37f431e70d90b955d812dd037076648bc3d30331
Reviewed-on: https://chromium-review.googlesource.com/c/1295249
Reviewed-by: Sunny Sachanandani <sunnyps@chromium.org>
Commit-Queue: Miguel Casas <mcasas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#601823}
[modify] https://crrev.com/a7b800f047e6e5d02b8feb9c56a4f246bc34ef62/gpu/ipc/service/gpu_memory_buffer_factory_android_hardware_buffer.cc

Project Member

Comment 11 by bugdroid1@chromium.org, Oct 24

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

commit d24323736685b9e5d73eeafc42cc400ce1b7d5f6
Author: Miguel Casas <mcasas@chromium.org>
Date: Wed Oct 24 00:44:52 2018

Android GMB: fix deserialization validation routine

crrev.com/c/1288609 changed the behaviour of the validation of
GpuMemoryBufferHandle deserialization, which is used from mojos'
CreateGpuMemoryBuffer(). Said CL changed the return path for
Android to return false always (l.210, see [1]).  Instead, we
want to return the validity of the ScopedHardwareBufferHandle.

ToT has a crash in e.g. https://codepen.io/miguelao/full/EReOgO,
a lowLatency 2D Canvas context buffer.

[1] crrev.com/c/1288609/3/ui/gfx/mojo/buffer_types_struct_traits.cc#210

Bug:  865957 
Change-Id: Iccea7607163a6004d440b92197d44908d775e2f9
Reviewed-on: https://chromium-review.googlesource.com/c/1297469
Reviewed-by: Alexandr Ilin <alexilin@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Miguel Casas <mcasas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#602191}
[modify] https://crrev.com/d24323736685b9e5d73eeafc42cc400ce1b7d5f6/ui/gfx/mojo/buffer_types_struct_traits.cc

Project Member

Comment 12 by bugdroid1@chromium.org, Oct 24

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

commit fa3ffde0aa6e58b5f6f2899cc08f0b89abe9d30c
Author: Kenneth Russell <kbr@chromium.org>
Date: Wed Oct 24 21:24:38 2018

Expand docs around pixel testing, esp. running on Android.

Tbr: mcasas@chromium.org
No-Try: True
Bug:  865957 
Change-Id: I219fb646bc76265e0a42b7ffbcd47bd99d71d127
Reviewed-on: https://chromium-review.googlesource.com/c/1297984
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#602456}
[modify] https://crrev.com/fa3ffde0aa6e58b5f6f2899cc08f0b89abe9d30c/docs/gpu/gpu_testing.md

Project Member

Comment 13 by bugdroid1@chromium.org, Oct 26

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

commit 20f6def80b565eb9a1fbb058aee4da21bce0c971
Author: Kenneth Russell <kbr@chromium.org>
Date: Fri Oct 26 02:59:25 2018

Support Android OS version in GPU test expectations.

To use, specify only the specific version in the expectation (like
'm', 'n', etc.) instead of 'android'.

Tested manually.

Bug:  865957 
Change-Id: I62f036ade714ec79f773c603fac73314c9da0f30
Reviewed-on: https://chromium-review.googlesource.com/c/1299738
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Reviewed-by: Miguel Casas <mcasas@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Cr-Commit-Position: refs/heads/master@{#602976}
[modify] https://crrev.com/20f6def80b565eb9a1fbb058aee4da21bce0c971/content/test/gpu/gpu_tests/test_expectations.py

Project Member

Comment 14 by bugdroid1@chromium.org, Oct 26

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

commit 52aa25bf8ca2f1871cb44f82252fa2ef214aa25a
Author: Miguel Casas <mcasas@chromium.org>
Date: Fri Oct 26 04:18:14 2018

canvas: style fixes

While working on crrev.com/c/1294870 I cleaned up a bit the style
around the files below:
- no {} for one liners
- if (a) then return foo; return bar ==> return a ? foo : bar;

All in all: less lines, more consistent style.  No new functionality
intended.

Bug:  865957 
Change-Id: Iac7f26be9a9a2323b09f80d29a5f7ec9f4370278
Reviewed-on: https://chromium-review.googlesource.com/c/1300037
Reviewed-by: Andres Calderon Jaramillo <andrescj@chromium.org>
Commit-Queue: Miguel Casas <mcasas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#602987}
[modify] https://crrev.com/52aa25bf8ca2f1871cb44f82252fa2ef214aa25a/third_party/blink/renderer/platform/graphics/canvas_resource.cc
[modify] https://crrev.com/52aa25bf8ca2f1871cb44f82252fa2ef214aa25a/third_party/blink/renderer/platform/graphics/canvas_resource_provider.cc

Project Member

Comment 15 by bugdroid1@chromium.org, Oct 29

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

commit f8ab925379612702aa5d8415c5abed5439992593
Author: Miguel Casas <mcasas@chromium.org>
Date: Mon Oct 29 23:07:24 2018

Fix Canvas LowLatency PixelIntegrationTest on Android

These tests where marked as Fail: ToT crashed when running e.g. [1]
with chrome://flags/#enable-experimental-web-platform-features.

- Pixel_CanvasUnacceleratedLowLatency2D: is kept disabled on Android
because software compositing doesn't work at all; this test is
changed from Fail() to Skip() and bundled with similar expectations.
Other similar android-sw-compositor expectations are updated and
gathered in the same area for better reference (there are no plans
whatsoever to make this compositor mode work on Android)

- Pixel_CanvasLowLatency2D: I landed a fix recently for a crash
(crrev.com/c/1297469), with that the test works but produces a
sliiiightly different output (see e.g. the first row of [2]), so we
have to rebaseline the reference images. For that, the first step
is to mark the test as disabled for all platforms.

[1] http://htmlpreview.github.io/?https://github.com/chromium/chromium/blob/HEAD/content/test/data/gpu/pixel_canvas_low_latency_2d.html
[2] http://chromium-browser-gpu-tests.commondatastorage.googleapis.com/view_test_results.html?868948046954e7d06d97eb10544ea3b27b320953_android_marshmallow_arm64_rel_telemetry

Bug:  865957 
Change-Id: I45ccbc0a674cb6eb51f622d7c7af039162a2c071
Reviewed-on: https://chromium-review.googlesource.com/c/1294870
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Miguel Casas <mcasas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#603677}
[modify] https://crrev.com/f8ab925379612702aa5d8415c5abed5439992593/content/test/gpu/gpu_tests/pixel_expectations.py
[modify] https://crrev.com/f8ab925379612702aa5d8415c5abed5439992593/content/test/gpu/gpu_tests/pixel_test_pages.py

Project Member

Comment 16 by bugdroid1@chromium.org, Nov 1

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

commit 378de2eee9cfa70c9ab3dba742c5790c6d57e33f
Author: Kenneth Russell <kbr@chromium.org>
Date: Thu Nov 01 01:38:12 2018

Mark Pixel_CanvasLowLatency2D Fail instead of Skip.

Needed to generate new reference images.

Tbr: mcasas@chromium.org
Bug:  865957 
Change-Id: I87e8f15550a7bddef25f2f7ce22d07184d13ea17
Reviewed-on: https://chromium-review.googlesource.com/c/1311842
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Kenneth Russell <kbr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#604476}
[modify] https://crrev.com/378de2eee9cfa70c9ab3dba742c5790c6d57e33f/content/test/gpu/gpu_tests/pixel_expectations.py

Project Member

Comment 17 by bugdroid1@chromium.org, Nov 1

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

commit 5003adbc908c2ff304593cf3d1cd615b3a40ec24
Author: Miguel Casas-Sanchez <mcasas@chromium.org>
Date: Thu Nov 01 19:09:34 2018

Reenable Pixel_CanvasLowLatency2D test

crrev.com/c/1294870 uprev'ed Pixel_CanvasLowLatency2D, this CL now
reenables it.  To monitor: android-marshmallow-arm64-rel bot.

Bug:  865957 
Change-Id: I89eb31722c430b0134093a7d9db51ae469b76652
Reviewed-on: https://chromium-review.googlesource.com/c/1306648
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Miguel Casas <mcasas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#604659}
[modify] https://crrev.com/5003adbc908c2ff304593cf3d1cd615b3a40ec24/content/test/gpu/gpu_tests/pixel_expectations.py

Status: Fixed (was: Assigned)
Should be fixed !

Sign in to add a comment