Understand the boundaries and working relationships between Wine, Proton, and Bottles so you can choose appropriately for each use case.
Technical lineage: the full evolutionary picture#
graph TD
subgraph "上游 (1993-)"
WINE["Wine — Windows API 兼容层"]
end
subgraph "商业版"
CX["CrossOver — CodeWeavers 商业支持"]
end
subgraph "游戏分支 (2018-)"
PROTON["Proton — Valve Steam Play"]
PROTON_GE["Proton-GE — 社区增强版"]
PROTON_CACHY["Proton-CachyOS — CPU 优化构建"]
end
subgraph "管理层"
BOTTLES["Bottles — GUI 前缀管理"]
LUTRIS["Lutris — 游戏启动器 + 社区脚本"]
end
subgraph "组件层"
DXVK["DXVK"]
VKD3D["VKD3D-Proton"]
end
WINE --> CX
WINE --> PROTON
PROTON --> PROTON_GE
PROTON --> PROTON_CACHY
WINE -.->|Runner 调用| BOTTLES
PROTON_GE -.->|需核对 umu 集成| BOTTLES
PROTON -.->|集成| DXVK
PROTON -.->|集成| VKD3D
PROTON_GE -.->|受支持的 umu 后端| LUTRIS
WINE -.->|Runner 调用| LUTRISKey points:
- Wine is one of the upstream projects behind the core compatibility engine. Proton also integrates DXVK, VKD3D-Proton, runtimes, media components, and other projects; not every line of Proton code can be traced back to Wine. Some improvements can return upstream, but this needs to be checked against individual commits.
- Proton is a Wine integration and patch collection aimed at the Steam gaming ecosystem, including a dedicated runtime environment. Non-game applications may work, but they are not its main support target. Proton patches may introduce compatibility bugs in non-game applications.
- Proton-GE/CachyOS are different community-maintained builds and patch combinations. Their DXVK/VKD3D components, hardware adaptations, and game fixes depend on the specific release. They cannot bypass game anti-cheat policies and are not designed for reliably running Office or Photoshop.
- Bottles and Lutris are managers. They do not translate APIs; they wrap command-line interfaces.
The three-layer model of engines and managers#
┌──────────────────────────────────────┐
│ 管理层 (Bottles / Lutris) │ ← 用户交互、配置可视化、快照
│ ┌────────────────────────────────┐ │
│ │ 运行器层 (Wine / Proton-GE) │ │ ← API 翻译、进程管理
│ │ ┌──────────────────────────┐ │ │
│ │ │ 图形层 (DXVK / VKD3D) │ │ │ ← DirectX → Vulkan 翻译
│ │ └──────────────────────────┘ │ │
│ └────────────────────────────────┘ │
│ 操作系统 (Linux Kernel) │
└──────────────────────────────────────┘Analogy
| Role | Metaphor |
|---|---|
| Wine | A general-purpose engine: powers many kinds of vehicle, but needs tuning |
| Proton | A racing engine: designed for speed (frame rate), but may be less suitable elsewhere |
| Bottles | A complete car: the engine is installed, with a steering wheel and dashboard ready to use |
A use-case selection matrix#
Choose tools by purpose
| Use case | Recommended engine | Recommended management approach | Notes |
|---|---|---|---|
| Steam games in your library | Proton / Proton-GE | Built into Steam | Steam manages the runtime and per-game compatibility data; game-specific configuration may still be necessary |
| Non-Steam games (.exe) | A Wine runner that supports the game, or GE-Proton | A Wine manager; use GE through umu integration | Separate configurations do not provide security isolation |
| Office applications such as Office | A verified Wine runner | Bottles | Requires the complete .NET/VC Runtime dependency chain |
| Design applications (Photoshop) | A verified Wine runner | Bottles | Use a separate bottle for each application to avoid DLL conflicts |
| Legacy Windows utilities | An architecture and Wine runner compatible with the target application | Bottles | 32-bit programs do not necessarily require a pure win32 prefix; check the WoW64 setup, build, and dependencies |
| Game mods such as ReShade | A Wine/Proton version compatible with the mod | Bottles / Steam | Check DLL precedence, game version, and mod requirements rather than relying on unverified version claims |
| Development testing (CI/CD) | Wine (managed with nix) | Command line | No GUI environment; scripting is required |
Decision flowchart
graph TD
A{"这是一个游戏吗?"} -->|是| B{"在 Steam 库里吗?"}
A -->|否| C["用 已验证的 Wine runner — 通过 Bottles 管理"]
B -->|是| D["用官方 Proton — Steam 自动配置"]
B -->|否| E{"需要特定游戏修复?"}
E -->|是| F["检查游戏支持,再用 GE-Proton — Steam 外核对 umu 后端"]
E -->|否| G["用支持目标游戏的 Wine runner — 通过管理器维护"]
D --> H{"过场动画黑屏?"}
H -->|是| I["换 Proton-GE"]
H -->|否| J["保持官方 Proton"]Principle
Use Proton for games and its ecosystem, Wine for general-purpose applications, and Bottles for efficient management.
Comparing versions and support scope#
Do not group stable releases, development releases, community rolling builds, and manager names in a single “latest stable version” column. When recording versions, check each separately:
| Component | Identity to record | Capabilities you cannot infer from the name alone |
|---|---|---|
| Wine | Release or development version, distribution package build, patches, and architecture | Whether the new WoW64, NTSYNC, and Wayland are actually available in that build |
| Official Proton | The exact version and runtime selected in Steam | Whether the current game, GPU, media functionality, and anti-cheat are supported |
| GE-Proton | Official release, verification sources, and downloaded additional DLLs | Whether upscaling, frame generation, and specific game fixes work; whether umu is used outside Steam |
| Bottles runner | Name, component manifest, and specific version | The current defaults such as Soda/Caffe, underlying Wine version, and patch scope |
| DXVK/VKD3D | Versions actually bundled with the runner, and driver requirements | Vulkan features, ray tracing, performance, and multi-GPU paths |
The 2025–2026 comparison table in the source material lacked sufficient release evidence to support its “latest” claims. Access to the WineHQ release page was restricted during this review, so the specific status of Wine 11.x is not confirmed. Checks of the official Proton and GE READMEs also reflect only the project documentation available at the time of access; read the release notes for any older release you select.
Version updates may modify prefixes or download new components. Keep a runner you can revert to and back up prefixes while they are not running. Test with the same application scenario; a single successful run does not establish long-term stability or security support.
Sources and verification boundaries#
The references below define the relevant mechanisms and support scope. Installation, building, activation, prefix state, and actual application behavior must each be verified in the target environment. The example commands do not establish that they have run successfully on any host.
- Wine project
- Official Proton README
- GE-Proton README
- umu-launcher and usage
- Bottles runner documentation
References & further reading
- Wine project ↗
- Official Proton README ↗
- GE-Proton README ↗
- umu-launcher and usage ↗
- Bottles runner documentation ↗
Adapted from technical notes. Examples use generic names.