Migrate webrender-android tests from A51 to A55 and Pixel 6
Categories
(Core :: Graphics: WebRender, task)
Tracking
()
Tracking | Status | |
---|---|---|
firefox134 | --- | fixed |
People
(Reporter: jnicol, Assigned: jnicol)
References
(Blocks 1 open bug)
Details
Attachments
(5 files)
We are replacing the A51 devices on CI with A55 devices, so must move the webrender wrench tests over. However, the A51 has a Mali GPU and the A55 has an Xclipse. Increasing our coverage to include Xclipse is great, but it would be a shame to lose coverage on Mali. So let's additionally run the tests on the existing Pixel 6 devices.
Assignee | ||
Updated•1 month ago
|
Assignee | ||
Comment 1•1 month ago
|
||
Newer devices often only support aarch64 binaries, and we no longer
run on any 32bit devices in CI, so switch the default build
architecture. Developers will still be able to build arm7 binaries if
required for local testing.
Assignee | ||
Comment 2•1 month ago
|
||
clipse GPUs appear render the diagonal linear gradient in this test
case at a slightly different scale than in its reference. This issue
is hardware-specific and unrelated to the bug that the test case is
designed to test.
This patch reworks the test case to use a horizontal linear gradient,
avoiding this issue. The underlying cause will be investigated and
fixed in bug 1928323.
Assignee | ||
Comment 3•1 month ago
|
||
Currently we use glutin's GlRequest::GlThenGles when creating a GL
context. This first attempts to select bind the OpenGL API using
eglBindAPI, falling back to the OpenGL ES API if that fails.
Some Android devices (eg those with Xclipse GPUs) successfully allow
binding the OpenGL API, only for eglChooseConfig to subsequently
return zero available configs. This means using GlThenGles always
results in failure to create a GL context.
To avoid this, this patch makes us specifically request a GLES context
by default on Android. Note that this can still be overridden for
local testing using wrench's --renderer command line argument.
Assignee | ||
Comment 4•1 month ago
|
||
On Xclipse GPUs glGetDebugMessageLog() sometimes returns a larger
count that the count provided as its first argument. This results in
an index out of bounds panic inside gleam's get_debug_messages()
wrapper.
Assignee | ||
Comment 5•1 month ago
|
||
Assignee | ||
Comment 6•1 month ago
|
||
Copying Joel's comment from https://phabricator.services.mozilla.com/D227518:
we only have unittests for p5, we keep these pools separate so perf doesn't kill unittests or vice versa. we should have a discussion about devices and availability. There are only 4x p6 and those are for perf. We will need to understand the load here for a55 and p6 and determine if we want to risk perf/unit in the same pool or create a pool.
If you have try pushes, please provide them, we can calculate expected runtime and device requirements. It would be better to do this in a bug than phabricator.
Here's a try push: https://treeherder.mozilla.org/jobs?repo=try&selectedTaskRun=FMHQju1nQ1axDR05Sp5qpg.0&revision=625df8584ff9b95e2645af1b31644ab08f3db3c0
We previously squeezed the wrench tests in on the A51 perf pool in bug 1765742. Assuming the A55 pool is equivalent hopefully no issues there. Ideally we could find a way to run on Pixel 6 too as we really don't want to lose test coverage on the Mali GPU.
Comment 7•1 month ago
|
||
thanks for this, the runtime is low and we need <1 device to handle the load, so there is enough coverage. It is easy to forget this (as we all did) and when we migrate perf tests in the future again, this could be forgotten about. Lets move forward, but I am open to ideas about how to get this on a unittest set of devices and/or make this easier to find that we are using a perf pool instead of a unittest pool.
Comment 9•1 month ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/72417143b6c1
https://hg.mozilla.org/mozilla-central/rev/a1f9c8f315f3
https://hg.mozilla.org/mozilla-central/rev/9f795fd223a5
https://hg.mozilla.org/mozilla-central/rev/f4d26877859f
https://hg.mozilla.org/mozilla-central/rev/3fc3f2e27bc4
Description
•