Enable NTSYNC kernel module for Wine and gaming packages
Summary
The NTSYNC kernel module is enabled for select packages by package recommendation (notably Wine and Steam), which can improve compatibility and performance when running Windows applications (especially games).
This change supersedes the previous one.
Owner
- Name: EpicTux123
- Email: EpicTux123@proton.me
Affected packages: Kernel, dracut or systemd (not sure), but it's just the addition of one file.
Current status
This change supersedes the previous one.
- Targeted release: Fedora Linux 44
- Last updated: 2025-12-02
- Announced
- Discussion thread
- FESCo issue: #3510
- Tracker bug: #2418382
- Release notes tracker: #282
Detailed Description
The NT synchronization primitive driver, known as NTSYNC, is a mechanism used by Wine to get better compatibility and more performance when running applications (especially games).
This proposal aims to enable the NTSYNC kernel module for select packages. It is present on stable kernel versions starting from 6.14.
Affected packages would be:
- Wine main package
- Steam package (RPM Fusion)
- FLOSS game launchers on Fedora's or RPM Fusion's repos (Lutris, Heroic Games Launcher etc.)
- Any other package that requires or recommends the Wine package
A package named wine-ntsync would be created in the Fedora's repos. Its only intention would be to add the file /usr/lib/modules-load.d/ntsync.conf with the content ntsync to enable the NTSYNC kernel module at boot.
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 detected as 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.
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
Since the creation of the previous change, progress has been made upstream such as https://gitlab.winehq.org/wine/wine/-/merge_requests/9014.
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. Installing the wine on Fedora, even with this change approved, wouldn't make use of it, since it requires experimental patches that are pending for merge in upstream. This proposal would mainly benefit GE-Proton (and other community-made Proton versions) users.
When the merge request is eventually approved in upstream Wine, Fedora would already have the kernel module for all Wine users to use.
There is some feedback available in the GloriousEggRoll's Discord server for users testing the kernel driver in the latest versions (starting from 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
- Release engineering: N/A
- Policies and guidelines: N/A (not needed for this Change)
- Trademark approval: N/A (not needed for this Change)
- Alignment with the Fedora Strategy: I think it does.
Upgrade/compatibility impact
No required upgrade/compatibility changes. Could teoretically conflict with an existing file in /usr/lib/modules-load.d/ if the user has created one, but it's incorrect to create one there since /etc/modules-load.d/ should be used instead.
Early Testing (Optional)
Do you require 'QA Blueprint' support? N/A
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. Currently only applicable for custom builds of Wine/Proton.
Dependencies
N/A as far as I am aware.
Contingency Plan
- Contingency mechanism: (What to do? Who will do it?) N/A (not a System Wide Change)
- Contingency deadline: N/A (not a System Wide Change)
- Blocks release? N/A (not a System Wide Change)
Documentation
- https://lore.kernel.org/lkml/20241213193511.457338-1-zfigura@codeweavers.com/
- https://docs.kernel.org/userspace-api/ntsync.html
Release Notes
NTSYNC kernel module is now enabled by default for select packages
The NTSYNC kernel module has been enabled by default for users of Wine and Steam (RPM Fusion) packages. 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.
