Closed Bug 1928322 Opened 1 month ago Closed 1 month ago

Migrate webrender-android tests from A51 to A55 and Pixel 6

Categories

(Core :: Graphics: WebRender, task)

task

Tracking

()

RESOLVED FIXED
134 Branch
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.

Component: Performance → Graphics: WebRender
Product: Testing → Core

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.

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.

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.

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.

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.

Flags: needinfo?(jmaher)

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.

Flags: needinfo?(jmaher)
Pushed by jnicol@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/72417143b6c1 Switch android wrench builds from arm7 to aarch64. r=gfx-reviewers,taskgraph-reviewers,jmaher,aosmond https://hg.mozilla.org/integration/autoland/rev/a1f9c8f315f3 Rework filter-blur-downscaled-task.yaml to avoid bug on Xclipse GPUs r=gfx-reviewers,aosmond https://hg.mozilla.org/integration/autoland/rev/9f795fd223a5 Request GLES context by default on android in wrench. r=gfx-reviewers,aosmond https://hg.mozilla.org/integration/autoland/rev/f4d26877859f Block GL_KHR_debug on Samsung Xclipse GPUs. r=gfx-reviewers,aosmond https://hg.mozilla.org/integration/autoland/rev/3fc3f2e27bc4 Switch android wrench tests from Samsung A51 to Samsung A55 and Pixel 6. r=gfx-reviewers,taskgraph-reviewers,jmaher,aosmond
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: