diff --git a/README.md b/README.md
index 8712e5a9..a5c618f9 100644
--- a/README.md
+++ b/README.md
@@ -208,7 +208,8 @@ the Wine prefix. Removing the option will revert to the previous behavior.
| | PROTON_DUMP_DEBUG_COMMANDS | When running a game, Proton will write some useful debug scripts for that game into `$PROTON_DEBUG_DIR/proton_$USER/`. |
| | PROTON_DEBUG_DIR | Root directory for the Proton debug scripts, `/tmp` by default. |
| wined3d | PROTON_USE_WINED3D | Use OpenGL-based wined3d instead of Vulkan-based DXVK for d3d11 and d3d10. This used to be called `PROTON_USE_WINED3D11`, which is now an alias for this same option. |
-| nod3d11 | PROTON_NO_D3D11 | Disable d3d11.dll, for games which can fall back to and run better with d3d9. |
+| 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. |
| forcelgadd | PROTON_FORCE_LARGE_ADDRESS_AWARE | Force Wine to enable the LARGE_ADDRESS_AWARE flag for all executables. |
diff --git a/proton b/proton
index 91da8221..ea67fcaf 100755
--- a/proton
+++ b/proton
@@ -219,6 +219,7 @@ if "wined3d11" in config_opts:
if not check_environment("PROTON_USE_WINED3D", "wined3d"):
check_environment("PROTON_USE_WINED3D11", "wined3d")
check_environment("PROTON_NO_D3D11", "nod3d11")
+check_environment("PROTON_NO_D3D10", "nod3d10")
check_environment("PROTON_NO_ESYNC", "noesync")
check_environment("PROTON_FORCE_LARGE_ADDRESS_AWARE", "forcelgadd")
@@ -416,6 +417,11 @@ if "nod3d11" in config_opts:
if "dxgi" in dlloverrides:
del dlloverrides["dxgi"]
+if "nod3d10" in config_opts:
+ dlloverrides["d3d10_1"] = ""
+ dlloverrides["d3d10"] = ""
+ dlloverrides["dxgi"] = ""
+
s = ""
for dll in dlloverrides:
setting = dlloverrides[dll]