OFFSET偏移
← All articlesOFFSET / FIELD NOTESNO. 153

The relationship between Wine, Proton, and Bottles

Use the technical lineage, layered model, and scenario matrix to distinguish the responsibilities of compatibility engines and managers.

English translation · Code and commands follow the Chinese original.

IN THESE READING PATHSWine and application environments ↗
About 5 min readStart reading

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 调用| LUTRIS

Key points:

  1. 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.
  2. 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.
  3. 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.
  4. 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.

References & further reading

  1. Wine project ↗
  2. Official Proton README ↗
  3. GE-Proton README ↗
  4. umu-launcher and usage ↗
  5. Bottles runner documentation ↗

Adapted from technical notes. Examples use generic names.

Continue along a reading path

Wine and application environments

  1. 01umu, Wine and Proton: understanding compatibility tools and choosing Bottles runners
  2. 02The relationship between Wine, Proton, and Bottles
  3. 03Wine: the compatibility layer and prefixes
  4. 04Bottles: runners and application environments
CONTINUE READING / NEXT ARTICLEWine and gaming environments on NixOS

Manage pinned software, Steam tool registration, Flatpak runtimes, and mutable prefixes as separate layers.