CXPatcher : optimiser les performances de CrossOver pour les jeux Windows sur macOS

CXPatcher est un outil tiers qui modifie l'installation de CrossOver afin de mettre à jour ses dépendances internes (Wine, DXVK, MoltenVK) et d'intégrer le Game Porting Toolkit (GPTK) d'Apple. Sur macOS, cette approche améliore le rendu et les performances des jeux Windows qui passent par une couche de compatibilité.

Limites de CrossOver en l'état

CrossOver fournit un environnement Wine préconfiguré, mais certaines briques techniques restent figées ou incomplètes :

  • Conversion DirectX inefficace via une version ancienne de DXVK.
  • Compilations de shaders synchrones provoquant des saccades.
  • Absence de prise en charge native de DirectX 12.
  • Comportements erratiques des moteurs Unreal Engine 4.

Ces limitations se traduisent par des fréquences d'images basses, des temps de chargement allongés ou des lancements impossibles.

Composants optimisés

DXVK

DXVK réimplémente DirectX 9, 10 et 11 sur Vulkan. CXPatcher remplace la bibliothèque fournie par CrossOver par une version récente, activant la compilation asynchrone des shaders et réduisant les pauses au chargement.

MoltenVK

MoltenVK traduit les appels Vulkan en commandes Metal. Une version optimisée diminue la latence et améliore le passage des jeux Vulkan comme Dota 2 ou CS:GO.

Game Porting Toolkit (GPTK)

L'intégration de GPTK ajoute le support de DirectX 12, permettant de lancer des titres récents qui nécessitent D3D12.

Correctifs Unreal Engine 4

Des patchs ciblés résolvent les problèmes de compliation de shaders et de gestion mémoire propres aux jeux UE4.

Installation et utilisation

Le projet s'obtient via Git :

git clone https://gitcode.com/gh_mirrors/cx/CXPatcher.git
cd CXPatcher

Pour appliquer le patch :

  1. Lancer CXPatcher.
  2. Glisser l'application CrossOver dans la zone prévue.
  3. Choisir les options d'optimisation : DXVK, MoltenVK, mathématiques rapides, création automatique d'un préfixe CXP.
  4. Cliquer sur le bouton de patch.

CrossOver doit avoir été lancé et activé au moins une fois avant le patchage. L'opération ne touche pas aux bouteilles existantes et est réversible.

Configuraton avancée

Pour certains titres, des variables d'environnement permettent d'ajuster le comportement du patcher :

# Désactiver les hacks ntdll
export CXP_COMPAT_NTDLL=1

# Désactiver les correctifs UE4
export CXP_UE4_WORKAROUND=0

# Désactiver le tonemapping
export CXP_TONEMAP_MODE=disabled

Le tonemapping peut aussi être personnalisé via un shader MSL :

float3 applyTone(float3 sourceColor) {
    float3x3 correction = float3x3(...);
    return clamp(sourceColor * correction, 0.0, 1.0);
}

Performances observées

  • Jeux DirectX 9/10/11 : gain de l'ordre de 30 à 50 %.
  • Jeux Vulkan : gain de 20 à 35 %.
  • Temps de compilation des shaders : réduction de 60 à 80 %.
  • Prise en charge de DirectX 12 via GPTK.

Sécurité et restauration

Le patch est non destructif : il ne modifie que l'application CrossOver. La fonction Restauration ramène CrossOver à son état original. Pour passer à une nouvelle version de CXPatcher, activer l'option de repatch et réappliquer sur CrossOver.

Prérequis

  • macOS Ventura (13) ou ultérieur.
  • CrossOver 22.x ou 23.x installé et activé.
  • Au moins 2 Go d'espace libre.
  • Privilèges administrateur pour modifier l'application.

Étiquettes: CrossOver CXPatcher DXVK MoltenVK GamePortingToolkit

Publié le 22 juin à 20h31