Closed Bug 1801824 Opened 2 years ago Closed 2 years ago

Rendering problem of accelerated canvas with android emulator in CI

Categories

(Core :: Graphics, defect)

defect

Tracking

()

RESOLVED FIXED
111 Branch
Tracking Status
firefox111 --- fixed

People

(Reporter: sotaro, Assigned: sotaro)

References

(Depends on 1 open bug, Blocks 1 open bug)

Details

Attachments

(1 file, 1 obsolete file)

Found during Bug 1794380.

With android emulator in CI, accelerated canvas rendering had problems. The problems did not happen with android hardware in CI.

https://treeherder.mozilla.org/jobs?repo=try&revision=0e9b0fd6f7fdf62e6b2a259f98cfb6326df5bc3f

See Also: → 1556058, 1583290
Blocks: gpu-canvas
Depends on: 1794380
Severity: -- → S3
Blocks: 1800178
See Also: → 1718341

Latest Android emulator 33 addressed some test failures of accelerated canvas. But test failures of R-swr-nofis was not addressed.

Assignee: nobody → sotaro.ikeda.g

Sotaro, do you know whether accelerated canvas works on a device running Android 7 (SDK level 24)? ie is it actually an emulator problem, or is it a problem with older versions of Android?

Flags: needinfo?(sotaro.ikeda.g)

I do not have an Android 7 device, but it should be an emulator specific problem.

From Bug 1794380 comment9, Android 8.0 Pixel2 did not cause the problem. By modifying test, it seems to possible to check if accelerated canvas works on Android 7.0 MotoG5.

Flags: needinfo?(sotaro.ikeda.g)

From android 25 emulator, the followings R-nofis tests' failures were addressed. But several failures of R-swr-nofis were not addressed.

layout/reftests/border-radius/clipping-4-canvas.html
layout/reftests/border-radius/clipping-5-refc.html
layout/reftests/border-radius/intersecting-clipping-1-canvas.html
layout/reftests/border-radius/intersecting-clipping-1-refc.html

Depends on: 1808644

(In reply to Sotaro Ikeda [:sotaro] from comment #5)

But several failures of R-swr-nofis were not addressed.

It was caused by current implementation of RenderAndroidSurfaceTextureHost. On android emulator, single buffer mode SurfaceTexture is not used. Since single buffer mode SurfaceTexture does not work on Android Emulator.

When SurfaceTexture is not single buffer mode, RenderAndroidSurfaceTextureHost calls mSurfTex->UpdateTexImage() in RenderAndroidSurfaceTextureHost::Lock(). It is necessary for video playback with hardware WebRender. But it does not work with WebRender (Software OpenGL).

Depends on: 1808840
Depends on: 1808878
Depends on: 1809389
Attachment #9311704 - Attachment description: WIP: Bug 1801824 - Enable accelerated canvas → WIP: Bug 1801824 - Enable accelerated canvas on Android nightly
Depends on: 1810398
Attachment #9311890 - Attachment is obsolete: true
Attachment #9311704 - Attachment description: WIP: Bug 1801824 - Enable accelerated canvas on Android nightly → Bug 1801824 - Enable accelerated canvas on Android nightly
Pushed by sikeda.birchill@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/d42a610802e0 Enable accelerated canvas on Android nightly r=lsalzman,gfx-reviewers,jmaher
Regressions: 1810689
Regressions: 1810691
Regressions: 1810693
Regressions: 1810694
Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → 111 Branch
Regressions: 1811048
Regressions: 1358852
Regressions: 1814438
Blocks: 1825182
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: