Open Bug 1684810 Opened 2 years ago Updated 8 months ago

Fish bowl animation is slow (14fps) in portrait mode, fast in landscape mode

Categories

(Core :: Canvas: 2D, defect)

Firefox 86
Unspecified
Android
defect

Tracking

()

Webcompat Priority P3
Tracking Status
firefox86 --- affected

People

(Reporter: karlcow, Unassigned)

References

(Depends on 1 open bug, )

Details

Steps to reproduce

  1. With Firefox Nightly on Android 11, Pixel 2 device. Portrait orientation
  2. Go to https://testdrive-archive.azurewebsites.net/Performance/FishBowl/
  3. See The fps for the fish bowl ~ 14fps
  4. Rotate the device in landscape orientation
  5. Observe the performance, now being around 50fps

Expected:
Fish moving quickly, FPS near 60

Actual:
Portrait orientation has serious performance issue for the same canvas code.

Chrome Canary performs the same (fast) with the two orientations.

Hmm... perhaps we have some trouble with the tall texture used for the water, which is the major change between the two orientations. Lee, will you please examine this?

Severity: -- → S3
Flags: needinfo?(lsalzman)

Jamie, are we doing some sort of buffering or readback here in the rotated case on Android that would impact this?

Flags: needinfo?(lsalzman) → needinfo?(jnicol)
Summary: Fisg bowl animation is slow (14fps) in portrait mode, fast in landscape mode → Fish bowl animation is slow (14fps) in portrait mode, fast in landscape mode

landscape (fast): https://share.firefox.dev/3qlnpwf
portrait (slow): https://share.firefox.dev/3qfHyE7

This is all drawn with canvas2d/Skia, so no readback. I think it's just slow because it's non-accelerated, and is drawing screen-sized images multiple times. It's slow for me on Linux too.

On my Pixel 2 in landscape fishBowlWidth and fishBowlHeight are 690x309, and in portrait 690x1271.

Do we have a metabug for slow canvas2d cases?

Flags: needinfo?(jnicol)

Looks like the rotated blit just falls off the blit fast-path, which would be expected in Skia.

Webcompat Priority: ? → P3
You need to log in before you can comment on or make changes to this bug.