From Fedora Project Wiki


Enable NTSYNC kernel module for all users

This is a rejected Change proposal for Fedora Linux.
This document represents a proposed Change that has been rejected or withdrawn as part of the Changes process. This page is preserved for historical record.

Summary

This proposal aims to enable the NTSYNC kernel module by default for all users, which can improve compatibility and performance when running Windows applications (especially games) via Wine/Proton.

Owner

Affected packages: Kernel, dracut or systemd (not sure), but it's just the addition of one file.


Current status

This change was superseded by a new one.

Detailed Description

The NT synchronization primitive driver, known as NTSYNC, is a mechanism used by Wine applications get better compatibility and more performance when running applications (especially games).

This proposal aims to enable the NTSYNC kernel module by default for all Fedora Linux users. It is present on stable kernel versions starting from 6.14.

As far as I (the proposal creator) am aware, this is apparently better than other existing implementations (such as E-SYNC and F-SYNC). This is also the only one to be considered into integration for upstream Wine.

Currently, the kernel driver works as expected (as far as I know), but the code on Wine's side is still a pending merge request. However, community-made Proton versions such as GE-Proton (made by GloriousEggRoll) already have NTSYNC enabled by default if the kernel module is loaded.

From my personal testing I haven't see any problematic behavior when enabling this module. It also fixes some problematic games that don't work well with either E-SYNC or F-SYNC methods (such as Bioshock games and Call of Duty Black Ops I and II).

The intention is to make Fedora Linux the first distribution to start enabling this module as to innovate in the Linux world.

As far as I am aware, the default state of the module (to be enabled or disabled by default) is a decision that can be made upstream on the kernel side for everyone, or just downstream by a distro for its users. Since Fedora focuses on innovation, I think this is the correct place for it.

I very recently discovered the change process, so I am sorry for filling out out-of-date, but I think this change is mostly harmless for now.

For Fedora, this process would mean creating a file in /usr/lib/modules-load.d/ named "ntsync.conf" to load the "ntsync" kernel module.

Some reference links:

Kernel technical documentation: https://docs.kernel.org/next/userspace-api/ntsync.html
Article on GamingOnLinux: https://www.gamingonlinux.com/2025/01/ntsync-for-proton-wine-now-in-linux-kernel-6-14-that-should-make-many-steamos-users-happy/
Wine merge request: https://gitlab.winehq.org/wine/wine/-/merge_requests/7226

Feedback

I have not gathered any feedback. However, this proposal, even if approved, would only be applicable to custom builds of Wine/Proton, since upstream Wine does not fully support it (yet), so any build that contains the possibility of using NTSYNC is a custom and experimental build.

When the merge request is eventually approved in upstream Wine, Fedora would already have the kernel module for all users available to use.

There is some feedback available in the GloriousEggRoll's Discord server for users testing the kernel driver in the latest version (10-10) of GE-Proton.

Benefit to Fedora

See "Detailed Description" and "Feedback" section.

Scope

  • Proposal owners: EpicTux123 (EpicTux123@proton.me)
  • Other developers: N/A
  • Policies and guidelines: N/A (*probably* not needed for this Change)
  • Trademark approval: N/A (not needed for this Change)
  • Alignment with the Fedora Strategy: I think it is aligned.

Upgrade/compatibility impact

Early Testing (Optional)

"Do you require 'QA Blueprint' support?" I have no idea.

How To Test

Modprobe the "ntsync" module and/or create a file in /etc/modules-load.d/ to load it automatically.


User Experience

Better performance and compatibility with Windows applications (especially games) through Wine.

Dependencies

N/A as far as I am aware.

Contingency Plan

  • Contingency mechanism: (What to do? Who will do it?) Revert the change to load the kernel module by default.
  • Contingency deadline: N/A. It is a system-wide change, but this can be easily reverted.
  • Blocks release? NO


Documentation

See "Detailed Description" section. There are some links there.

Release Notes

NTSYNC kernel module is now enabled by default

The NTSYNC kernel module has been enabled by default. It is present on kernel stable versions starting from 6.14. This provides better performance and compatibility for Windows applications running through Wine/Proton (especially games). Currently, this is only available for certain custom Wine/Proton builds, but Fedora is making the kernel module available ahead of the eventual merge in upstream Wine.