Closed Bug 1836668 Opened 1 year ago Closed 1 year ago

Consider disabling glx vsync for WR/EGL/X11/Mesa as well

Categories

(Core :: Graphics: WebRender, task)

Desktop
Linux
task

Tracking

()

RESOLVED FIXED
117 Branch
Tracking Status
firefox117 --- fixed

People

(Reporter: jan, Assigned: jan)

References

(Blocks 2 open bugs)

Details

(Keywords: nightly-community)

Attachments

(1 file)

IIUC, glx vsync can be affected by the old X11 race condition: bug 1743551/bug 1836515/bug 1814586/bug 1777849 comment 47
glx vsync is already blocked for EGL/X11/Nvidia and Xwayland and nobody complained because xrandr provides correct refresh rate for software timer.
glx vsync doesn't prevent tearing on "X11 with disabled compositor", only having a compositor does.

Overview:
GLX/X11/Mesa+Nvidia: software timer + SW WR (but glx vsync for force-enabled HW WR)
EGL/X11/Mesa: glx vsync
EGL/X11/Nvidia: software timer. no glx vsync as it would break rendering.
EGL/Xwayland/Mesa+Nvidia: software timer. no glx vsync as it would block rendering.
EGL/Wayland/Mesa+Nvidia: frame callback based vsync.

History:
2020-09-03: bug 1650583 restricted glx vsync to glx.
2020-11-24: bug 1669275 re-enabled glx vsync for X11_EGL/Mesa to have correct refresh rate (because the xrandr check wasn't in place then).
2021-02-03: bug 1690371 lowered minimum required version for HW WR to Mesa 17 (18.2 is required for Nouveau).
2021-10-23: Since bug 1640779, software timer uses xrandr refresh rate instead of hardcoded 60, and glx vsync is disabled on xwayland (bug 1635186).
2021-11-25: Since bug 1742862, 470.82 (supports EGL_NV_robustness_video_memory_purge) is the minimum required version for X11_EGL/Nvidia.
2022-01-21: bug 1751252 shipped (unblocked) X11_EGL/Nvidia to Stable.
2022-01-24: Since bug 1742994, 470.82 is the minimum required version for HW WR/Nvidia.
2023-02-28: bug 1818992 lowered minimum required version for X11_EGL/Mesa to Mesa 17 (and to 18.2 for Nouveau).

Consider adding the following here:

#ifdef MOZ_X11
- name: gfx.x11.glx_sgi_video_sync.enabled
  type: bool
  value: false
  mirror: once
#endif

and the following here:

if (StaticPrefs::gfx_x11_glx_sgi_video_sync_enabled_AtStartup() && ...
Assignee: nobody → jan
Status: NEW → ASSIGNED

Disabling this would have also fixed bug 1710400.

Blocks: 1819259, 1667042
Attachment #9337729 - Attachment description: Bug 1836668 - Disable GLX vsync for EGL/X11/Mesa as well. r?aosmond → Bug 1836668 - Disable GLX vsync for EGL/X11/Mesa as well. r=aosmond
Pushed by archaeopteryx@coole-files.de: https://hg.mozilla.org/integration/autoland/rev/e1c387461f14 Disable GLX vsync for EGL/X11/Mesa as well. r=aosmond
Status: ASSIGNED → RESOLVED
Closed: 1 year ago
Resolution: --- → FIXED
Target Milestone: --- → 117 Branch
Regressions: 1844423
Regressions: 1844510
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: