Closed Bug 1533559 Opened 6 years ago Closed 6 years ago

Update dav1d to 0.2.1

Categories

(Core :: Audio/Video: Playback, enhancement, P2)

enhancement

Tracking

()

RESOLVED FIXED
mozilla68
Tracking Status
firefox67 --- fixed
firefox68 --- fixed

People

(Reporter: TD-Linux, Assigned: achronop)

References

Details

Attachments

(2 files)

No description provided.

Alex, there is not much context here. Could you look at this?

Flags: needinfo?(achronop)
Flags: needinfo?(achronop)
Priority: -- → P2

At this point in development dav1d should be updated after every large performance increase. The current version used (f813285) is 7 weeks old and misses almost all SSSE3 assembly which makes dav1d so fast on older processors. See this spreadsheet for the performance difference between 0.1.0, 0.2.0 and 0.2.1.

The current version tag (ace3855a) is stable and include all major SSSE3 assembly.

Thank for the numbers, we plan to import from upstream soon. We are taking care the integration issues with automation in various platforms now. This is the next in the list.

Great to hear! In great timing, dav1d 0.2.1 just got tagged.

Alex: lets try to update to 0.2.1 once 68 Nightly is going (assuming we don't have any other blocking issues).

Assignee: nobody → achronop

Youtube just started encoding in AV1 up to 8K, which should be great for testing (and makes this more relevant than ever). Here's a playlist.

Looks great Thomas! It would be really amazing if it could make it in the r66 branch, since this speeds up AV1 decoding by more than a factor 2x for people with older CPU's, which makes it compelling to switch to Firefox from other browsers.

(In reply to E.M.terHoeven from comment #8)

Youtube just started encoding in AV1 up to 8K, which should be great for testing (and makes this more relevant than ever). Here's a playlist.

Thanks for the playlist.

Looks great Thomas! It would be really amazing if it could make it in the r66 branch, since this speeds up AV1 decoding by more than a factor 2x for people with older CPU's, which makes it compelling to switch to Firefox from other browsers.

As 66 is Beta with only 2 days left before releasing it on Monday there are no patches allowed to land any more. 67 will ship with dav1d turned on by default. And with Thomas patch we are planing on updating the dav1d version to 0.2.1 in 68.

(In reply to Nils Ohlmeier [:drno] from comment #9)

I would highly recommend against enabling dav1d 0.1.0 by default. While it would deliver a great experience for users with AVX2 cpu's, almost half still have a CPU without it. SSSE3 performance of dav1d 0.1.0 is still significantly worse than libaom which will provide a bad first encounter with the AV1 codec for millions of users. This could potentially harm the reputation of dav1d and even the whole AV1 codec.

So in my opinion, dav1d should only be enabled by default when it's updated to at least 0.2.1, whether that is in r67 or r68 (r67 has, of course, the preference).

Binaries from the try in comment 6 work well in OSX. Will try them on Linux and Win.

Linux and Windows binaries, from the try run in comment 6, also work.

(In reply to Ewout ter Hoeven from comment #10)

(In reply to Nils Ohlmeier [:drno] from comment #9)

I would highly recommend against enabling dav1d 0.1.0 by default.

mozilla-central is not at 0.1.0 but rather an intermediate git version. It doesn't have all of the ssse3, but enough, I think.

(In reply to Thomas Daede [:TD-Linux] from comment #13)

mozilla-central is not at 0.1.0 but rather an intermediate git version. It doesn't have all of the ssse3, but enough, I think.

The current commit used is indeed a little faster than 0.1.0 (about 15%), but the large gains were made after. dav1d 0.2.1 is still on average 287% faster than the commit used.

decoder dav1d dav1d
Build daef2f0d ef5dc23f
Build date 2019-01-07 2019-03-15
ISA SSSE3 SSSE3
Chimera 1080p 36,2 88,9 245,5%
Elecard 1080p 65,3 128,7 197,2%
Elecard 4K 13,8 28,7 207,4%
Summer 1080p 36,6 111,8 305,7%
Oliver 1080p 125,8 205,0 162,9%
Dua Lipa 1080p 42,2 106,3 251,9%
Red 1080p 74,4 111,9 150,4%
rav1e 1080p 50,0 214,0 428,0%
rav1e 1440p 28,8 130,0 450,9%
rav1e 2160p 14,2 66,3 468,0%

The try push in [1] includes a few more commits from upstream, from the last 2 days, and the updates on the comments mentioned in phabricator.

[1] https://treeherder.mozilla.org/#/jobs?repo=try&revision=1a159d568241fe8e6d9eead1b0e8dd21d9fd32aa

Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla68

Great to see dav1d 0.2.1 in Firefox 68! Is there no way to get it in 67? As I said, for many users the performance gap between 0.1.0 and 0.2.1 will be around 3x.

Depends on: 1537725

Comment on attachment 9052820 [details]
Bug 1533559 - Update libdav1d to 0.2.1 on beta. r?TD-Linux

Beta/Release Uplift Approval Request

  • Feature/Bug causing the regression: N/A
  • User impact if declined: dav1d code includes significant improvements on version 0.2.1. It will be 3 times faster for many users on old cpu, which is very important for the intense operation of decoding. Also, some of the crashes have been solved in the latest version.

Without this uplift we might decide to disable dav1d on 67 even if AV1 is enabled, which is unfortunate. On a parallel note we have additional fixes on the pipe, for nightly, that are built on the top of that patch and we would like to uplift. Those uplifts will be much safer if they are based on the same code. In addition to that we are so early in the release cycle so, regarding dav1d, beta and nightly are identical. The nightly patch applies cleanly without any change which diminishing the likelihood of surprises. Finally many people inside the team and from the community would like to see that in 67.

  • Is this code covered by automated tests?: Yes
  • Has the fix been verified in Nightly?: Yes
  • Needs manual test from QE?: No
  • If yes, steps to reproduce:
  • List of other uplifts needed: None
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): This is because we have been using it in Nightly for some days. Also the code between nightly (well the parent code since nightly has it already) and beta is identical at those files so we do not expect surprises.

This is a green try of that patch on beta:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=f0628e7f3035d8112240d426c7cdf9e35021a503

  • String changes made/needed:
  • Do you want to request approval of these patches as well?: on
Attachment #9052820 - Flags: approval-mozilla-beta?

Alex, I would like to see haw the crashes in bug 1537725 are evolving and make sure that they are not related to the dav1d update to 0.2.1 before evaluating an uplift to beta.

Flags: needinfo?(achronop)

Ok thanks, I am clearing the NI for now.

Flags: needinfo?(achronop)

Hi Pascal, I have requested uplifts for all the bugs that make the dav1d update stable. They are, in the order that they should be landed: this one, 1536538, 1535631, 1536070, 1537725, 1538474, 1538455

This is an on going run with all the fixes:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=91f1007b3be2a7a11841d432a97a41f00ce624aa

Can you please check again and tell me what you think?

Flags: needinfo?(pascalc)

Comment on attachment 9052820 [details]
Bug 1533559 - Update libdav1d to 0.2.1 on beta. r?TD-Linux

Update libdav1d to 0.2.1 on beta, the few crashes we had detected on Nightly are now fixed and the performance gains are significant enough to justify an uplift to beta. Uplift accepted for 67 beta 8, thanks!

Flags: needinfo?(pascalc)
Attachment #9052820 - Flags: approval-mozilla-beta? → approval-mozilla-beta+

Thank you for the approvals.

For the sheriff the order of the bugs that should be uplifted is:
this one -> 1536538 -> 1535631 -> 1536070 -> 1537725 -> 1538455 -> 1538474

No longer blocks: 1548144
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: