ntsync is an experimental Linux kernel driver mimicking Windows synchronization mechanisms. It significantly improves performance of Wine synchronization syscalls comparing to their previous, more user-space-based implementations (esync, fsync). According to its author's benchmarks, the gains in FPS in various games were usually 40-200%, but your mileage may vary: ntsync is most beneficial in multi-threaded, CPU-bound scenarios, otherwise any perceivable gains will be much more modest.
This page describes how to enable ntsync manually on an amd64 hardware until it is officially included in Debian.

Currently only DebianTrixie (13, the latest stable) is supported.

The status of the below procedures and packages should be considered as highly experimental.

The stuff is built on top of the development channel of Wine to begin with and then on top of that, patches from the stable packages are applied in hope they will do similar tricks. Finally, new upstream versions are packaged on quite an irregular basis.


TLDR

Everything is automatically buildable now and binary packages can be installed from the project's Open Build Service repo:

  1. Add the repo to your config:

    wget -O morgwai-obs.gpg https://build.opensuse.org/projects/home:morgwai/signing_keys/download?kind=gpg
    echo "deb [signed-by=/etc/apt/keyrings/morgwai-obs.gpg] http://download.opensuse.org/repositories/home:/morgwai:/ntsync/Debian_13 /" >wine-ntsync.list
    sudo mv morgwai-obs.gpg /etc/apt/keyrings/
    sudo mv wine-ntsync.list /etc/apt/sources.list.d/
    sudo dpkg --add-architecture i386  ## only needed if installing wine for the first time
    sudo apt-get update
  2. Install the packages:
    • If you want to use Wine:

      sudo apt-get install winehq-devel

      Note that the official Debian wine packages usually use aliases like wine-stable in commands of desktop shortcuts, so if you were using the official Debian packages, you may need to edit your desktop shortcuts to use wine instead. You may also want to run sudo apt autoremove to remove unused dependencies of the official Debian packages.

    • If you only need the kernel module for Steam / Proton on a pre- 6.14 kernel:

      sudo apt-get install ntsync-kernel-dkms
  3. Verify that ntsync works: run winecfg and then in another terminal the list of processes reported by lsof /dev/ntsync should not be empty.


Detailed info

Kernel module

The kernel module has been merged to the mainline in Linux 6.14. In Debian and support for ntsync has been enabled since 6.14.5-1~exp1. Therefore DebianForky and DebianSid have ntsync kernel support fully functional. DebianTrixie however will stay at kernel 6.12 at least for now and the driver cannot be backported to the official 6.12 packages due to policy reasons. However kernels from trixie-backports have ntsync also fully functional, so the most recommended way is it to use those.

For people that need to stay on 6.12, a backported ntsync module has been created as a DKMS package that will be automatically installed together with the below described patched Wine packages (unless 6.14.5 or newer kernel is already installed).


Wine

The new userspace Wine patch has been published in winehq-devel since version 10.16. However the official WineHQ packages for DebianTrixie are built with ntsync disabled and moreover they notoriously lack some critical fixes (like "the WRITECOPY fix") and are built using the standard gcc toolchain, not mingw. Therefore, an alternative package has been created based on the WineHQ's wine-devel sources and debianization, with ntsync enabled, a few patches from the official Debian wine package (mostly fixes like the WRITECOPY one and internalizing external data like fonts, Unicode code-pages, Khronos API XMLs, etc) and utilizing mingw toolchain.


Proton

A feature request has been filed some time ago to add ntsync support.

Proton-GE has ntsync support since release 10-9.


Feedback and issue reporting

For now please just use this Debian Forums thread, if it turns to be not enough, then some more robust system will be set up instead.


Related links and resources

ntsync.jpeg


CategoryGame | CategoryNotNative | CategorySoftware | CategoryKernel