diff --git a/README.md b/README.md
index a98d5aa0..ad46464b 100644
--- a/README.md
+++ b/README.md
@@ -263,6 +263,7 @@ the Wine prefix. Removing the option will revert to the previous behavior.
| nod3d11 | PROTON_NO_D3D11 | Disable d3d11.dll, for d3d11 games which can fall back to and run better with d3d9. |
| nod3d10 | PROTON_NO_D3D10 | Disable d3d10.dll and dxgi.dll, for d3d10 games which can fall back to and run better with d3d9. |
| noesync | PROTON_NO_ESYNC | Do not use eventfd-based in-process synchronization primitives. |
+| nofsync | PROTON_NO_FSYNC | Do not use futex-based in-process synchronization primitives. (Automatically disabled on systems with no `FUTEX_WAIT_MULTIPLE` support.) |
| forcelgadd | PROTON_FORCE_LARGE_ADDRESS_AWARE | Force Wine to enable the LARGE_ADDRESS_AWARE flag for all executables. |
| oldglstr | PROTON_OLD_GL_STRING | Set some driver overrides to limit the length of the GL extension string, for old games that crash on very long extension strings. |
diff --git a/proton b/proton
index 4dbf1d8b..fd7195e2 100755
--- a/proton
+++ b/proton
@@ -269,12 +269,16 @@ check_environment("PROTON_USE_D9VK", "d9vk")
check_environment("PROTON_NO_D3D11", "nod3d11")
check_environment("PROTON_NO_D3D10", "nod3d10")
check_environment("PROTON_NO_ESYNC", "noesync")
+check_environment("PROTON_NO_FSYNC", "nofsync")
check_environment("PROTON_FORCE_LARGE_ADDRESS_AWARE", "forcelgadd")
check_environment("PROTON_OLD_GL_STRING", "oldglstr")
if not "noesync" in config_opts:
env["WINEESYNC"] = "1"
+if not "nofsync" in config_opts:
+ env["WINEFSYNC"] = "1"
+
if "oldglstr" in config_opts:
#mesa override
env["MESA_EXTENSION_MAX_YEAR"] = "2003"