Closed Bug 2036839 Opened 6 days ago Closed 5 days ago

17.77 - 17.53% ts_paint + 1 more (Linux) regression on Wed April 29 2026

Categories

(Core :: Audio/Video: Playback, defect)

defect

Tracking

()

RESOLVED FIXED
152 Branch
Tracking Status
firefox-esr115 --- unaffected
firefox-esr140 --- unaffected
firefox150 --- unaffected
firefox151 --- unaffected
firefox152 --- fixed

People

(Reporter: intermittent-bug-filer, Assigned: tboiko)

References

(Regression)

Details

(4 keywords)

Attachments

(2 files)

Perfherder has detected a talos performance regression from push f6affd94efbcb7de652df67b08e4ad52c437743b. As author of one of the patches included in that push, we need your help to address this regression.

Please acknowledge, and begin investigating this alert within 3 business days, or the patch(es) may be backed out in accordance with our regression policy.

Regression Test Platform Options Absolute values [old vs new]
18% ts_paint (doc) linux2404-64-shippable e10s fission stylo webrender-sw 423.08 -> 498.25
18% ts_paint_webext (doc) linux2404-64-shippable e10s fission stylo webrender-sw 422.58 -> 496.67

Support & Actionable Steps

For questions, please contact afinder@mozilla.com. You can also find help on Slack (#perf-help) or Matrix (#perftest).

Action guide details:

Flags: needinfo?(tboiko)

At the moment I think that linux startup/paint regressed because Vulkan video capability probing runs an extra synchronous vulkantest subprocess during early gfx/video initialization, same class of work as existing vaapitest probing but additive on the critical path.

Flags: needinfo?(tboiko)

However, media.hardware-video-decoding-vulkan.enabled is false by default, so the vulkantest should not be triggered.
(Must be true for FEATURE_HARDWARE_VIDEO_DECODING_VULKAN to call GetDataVulkan() (and thus run vulkantest)).

DMABuf:

  • AppendDmaBufModifiersFromEGLIfEmpty() was called unconditionally from
    SetModifiersToGfxVars() on X11 startup for P010 and NV12 formats,
    triggering EGL initialisation and two driver round-trips per format
    (~80 ms total) even when hardware video decoding is disabled.

  • Move the queries into a new AppendEGLVideoModifiers() method and call it
    from InitPlatformHardwareVideoConfig() only when featureDec.IsEnabled(),
    so machines without hardware video decoding (the default) pay no cost.
    Measured ts_paint regression: +75 ms on Linux (Bug 2036839).

Assignee: nobody → tboiko
Status: NEW → ASSIGNED

Most likely AppendDmaBufModifiersFromEGLIfEmpty() is called unconditionally from SetModifiersToGfxVars() on X11 startup for P010 and NV12, triggering EGL initialisation and two driver round-trips even when hardware video decoding is disabled. Provided a patch, please try if the above patch helps

Pushed by stransky@redhat.com: https://github.com/mozilla-firefox/firefox/commit/04a81dc2cdeb https://hg.mozilla.org/integration/autoland/rev/27fb0bd2aeeb DMABuf - Defer EGL modifier queries to after hardware video decoding is enabled. r=stransky
Pushed by abutkovits@mozilla.com: https://github.com/mozilla-firefox/firefox/commit/5e7ae585d5a9 https://hg.mozilla.org/integration/autoland/rev/c275d15ee06b Revert "Bug 2036839 - DMABuf - Defer EGL modifier queries to after hardware video decoding is enabled. r=stransky" for causing bustages in DMABufFormats.cpp.

Let me take a look at this fix, I'll submit an updated version in the next few hours.

DMABuf:

  • AppendDmaBufModifiersFromEGLIfEmpty() was called unconditionally from
    SetModifiersToGfxVars() on X11 startup for P010 and NV12 formats,
    triggering EGL initialisation and two driver round-trips per format
    (~80 ms total) even when hardware video decoding is disabled.

  • Move the queries into a new AppendEGLVideoModifiers() method and call it
    from InitPlatformHardwareVideoConfig() only when featureDec.IsEnabled(),
    so machines without hardware video decoding (the default) pay no cost.
    Measured ts_paint regression: +75 ms on Linux (Bug 2036839).

Great. Tymur, is it the final version I shall review and land or are you going to do more changes here?
Thanks.

Please see an updated commit

Flags: needinfo?(tboiko)

Sorry, my last submitted version created a duplicate revision.
The latest version to land is D298517.

Pushed by stransky@redhat.com: https://github.com/mozilla-firefox/firefox/commit/92ab17043ca3 https://hg.mozilla.org/integration/autoland/rev/cf9e03a3dbd6 DMABuf - Defer EGL modifier queries to after hardware video decoding is enabled. r=stransky
Status: ASSIGNED → RESOLVED
Closed: 5 days ago
Resolution: --- → FIXED
Target Milestone: --- → 152 Branch

Authored by https://github.com/t-boiko
https://github.com/mozilla/enterprise-firefox/commit/04a81dc2cdeb229586c2826295d3bf4a6b2858d7
[enterprise-main] Bug 2036839 - DMABuf - Defer EGL modifier queries to after hardware video decoding is enabled. r=stransky

Authored by Atila Butkovits
https://github.com/mozilla/enterprise-firefox/commit/5e7ae585d5a964f34c38dac2393c8ae488d6e1e6
[enterprise-main] Revert "Bug 2036839 - DMABuf - Defer EGL modifier queries to after hardware video decoding is enabled. r=stransky" for causing bustages in DMABufFormats.cpp.

Authored by https://github.com/t-boiko
https://github.com/mozilla/enterprise-firefox/commit/92ab17043ca3a8c384856180acc8b722cceb99dc
[enterprise-main] Bug 2036839 - DMABuf - Defer EGL modifier queries to after hardware video decoding is enabled. r=stransky

You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: